Endpoints de SMS

A Contact Center AI Platform (CCAI Platform) oferece o endpoint SMS de saída para o canal de SMS.

SMS de saída

Parâmetro Obrigatório Tipo de dados Definição
chat_type TRUE String Tipo de chat a ser criado. "Mensagens (API)" e "SMS" (descontinuado) estão disponíveis por enquanto Mensagens (API)
end_user_number TRUE String Número de telefone para onde a mensagem de texto será enviada `{end_user_number}`
outbound_number TRUE String Número de telefone de saída a ser usado para enviar a mensagem SMS. `{outbound_number}`
mensagem TRUE String Mensagem SMS a ser enviada ao consumidor `{message}`
ticket_id FALSO String ID do tíquete do CRM que será associado à sessão. `{ticket_id}`

Endpoint:

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

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

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

Exemplos de solicitações e respostas

As seções a seguir fornecem exemplos de solicitações ao endpoint.

Criar um chat de SMS de saída com ID do tíquete

Este exemplo demonstra como criar um SMS de saída para um usuário final associado a um ID de tíquete.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Resposta: crie um chat de SMS de saída com 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 status:200

Criar uma conversa por SMS de saída e atribuir a um agente usando o ID dele

Este exemplo demonstra como criar um SMS de saída atribuído a um agente com base no ID fornecido.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "agentId": 1
}
Resposta: crie um chat de SMS de saída e atribua a um agente usando 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 status:200

Criar um chat de SMS de saída e atribuir a um e-mail de agente

Este exemplo demonstra como criar uma sessão de chat por SMS de saída e associá-la a um agente com base no endereço de e-mail dele.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

{
    "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"
}
Resposta: crie um chat de SMS de saída e atribua a um agente usando 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 status:200

Criar um chat de SMS de saída sem ID do tíquete

Este exemplo demonstra como criar um SMS de saída sem associá-lo a um ID de tíquete.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Resposta: crie uma conversa por SMS de saída sem 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 status:200

Erro : é necessário informar o chat_type

Este exemplo demonstra o cenário de falha em que o "chat_type" não foi fornecido, mas é obrigatório.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

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

Código de status:400

Erro : é preciso fornecer um tipo de chat válido

Este exemplo demonstra o cenário de falha em que o tipo de chat precisa ser fornecido, mas estava faltando.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

{
    "chat_type": "In-app",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Resposta: Error : valid chat type needs to be provided
{
    "message": "valid chat type needs to be provided"
}

Código de status:400

Erro : o SMS não está ativado

Este exemplo demonstra o cenário de falha em que um SMS de saída é iniciado, mas o SMS não está ativado.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

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

Resposta: erro : o SMS não está ativado

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

Código de status:400

Erro : o SMS de saída não está ativado

Este exemplo demonstra o cenário de falha em que uma sessão de SMS é iniciada, mas falha porque o canal de SMS não está ativado.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

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

Resposta: Error : Outbound SMS is not enabled

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

Código de status:400

Erro : o número do usuário final é obrigatório

Este exemplo demonstra o cenário de falha em que o número do usuário final não foi fornecido, mas é obrigatório.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

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

Resposta: Error : end_user_number is required

{
    "message": "end_user_number is required"
}

Código de status:400

Erro : o número do usuário final é inválido

Este exemplo demonstra o cenário de falha em que o número do usuário final fornecido é inválido.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

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

Resposta: Error : end_user_number is invalid

{
    "message": "end_user_number is invalid"
}

Código de status:400

Erro : número de telefone de fora dos EUA não permitido

Este exemplo demonstra o cenário de falha em que o número fornecido não é um número de telefone dos EUA e é proibido.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+82 000-000-0000",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Resposta: Error : Non-US phone number not allowed
{
    "message": "Non-US phone number not allowed"
}

Código de status:400

Erro : o número de saída é obrigatório

Este exemplo demonstra o cenário de falha em que o número de saída não foi fornecido, mas é obrigatório.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

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

Código de status:400

Erro : o número de saída é inválido

Este exemplo demonstra o cenário de falha em que o número de saída fornecido é inválido.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

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

Código de status:400

Erro : outbound_number não encontrado

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Resposta: erro : outbound_number não encontrado
{
    "message": "outbound_number is not found"
}

Código de status:400

Erro : a mensagem é obrigatória

Este exemplo demonstra o cenário de falha em que a mensagem não foi fornecida nas exigências, mas é obrigatória.

Solicitação

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

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

Código de status:400

Erro : falha no envio de SMS. O consumidor já está em uma sessão de SMS ativa.

Cabeçalhos:

Chave Valor Descrição
Content-Type application/json

Corpo:

{
    "chat_type": "Messaging (SMS)",
    "end_user_number": "+1 415-555-0100",
    "outbound_number": "+1 628-555-0199",
    "message": "lorem ipsum",
    "ticket_id": "5006x00000XXxxxXXX"
}
Resposta: erro : falha no SMS enviado. O consumidor já está em uma sessão de SMS ativa.
{
    "message": "Outbound SMS failed. Consumer is already in an active SMS session."
}

Código de status:400