Extremos de SMS

Contact Center AI Platform (CCAI Platform) proporciona el extremo de SMS salientes para el canal de SMS.

SMS salientes

Parámetro Obligatorio Tipo de datos Definición
chat_type TRUE String Tipo de chat que se creará. Por el momento, están disponibles "Mensajería (API)" y "SMS" (obsoleto). Mensajería (API)
end_user_number TRUE String Número al que se enviará el mensaje de texto `{end_user_number}`
outbound_number TRUE String Número de teléfono saliente que se usará para enviar el mensaje SMS `{outbound_number}`
mensaje TRUE String Mensaje SMS que se enviará al consumidor `{message}`
ticket_id FALSO String ID del ticket de CRM que se asociará con la sesión `{ticket_id}`

Endpoint:

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

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

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

Ejemplos de solicitudes y respuestas

En las siguientes secciones, se proporcionan ejemplos de solicitudes al extremo.

Crea un chat de SMS saliente con el ID de ticket

En este ejemplo, se muestra cómo crear un SMS saliente para un usuario final asociado a un ID de ticket.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Respuesta: Crea un chat de SMS saliente con 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"
}

Código de estado: 200

Crea un chat por SMS saliente y asígnaselo a un agente con su ID

En este ejemplo, se muestra cómo crear un SMS saliente que se asigna a un agente según el ID del agente proporcionado.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "agentId": 1
}
Respuesta: Crea un chat por SMS saliente y asígnale un agente con 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"
}

Código de estado: 200

Crea un chat por SMS saliente y asígnalo a un correo electrónico de agente

En este ejemplo, se muestra cómo crear una sesión de chat por SMS saliente y asociarla con un agente proporcionando su dirección de correo electrónico.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "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"
}
Respuesta: Crea un chat por SMS saliente y asígnale un agente con 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"
}

Código de estado: 200

Crea un chat por SMS saliente sin ID de ticket

En este ejemplo, se muestra cómo crear un SMS saliente sin asociarlo a un ID de ticket.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Respuesta: Crea un chat por SMS saliente sin 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"
}

Código de estado: 200

Error : Se debe proporcionar chat_type

En este ejemplo, se muestra la situación de error en la que no se proporcionó el parámetro "chat_type", pero es obligatorio.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Respuesta: Error : Se debe proporcionar chat_type
{
    "message": "chat_type needs to be provided"
}

Código de estado: 400

Error : Se debe proporcionar un tipo de chat válido

En este ejemplo, se muestra la situación de error en la que se debe proporcionar el tipo de chat, pero no se hizo.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "chat_type": "In-app",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Respuesta: Error : Se debe proporcionar un tipo de chat válido
{
    "message": "valid chat type needs to be provided"
}

Código de estado: 400

Error : SMS no habilitado

En este ejemplo, se muestra la situación de error en la que se inicia un SMS saliente, pero no se habilita el SMS.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

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

Respuesta: Error : SMS no habilitado

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

Código de estado: 400

Error : No se habilitaron los SMS salientes

En este ejemplo, se muestra la situación de error en la que se inicia una sesión de SMS, pero falla porque el canal de SMS no está habilitado.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

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

Respuesta: Error : No se habilitaron los SMS salientes

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

Código de estado: 400

Error : Se requiere el número del usuario final

En este ejemplo, se muestra la situación de error en la que no se proporcionó el número del usuario final, pero es obligatorio.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

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

Respuesta: Error : Se requiere end_user_number

{
    "message": "end_user_number is required"
}

Código de estado: 400

Error : El número del usuario final no es válido

En este ejemplo, se muestra la situación de error en la que el número de usuario final proporcionado no es válido.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

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

Respuesta: Error : end_user_number no es válido

{
    "message": "end_user_number is invalid"
}

Código de estado: 400

Error : No se permite un número de teléfono que no sea de EE.UU.

En este ejemplo, se muestra la situación de error en la que el número proporcionado no es un número de teléfono de EE.UU. y está prohibido.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+82 000-000-0000",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Respuesta: Error : No se permite un número de teléfono que no sea de EE.UU.
{
    "message": "Non-US phone number not allowed"
}

Código de estado: 400

Error : Se requiere un número de salida

En este ejemplo, se muestra la situación de falla en la que no se proporcionó el número saliente, pero es obligatorio.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Respuesta: Error : Se requiere outbound_number
{
    "message": "outbound_number is required"
}

Código de estado: 400

Error : El número de salida no es válido

En este ejemplo, se muestra la situación de falla en la que el número de salida proporcionado no es válido.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "12345",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Respuesta: Error : outbound_number no es válido
{
    "message": "outbound_number is invalid"
}

Código de estado: 400

Error : No se encontró outbound_number

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Respuesta: Error : No se encontró outbound_number
{
    "message": "outbound_number is not found"
}

Código de estado: 400

Error : El mensaje es obligatorio

En este ejemplo, se muestra la situación de error en la que no se proporcionó el mensaje en los requisitos, pero es obligatorio.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "",
    "ticket_id": "5006x00000XXxxxXXX"
}
Respuesta: Error : Se requiere un mensaje
{
    "message": "message is required"
}

Código de estado: 400

Error : No se pudo enviar el SMS saliente. El consumidor ya está en una sesión de SMS activa.

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Respuesta: Error : No se pudo enviar el SMS saliente. El consumidor ya está en una sesión de SMS activa.
{
    "message": "Outbound SMS failed. Consumer is already in an active SMS session."
}

Código de estado: 400