Points de terminaison de la campagne

Une campagne fait référence à une fonctionnalité d'appel automatique sortant qui contacte séquentiellement une liste de contacts, lance des appels sortants et met chaque contact en relation avec un agent disponible. Les points de terminaison des campagnes permettent d'accéder aux données associées aux campagnes, ce qui permet de récupérer les objets de campagne et de contact.

  • L'objet Campaign représente une seule campagne sur la plate-forme.

  • L'objet Contact représente un contact de campagne individuel dans une campagne spécifique.

Les points de terminaison de campagne permettent aux utilisateurs d'ajouter, de modifier et de supprimer les contacts d'une campagne existante. Voici les points de terminaison disponibles :

État du contact de la campagne

Le champ "État" peut avoir l'une des valeurs suivantes :

État du contact de la campagne Description
À venir Le contact est le prochain à être appelé.
Appel… Le contact est en cours de composition.
En file d'attente L'appel pour un contact donné est mis en file d'attente.
Connecté Le contact est en relation avec un agent.
Terminé L'appel est terminé.
Transféré L'appel a été transféré.
Transféré et terminé L'appel a été transféré, puis terminé.
Non retirée L'utilisateur final n'a pas répondu ou n'a jamais été contacté.
Impossible de contacter L'appel n'a jamais atteint le contact.
Abandonnée par le contact Pour l'aperçu, l'utilisateur final raccroche avant d'être mis en relation avec un agent. Pour les modes progressif et prédictif, l'utilisateur final raccroche dans les cinq secondes suivant la connexion à l'agent.
Ignoré L'agent a ignoré le contact, qui sera disponible pour être mis en relation avec un autre agent.
Ignorée et fermée Dans l'aperçu, l'agent ignore et ferme un contact. Ce contact doit désormais être ignoré dans cette campagne.
Numéro incorrect Contact avec un numéro de téléphone non valide.
Erreur de l'opérateur Cette erreur est liée à l'opérateur.
Abandonné par le téléphone Le contact a été abandonné par le système d'appel.
Messagerie vocale raccrochée En mode prédictif, le système de numérotation détermine que l'utilisateur final est une machine (par exemple, une messagerie vocale).
Erreur générale du clavier téléphonique L'appel a échoué en raison d'une erreur du composeur.
Rappel programmé État temporaire. La recomposition est planifiée pour une date ultérieure.
Ne pas appeler Le numéro figurait sur la liste des numéros à ne pas appeler.
Numéro sortant non valide Contact avec un numéro sortant non valide.
Numéro de téléphone bloqué Contact avec un numéro international non valide/bloqué.

Ajouter un seul contact à une campagne

Paramètre Obligatoire Type de données Définition
campaign_id TRUE Integer ID de la campagne à laquelle ajouter un contact.

Point de terminaison :

Method: POST
Type: RAW
URL: https://{subdomain}.​{domain}​/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "name": "string",
    "email": "customer@somedomain.com",
    "phone_number": "+1 111-111-1111",
    "outbound_number": "+1 760-867-5309",
    "external_unique_id": "UID_123456"
}

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Ajouter un seul contact à une campagne

Cet exemple montre comment ajouter un contact à un ID de campagne spécifique.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Requête

Clé Valeur Description
campaign_id entier ID de la campagne à laquelle ajouter le contact

Corps :

{
    "name": "string",
    "email": "customer@somedomain.com",
    "phone_number": "+1 111-111-1111",
    "outbound_number": "+1 760-867-5309",
    "external_unique_id": "UID_123456"
}
Réponse
{
    "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": []
}

Code d'état : 200

Obtenir les contacts d'une campagne

Paramètre Obligatoire Type de données Définition
campaign_id TRUE Integer ID de la campagne à partir de laquelle récupérer les contacts.

Point de terminaison :

Method: GET
Type:
URL: https://{subdomain}.​{domain}​/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts

En-têtes

Clé Valeur Description
Content-Type application/json

Requête

Clé Valeur Description
campaign_id entier ID de la campagne à laquelle ajouter le contact

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Obtenir les contacts d'une campagne

L'exemple suivant montre comment récupérer les contacts pour l'ID de campagne donné.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Requête

Clé Valeur Description
campaign_id entier ID de la campagne pour laquelle effectuer la requête
Réponse
[
  {
      "name": "string",
      "email": "customer@somedomain.com",
      "phone_number": "+1 111-111-1111",
      "outbound_number": "+1 760-867-5309",
      "external_unique_id": "UID_123456"
  }
]

Code d'état : 200

Importer plusieurs contacts dans une campagne

Paramètre Obligatoire Type de données Définition
fichier TRUE Chaîne Fichier JSON contenant les contacts à ajouter à une campagne.
campaign_id TRUE Integer ID de la campagne à laquelle ajouter les contacts.

Point de terminaison :

Method: POST
Type: FORM DATA
URL: https://{​subdomain}​.{​domain}​/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts/import

En-têtes

Clé Valeur Description
Content-Type multipart/form-data

Corps :

'FORM DATA'

Contenu du fichier :

[
  {
      "name": "string",
      "email": "customer@somedomain.com",
      "phone_number": "+1 111-111-1111",
      "outbound_number": "+1 760-867-5309",
      "external_unique_id": "UID_123456"
  }
]

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Importer plusieurs contacts à partir d'un fichier

Cet exemple montre comment ajouter des contacts à une campagne en fonction d'un fichier publié sur le point de terminaison. Le fichier est publié en tant que données de formulaire.

Requête

En-têtes

Clé Valeur Description
Content-Type multipart/form-data

Requête

Clé Valeur Description
campaign_id entier ID de la campagne à laquelle ajouter les contacts

Contenu du fichier :

[
  {
      "name": "string",
      "email": "customer@somedomain.com",
      "phone_number": "+1 111-111-1111",
      "outbound_number": "+1 760-867-5309",
      "external_unique_id": "UID_123456"
  }
]
Réponse

None

Code d'état : 202 (Acceptée)

Jobs

Paramètre Obligatoire Type de données Définition
job_id TRUE Integer ID du job que vous souhaitez récupérer
campaign_id TRUE Integer ID de la campagne à laquelle appartient l'ID du job.

Point de terminaison :

Method: GET
Type:
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contacts/jobs/{job_id}

En-têtes

Clé Valeur Description
Content-Type application/json

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Tâche exécutée

L'exemple suivant montre comment récupérer le job et identifier s'il a été effectué.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Requête

Clé Valeur Description
campaign_id 1 ID de la campagne à laquelle appartient le job
job_id 530 ID de la tâche dont vous souhaitez vérifier l'état.
Réponse
{
    "id": 530,
    "status": "completed",
    "type": "Jobs::Bulk::Campaign::ParentJob"
}

Code d'état : 200

Importation toujours en cours

L'exemple suivant montre comment récupérer le job et identifier si l'importation est toujours en cours.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Requête

Clé Valeur Description
campaign_id 1 ID de la campagne à laquelle appartient le job
job_id 530 ID de la tâche dont vous souhaitez vérifier l'état.
Réponse
{
    "id": 530,
    "status": "in_progress",
    "type": "Jobs::Bulk::Campaign::ParentJob"
}

Code d'état : 200

Job ayant échoué

L'exemple suivant montre comment récupérer le job et identifier s'il a échoué.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Requête

Clé Valeur Description
campaign_id 1 ID de la campagne à laquelle appartient le job
job_id 523 ID de la tâche dont vous souhaitez vérifier l'état.
Réponse
{
    "error_details": "NativePowerDial::ContactService::DuplicateContactPhoneOnCampaign",
    "error_message": "Internal Error",
    "id": 523,
    "status": "failed",
    "type": "Jobs::Bulk::Campaign::StartImport"
}

Code d'état : 200

Modifier un seul contact

Paramètre Obligatoire Type de données Définition
campaign_id TRUE Integer ID de la campagne à laquelle appartient l'ID du job.

Point de terminaison :

Method: PATCH
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contact

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "contact_id": 16312,
    "name": "string",
    "email": "customer@somedomain.com",
    "phone_number": "+1 111-111-1111",
    "external_unique_id": "UID_123456"
}

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Modifier un contact pour une campagne

Cet exemple montre comment mettre à jour un contact qui se trouve dans une campagne spécifique.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "contact_id": 7,
    "name": "Bob Smith",
    "email": "customer@somedomain.com",
    "phone_number": "+1 111-111-1111",
    "external_unique_id": "UID_123456"
}
Réponse
{
    "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"
    }
}

Code d'état : 200

Supprimer un seul contact

Paramètre Obligatoire Type de données Définition
campaign_id TRUE Integer ID de la campagne à laquelle appartient l'ID du job.

Point de terminaison :

Method: DELETE
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/outbound_dialer/campaigns/{campaign_id}/contact

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "contact_id": integer,
    "phone_number": "string",
    "external_unique_id": "string"
}

Exemple de requête et de réponses

Les sections suivantes fournissent des exemples de requêtes au point de terminaison.

Supprimer un contact par son ID

Cet exemple montre comment supprimer un contact d'une campagne en fonction de son ID.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "contact_id": 7,
}

Requête

Clé Valeur Description
campaign_id 1 ID de la campagne à laquelle appartient le job
Réponse
{
    "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"
    }
}

Code d'état : 200