Points de terminaison SMS

Contact Center AI Platform (CCAI Platform) fournit le point de terminaison SMS sortants pour le canal SMS.

SMS sortants

Paramètre Obligatoire Type de données Définition
chat_type TRUE Chaîne Type de chat à créer. Les options "Messagerie (API)" et "SMS" (obsolète) sont disponibles pour le moment. Messagerie (API)
end_user_number TRUE Chaîne Numéro de téléphone auquel le message doit être envoyé `{end_user_number}`
outbound_number TRUE Chaîne Numéro de téléphone sortant à utiliser pour envoyer le message SMS `{outbound_number}`
message TRUE Chaîne Message SMS à envoyer au client `{message}`
ticket_id FALSE Chaîne ID de la demande CRM qui sera associée à la session. `{ticket_id}`

Point de terminaison :

Method: POST
Type: RAW
URL: https://{{subdomain}}.{{domain}}/apps/api/v1/sms

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}

Exemples de requêtes et de réponses

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

Créer un chat par SMS sortant avec un numéro de ticket

Cet exemple montre comment créer un SMS sortant destiné à un utilisateur final associé à un numéro de demande.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Réponse : Crée un chat par SMS sortant avec ticket_id
{
  "id": 114,
  "lang": "en",
  "chat_type": "Messaging (SMS)",
  "status": "selecting",
  "created_at": "2021-10-04T17:20:51.000Z",
  "queued_at": null,
  "assigned_at": null,
  "ends_at": null,
  "wait_duration": 0,
  "chat_duration": 0,
  "rating": null,
  "has_feedback": false,
  "out_ticket_id": null,
  "out_ticket_url": null,
  "verified": false,
  "disconnected_by": "disconnected_by_unknown",
  "fail_reason": null,
  "selected_menu": null,
  "menu_path": null,
  "agent_info": null,
  "end_user": {
    "id": 87,
    "identifier": null,
    "out_contact_id": null
  },
  "photos": [],
  "videos": [],
  "transfers": [],
  "participants": [
    {
      "id": 205,
      "type": "end_user",
      "status": "connected",
      "chat_id": 114,
      "user_id": null,
      "end_user_id": 87,
      "chat_duration": null,
      "connected_at": "2021-10-04T17:20:51.000Z",
      "ended_at": null,
      "fail_reason": "nothing"
    }
  ],
  "offer_type": null,
  "offer_events": [],
  "answer_type": "manual",
  "outbound_number": "+16285550199"
}

Code d'état : 200

Créer une discussion SMS sortante et l'attribuer à un agent à l'aide de son ID

Cet exemple montre comment créer un SMS sortant qui est attribué à un agent en fonction de l'ID d'agent fourni.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "agentId": 1
}
Réponse : Créez une conversation SMS sortante et attribuez-la à un agent à l'aide de l'agentId.
{
    "id": 114,
    "lang": "en",
    "chat_type": "Messaging (SMS)",
    "status": "assigned",
    "created_at": "2021-10-04T17:20:51.000Z",
    "queued_at": null,
    "assigned_at": "2021-10-04T17:20:53.000Z",
    "ends_at": null,
    "wait_duration": 0,
    "chat_duration": 0,
    "rating": null,
    "has_feedback": false,
    "out_ticket_id": null,
    "out_ticket_url": null,
    "verified": false,
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": null,
    "selected_menu": null,
    "menu_path": null,
    "agent_info": {
        "id": 1,
        "agent_number": 9,
        "email": "john.doe@foo.com",
        "name": "John Doe",
        "first_name": "John",
        "last_name": "Doe",
        "avatar_url": "https://foobar.com/johndoe"
    },
    "end_user": {
        "id": 87,
        "identifier": null,
        "out_contact_id": null
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "participants": [
        {
            "id": 205,
            "type": "end_user",
            "status": "connected",
            "chat_id": 114,
            "user_id": null,
            "end_user_id": 87,
            "chat_duration": null,
            "connected_at": "2021-10-04T17:20:51.000Z",
            "ended_at": null,
            "fail_reason": "nothing"
        },
        {
            "id": 206,
            "type": "agent",
            "status": "connected",
            "chat_id": 114,
            "user_id": 1,
            "end_user_id": null,
            "chat_duration": null,
            "connected_at": "2021-10-04T17:20:53.000Z",
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": null,
    "offer_events": [],
    "answer_type": "manual",
    "outbound_number": "+16285550199"
}

Code d'état : 200

Créer un chat par SMS sortant et l'attribuer à une adresse e-mail d'agent

Cet exemple montre comment créer une session de chat SMS sortant et l'associer à un agent en fournissant son adresse e-mail.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "agentEmail": "john.doe@foo.com"
}
Réponse : Créez une conversation SMS sortante et attribuez-la à un agent à l'aide de l'agentId.
{
    "id": 114,
    "lang": "en",
    "chat_type": "Messaging (SMS)",
    "status": "assigned",
    "created_at": "2021-10-04T17:20:51.000Z",
    "queued_at": null,
    "assigned_at": "2021-10-04T17:20:53.000Z",
    "ends_at": null,
    "wait_duration": 0,
    "chat_duration": 0,
    "rating": null,
    "has_feedback": false,
    "out_ticket_id": null,
    "out_ticket_url": null,
    "verified": false,
    "disconnected_by": "disconnected_by_unknown",
    "fail_reason": null,
    "selected_menu": null,
    "menu_path": null,
    "agent_info": null,
    "end_user": {
        "id": 87,
        "identifier": null,
        "out_contact_id": null
    },
    "photos": [],
    "videos": [],
    "transfers": [],
    "participants": [
        {
            "id": 205,
            "type": "end_user",
            "status": "connected",
            "chat_id": 114,
            "user_id": null,
            "end_user_id": 87,
            "chat_duration": null,
            "connected_at": "2021-10-04T17:20:51.000Z",
            "ended_at": null,
            "fail_reason": "nothing"
        },
        {
            "id": 206,
            "type": "agent",
            "status": "connected",
            "chat_id": 114,
            "user_id": 1,
            "end_user_id": null,
            "chat_duration": null,
            "connected_at": "2021-10-04T17:20:53.000Z",
            "ended_at": null,
            "fail_reason": "nothing"
        }
    ],
    "offer_type": null,
    "offer_events": [],
    "answer_type": "manual",
    "outbound_number": "+16285550199"
}

Code d'état : 200

Créer une discussion SMS sortante sans ID de demande

Cet exemple montre comment créer un SMS sortant sans l'associer à un numéro de demande.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Réponse : Créer un chat par SMS sortant sans ticket_id
{
  "id": 114,
  "lang": "en",
  "chat_type": "Messaging (SMS)",
  "status": "selecting",
  "created_at": "2021-10-04T17:20:51.000Z",
  "queued_at": null,
  "assigned_at": null,
  "ends_at": null,
  "wait_duration": 0,
  "chat_duration": 0,
  "rating": null,
  "has_feedback": false,
  "out_ticket_id": null,
  "out_ticket_url": null,
  "verified": false,
  "disconnected_by": "disconnected_by_unknown",
  "fail_reason": null,
  "selected_menu": null,
  "menu_path": null,
  "agent_info": null,
  "end_user": {
    "id": 87,
    "identifier": null,
    "out_contact_id": null
  },
  "photos": [],
  "videos": [],
  "transfers": [],
  "participants": [
    {
      "id": 205,
      "type": "end_user",
      "status": "connected",
      "chat_id": 114,
      "user_id": null,
      "end_user_id": 87,
      "chat_duration": null,
      "connected_at": "2021-10-04T17:20:51.000Z",
      "ended_at": null,
      "fail_reason": "nothing"
    }
  ],
  "offer_type": null,
  "offer_events": [],
  "answer_type": "manual",
  "outbound_number": "+16285550199"
}

Code d'état : 200

Erreur : Vous devez indiquer le type de chat

Cet exemple illustre le scénario d'échec dans lequel le paramètre "chat_type" n'a pas été fourni, mais est obligatoire.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Réponse : Erreur : chat_type doit être fourni
{
    "message": "chat_type needs to be provided"
}

Code d'état : 400

Erreur : Vous devez indiquer un type de chat valide

Cet exemple illustre le scénario d'échec dans lequel le type de chat doit être fourni, mais est manquant.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "In-app",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Réponse : Erreur : vous devez fournir un type de chat valide
{
    "message": "valid chat type needs to be provided"
}

Code d'état : 400

Erreur : Les SMS ne sont pas activés

Cet exemple illustre le scénario d'échec dans lequel un SMS sortant est initié, mais les SMS ne sont pas activés.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}

Réponse : Erreur : Les SMS ne sont pas activés

{
    "message": "SMS is not enabled"
}

Code d'état : 400

Erreur : Les SMS sortants ne sont pas activés

Cet exemple illustre le scénario d'échec dans lequel une session SMS est lancée, mais échoue, car le canal SMS n'est pas activé.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}

Réponse : Erreur : Les SMS sortants ne sont pas activés

{
    "message": "Outbound SMS is not enabled"
}

Code d'état : 400

Erreur : Vous devez indiquer le numéro de l'utilisateur final

Cet exemple illustre le scénario d'échec dans lequel le numéro de l'utilisateur final n'a pas été fourni, mais est requis.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}

Réponse : Erreur : end_user_number est obligatoire

{
    "message": "end_user_number is required"
}

Code d'état : 400

Erreur : Le numéro de l'utilisateur final n'est pas valide

Cet exemple illustre le scénario d'échec dans lequel le numéro de l'utilisateur final fourni n'est pas valide.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "12345",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}

Réponse : Erreur : end_user_number n'est pas valide

{
    "message": "end_user_number is invalid"
}

Code d'état : 400

Erreur : Numéro de téléphone non américain non autorisé

Cet exemple illustre le scénario d'échec dans lequel le numéro fourni n'est pas un numéro de téléphone américain et est interdit.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+82 000-000-0000",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Réponse : Erreur : Numéro de téléphone non américain non autorisé
{
    "message": "Non-US phone number not allowed"
}

Code d'état : 400

Erreur : Le numéro sortant est obligatoire

Cet exemple illustre le scénario d'échec dans lequel le numéro sortant n'a pas été fourni, mais est obligatoire.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Réponse : Erreur : outbound_number est obligatoire
{
    "message": "outbound_number is required"
}

Code d'état : 400

Erreur : Le numéro sortant n'est pas valide

Cet exemple illustre le scénario d'échec dans lequel le numéro sortant fourni n'est pas valide.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "12345",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Réponse : Erreur : outbound_number is invalid
{
    "message": "outbound_number is invalid"
}

Code d'état : 400

Erreur : outbound_number introuvable

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Réponse : Erreur : outbound_number introuvable
{
    "message": "outbound_number is not found"
}

Code d'état : 400

Erreur : Vous devez indiquer un message

Cet exemple illustre le scénario d'échec dans lequel le message n'a pas été fourni dans les exigences, mais est obligatoire.

Requête

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "",
    "ticket_id": "5006x00000XXxxxXXX"
}
Réponse : Erreur : message obligatoire
{
    "message": "message is required"
}

Code d'état : 400

Erreur : Échec de l'envoi du SMS. Le consommateur est déjà dans une session SMS active.

En-têtes

Clé Valeur Description
Content-Type application/json

Corps :

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Réponse : Erreur : Échec de l'envoi du SMS sortant. Le consommateur est déjà dans une session SMS active.
{
    "message": "Outbound SMS failed. Consumer is already in an active SMS session."
}

Code d'état : 400