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