Una campagna si riferisce a una funzionalità di composizione automatica in uscita che contatta in sequenza un elenco di contatti, avvia chiamate in uscita e collega ogni contatto a un agente disponibile. Gli endpoint della campagna forniscono l'accesso ai dati correlati alla campagna, consentendo il recupero degli oggetti campagna e contatto.
L'oggetto Campaign rappresenta una singola campagna all'interno della piattaforma.
L'oggetto Contatto rappresenta un singolo contatto della campagna all'interno di una campagna specifica.
Gli endpoint della campagna consentono agli utenti di aggiungere, aggiornare ed eliminare i contatti di una campagna esistente. Gli endpoint disponibili includono:
Stato del contatto della campagna
Il campo dello stato può avere uno dei seguenti stati:
| Stato contatto campagna | Descrizione |
|---|---|
| Successivo | Il contatto è il prossimo a essere chiamato. |
| Chiamata in corso… | Il contatto è in fase di composizione. |
| In coda | La chiamata per un determinato contatto è in coda. |
| Connesso | Il contatto è in comunicazione con un agente. |
| Terminato | La chiamata è stata completata. |
| Trasferito | La chiamata è stata trasferita. |
| Trasferito e terminato | La chiamata è stata trasferita e poi completata. |
| Non ritirato | Nessuna risposta da parte dell'utente finale o l'utente finale non è mai stato raggiunto. |
| Impossibile contattare | La chiamata non ha mai raggiunto il contatto. |
| Abbandonata dal contatto | Per l'anteprima, l'utente finale riaggancia prima di essere connesso a un agente. Per entrambi i metodi progressivo e predittivo, l'utente finale riaggancia la chiamata entro 5 secondi dalla connessione con l'agente. |
| Ignorato | Il contatto è stato ignorato dall'agente e sarà disponibile per essere collegato a un altro agente. |
| Ignorato e chiuso | In Anteprima, l'agente salta e chiude un contatto. Questo contatto ora dovrebbe essere sempre ignorato in questa campagna. |
| Numero non valido | Contatto con numero di telefono non valido. |
| Errore del corriere | Questo errore è causato dall'operatore. |
| Abbandonata da Telefono | Il contatto è stato abbandonato dal dialer. |
| Chiamata alla segreteria interrotta | In Predictive, il dialer determina che l'utente finale è una macchina (ad es. la segreteria). |
| Errore generale del dialer | Chiamata non riuscita a causa di un errore del dialer. |
| Ricomposizione pianificata | Stato temporaneo. Richiamata pianificata per il futuro. |
| Non chiamare | Il numero era nell'elenco dei numeri da non chiamare. |
| Numero in uscita non valido | Contatto con numero in uscita non valido. |
| Numero di telefono bloccato | Contatto con numero internazionale non valido/bloccato. |
Aggiungere un singolo contatto a una campagna
| Parametro | Obbligatorio | Tipo di dati | Definizione |
|---|---|---|---|
| campaign_id | VERO | Numero intero | L'ID della campagna a cui aggiungere un contatto. |
Endpoint:
Method: POST
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | application/json |
Corpo:
{
"name": "string",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"outbound_number": "+1 760-867-5309",
"external_unique_id": "UID_123456"
}
Esempio di richiesta e risposte
Le sezioni seguenti forniscono richieste di esempio all'endpoint.
Aggiungere un singolo contatto a una campagna
Questo esempio mostra come aggiungere un contatto a un ID campagna specifico.
Richiesta
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | application/json |
Query:
| Chiave | Valore | Descrizione |
|---|---|---|
| campaign_id | integer | L'ID della campagna a cui aggiungere il contatto |
Corpo:
{
"name": "string",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"outbound_number": "+1 760-867-5309",
"external_unique_id": "UID_123456"
}
Risposta
{
"valid_contacts": [
{
"name": "string",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"outbound_number": "+1 760-867-5309",
"external_unique_id": "UID_123456"
}
],
"invalid_contacts": []
}
Codice di stato: 200
Recuperare i contatti per una campagna
| Parametro | Obbligatorio | Tipo di dati | Definizione |
|---|---|---|---|
| campaign_id | VERO | Numero intero | L'ID della campagna da cui recuperare i contatti. |
Endpoint:
Method: GET
Type:
URL: https://{subdomain}.{domain}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | application/json |
Query:
| Chiave | Valore | Descrizione |
|---|---|---|
| campaign_id | integer | L'ID della campagna a cui aggiungere il contatto |
Esempio di richiesta e risposte
Le sezioni seguenti forniscono richieste di esempio all'endpoint.
Recuperare i contatti per una campagna
L'esempio seguente mostra come recuperare i contatti per l'ID campagna specificato.
Richiesta
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | application/json |
Query:
| Chiave | Valore | Descrizione |
|---|---|---|
| campaign_id | integer | ID campagna della campagna da interrogare |
Risposta
[
{
"name": "string",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"outbound_number": "+1 760-867-5309",
"external_unique_id": "UID_123456"
}
]
Codice di stato: 200
Importare più contatti in una campagna
| Parametro | Obbligatorio | Tipo di dati | Definizione |
|---|---|---|---|
| file | VERO | Stringa | File JSON contenente i più contatti da aggiungere a una campagna. |
| campaign_id | VERO | Numero intero | L'ID della campagna a cui aggiungere i contatti. |
Endpoint:
Method: POST
Type: FORM DATA
URL: https://{subdomain}.{domain}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts/import
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | multipart/form-data |
Corpo:
'FORM DATA'
Contenuto del file:
[
{
"name": "string",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"outbound_number": "+1 760-867-5309",
"external_unique_id": "UID_123456"
}
]
Esempio di richiesta e risposte
Le sezioni seguenti forniscono richieste di esempio all'endpoint.
Importare più contatti da un file
Questo esempio mostra l'aggiunta di contatti a una campagna in base a un file pubblicato nell'endpoint. Il file viene pubblicato come dati del modulo.
Richiesta
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | multipart/form-data |
Query:
| Chiave | Valore | Descrizione |
|---|---|---|
| campaign_id | integer | ID campagna a cui aggiungere i contatti |
Contenuto del file:
[
{
"name": "string",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"outbound_number": "+1 760-867-5309",
"external_unique_id": "UID_123456"
}
]
Risposta
None
Codice di stato: 202 (Accettato)
Job
| Parametro | Obbligatorio | Tipo di dati | Definizione |
|---|---|---|---|
| job_id | VERO | Numero intero | L'ID job che vuoi recuperare |
| campaign_id | VERO | Numero intero | L'ID campagna a cui appartiene l'ID job. |
Endpoint:
Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts/jobs/{job_id}
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | application/json |
Esempio di richiesta e risposte
Le sezioni seguenti forniscono richieste di esempio all'endpoint.
Completato
L'esempio seguente mostra come recuperare il job e identificare se è stato completato correttamente.
Richiesta
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | application/json |
Query:
| Chiave | Valore | Descrizione |
|---|---|---|
| campaign_id | 1 | L'ID campagna a cui appartiene il job |
| job_id | 530 | L'ID job di cui controllare lo stato |
Risposta
{
"id": 530,
"status": "completed",
"type": "Jobs::Bulk::Campaign::ParentJob"
}
Codice di stato: 200
Importazione ancora in corso
Il seguente esempio mostra come recuperare il job e identificare se l'importazione è ancora in corso.
Richiesta
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | application/json |
Query:
| Chiave | Valore | Descrizione |
|---|---|---|
| campaign_id | 1 | L'ID campagna a cui appartiene il job |
| job_id | 530 | L'ID job di cui controllare lo stato |
Risposta
{
"id": 530,
"status": "in_progress",
"type": "Jobs::Bulk::Campaign::ParentJob"
}
Codice di stato: 200
Job non riuscito
L'esempio seguente mostra come recuperare il job e identificare se il job non è riuscito.
Richiesta
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | application/json |
Query:
| Chiave | Valore | Descrizione |
|---|---|---|
| campaign_id | 1 | L'ID campagna a cui appartiene il job |
| job_id | 523 | L'ID job di cui controllare lo stato |
Risposta
{
"error_details": "NativePowerDial::ContactService::DuplicateContactPhoneOnCampaign",
"error_message": "Internal Error",
"id": 523,
"status": "failed",
"type": "Jobs::Bulk::Campaign::StartImport"
}
Codice di stato: 200
Aggiornare un singolo contatto
| Parametro | Obbligatorio | Tipo di dati | Definizione |
|---|---|---|---|
| campaign_id | VERO | Numero intero | L'ID campagna a cui appartiene l'ID job. |
Endpoint:
Method: PATCH
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contact
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | application/json |
Corpo:
{
"contact_id": 16312,
"name": "string",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"external_unique_id": "UID_123456"
}
Esempio di richiesta e risposte
Le sezioni seguenti forniscono richieste di esempio all'endpoint.
Aggiornare un contatto per una campagna
Questo esempio mostra come aggiornare un contatto che si trova in una campagna specifica.
Richiesta
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | application/json |
Corpo:
{
"contact_id": 7,
"name": "Bob Smith",
"email": "customer@somedomain.com",
"phone_number": "+1 111-111-1111",
"external_unique_id": "UID_123456"
}
Risposta
{
"id": 7,
"name": "Bob Smith",
"campaign_id": 6,
"assigned_call_id": null,
"assigned_participant_id": null,
"outbound_number": "+1-(201)-471-6992",
"priority": null,
"created_at": "2024-08-05T14:51:49.000Z",
"updated_at": "2024-08-05T21:01:16.000Z",
"status": "Upcoming",
"user_custom_metadata": {
"NAME (REQUIRED)": "Bob Smith",
"PHONE (REQUIRED)": "+1 111-111-1111",
"EMAIL (REQUIRED)": "customer@somedomain.com"
}
}
Codice di stato: 200
Rimuovere un singolo contatto
| Parametro | Obbligatorio | Tipo di dati | Definizione |
|---|---|---|---|
| campaign_id | VERO | Numero intero | L'ID campagna a cui appartiene l'ID job. |
Endpoint:
Method: DELETE
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contact
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | application/json |
Corpo:
{
"contact_id": integer,
"phone_number": "string",
"external_unique_id": "string"
}
Esempio di richiesta e risposte
Le sezioni seguenti forniscono richieste di esempio all'endpoint.
Rimuovere un contatto in base all'ID contatto
Questo esempio mostra come rimuovere un contatto da una campagna in base all'ID contatto.
Richiesta
Intestazioni:
| Chiave | Valore | Descrizione |
|---|---|---|
| Content-Type | application/json |
Corpo:
{
"contact_id": 7,
}
Query:
| Chiave | Valore | Descrizione |
|---|---|---|
| campaign_id | 1 | L'ID campagna a cui appartiene il job |
Risposta
{
"id": 7,
"name": "Bob Smith",
"campaign_id": 6,
"assigned_call_id": null,
"assigned_participant_id": null,
"outbound_number": "+1-(201)-471-6992",
"priority": null,
"created_at": "2024-08-05T14:51:49.000Z",
"updated_at": "2024-08-05T21:01:16.000Z",
"status": "Upcoming",
"user_custom_metadata": {
"NAME (REQUIRED)": "Bob Smith",
"PHONE (REQUIRED)": "+1 111-111-1111",
"EMAIL (REQUIRED)": "customer@somedomain.com"
}
}
Codice di stato: 200