Especificações das mensagens do Chatlayer

Conheça como é o código das mensagens do Chatlayer para que você possa usá-lo em suas chamadas de API ou em suas transferências.

Chatlayer.ai suporta diferentes tipos de mensagens de chat, cada uma com sua própria estrutura de objeto. Mensagens de chat podem ser enviadas:

  • Na resposta do plugin da API

  • Do seu webhook para o Chatlayer.ai

Cada mensagem tem dois campos obrigatórios:

  • type: o tipo da mensagem (carousel, buttons, list, media, text, …)

  • config: a configuração da mensagem

Texto

Uma mensagem de texto inclui uma simples mensagem de texto do bot.

Formato da requisição:

{
  "senderId": "a7355930-fa92-11e7-8308-2f056e75d1ee",
  "message":  {
    "text": "Hi, I'm a chatbot"
  },
  "messageCounter": 1,
  "verifyToken": "8wMsLZkdDPT64nqh"
}

Propriedade

Valor

Descrição

text

string

A mensagem de teste do usuário.

Modelo de Botão

Um modelo de botão inclui uma simples mensagem de texto do bot e um array de objetos botão.

Formato da requisição:

{
  "senderId": "a7355930-fa92-11e7-8308-2f056e75d1ee",
  "message":  {
    "attachment": {
      "type": "template",
      "payload": {
        "template_type": "button",
        "text": "Hello, in which language can I help you?",
        "buttons": [
          {
            "type": "postback",
            "title": "Nederlands",
            "payload": "437a034cde170b50de1b6a87d1cba104e39b1f6e"
          },
          {
            "type": "postback",
            "title": "English",
            "payload": "a6a318dd6afe997f282b3c7472e038a2e0f4046a"
          },
        ]
      }
    }
  },
  "messageCounter": 1,
  "verifyToken": "8wMsLZkdDPT64nqh"
}

Objeto de mensagem para modelo de botão:

Propriedade

Valor

Descrição

attachment

object

O objeto attachment.

Objeto de attachment:

Propriedade

Valor

Descrição

type

string

O tipo de attachment (template)

payload

object

O objeto payload do attachment. A estrutura do objeto depende do tipo de attachment

Objeto payload do attachment:

Propriedade

Valor

Descrição

template_type

string

O tipo de template (button)

text

string (opcional)

O texto acima dos botões (apenas para o tipo de template button)

buttons

array

Um array de objetos botão

Objeto botão:

Propriedade

Valor

Descrição

type

string

O tipo do botão (web_url - postback - phone_number - element_share)

title

string

A legenda do botão

payload

string (conterá o número de telefone quando o tipo for phone_number) - opcional

O payload do botão. Apenas para botões do tipo postback. Isto é um Identificador opaco por favor não tente alterar ou extrair significado dele.

url

string - opcional

A url do botão. Apenas para botões do tipo url

Respostas rápidas

Uma mensagem de resposta rápida inclui uma simples mensagem de texto do bot e um array de objetos de resposta rápida.

Formato da requisição:

{
  "senderId": "a7355930-fa92-11e7-8308-2f056e75d1ee",
  "message":  {
    "text": "Hello, in which language can I help you?",
    "quick_replies": [
      {
        "content_type": "text",
        "title": "Nederlands",
        "payload": "c3e30be2f30687fea0ae419acaeb9d77261631a9",
        "image_url": "https://domain/logo.png"
      },
      {
        "content_type": "text",
        "title": "English",
        "payload": "2e29412e82c8eea8c8b0c170661070d28929a900",
        "image_url": "https://domain/logo.png"
      },
    ]
  },
  "messageCounter": 1,
  "verifyToken": "8wMsLZkdDPT64nqh"
}

Objeto de mensagem para respostas rápidas:

Propriedade

Valor

Descrição

text

string

O texto antes das respostas rápidas.

quick_replies

array

Um array de objetos de resposta rápida

Objeto de resposta rápida:

Propriedade

Valor

Descrição

content_type

string

O tipo de conteúdo da resposta rápida (text)

title

string

A legenda do botão

payload

string

O payload da resposta rápida. Isto é um Identificador opaco por favor não tente alterar ou extrair significado dele.

Modelo genérico

Um modelo genérico (carrossel) inclui uma lista de elementos do template genérico. O elemento do template genérico é uma mensagem estruturada simples que inclui um título, subtítulo, imagem e até três botões

Formato da requisição:

{
  "senderId": "a7355930-fa92-11e7-8308-2f056e75d1ee",
  "message":  {
    "attachment": {
      "type": "template",
      "payload": {
        "template_type": "generic",
        "elements": [
          {
             "title": "Language",
             "subtitle": "Please set your language",
             "image_url": "https://domain/lang.png",
             "item_url": "https://domain/lang",
             "buttons": [
               {
                 "type": "postback",
                 "title": "Nederlands",
                 "payload": "f0512bd2fcddc53963056dc0d63b52b8caa902ff"
               },
               {
                 "type": "postback",
                 "title": "English",
                 "payload": "4562ae76c34a13647fab90425c68a486b8acf356"
               },
            ]
          }
        ]
      }
    }
  },
  "messageCounter": 1,
  "verifyToken": "8wMsLZkdDPT64nqh"
}

Objeto de mensagem para template genérico:

Propriedade

Valor

Descrição

attachment

object

O objeto attachment.

Objeto de attachment:

Propriedade

Valor

Descrição

type

string

O tipo de attachment (template)

payload

object

O objeto payload do attachment. A estrutura do objeto depende do tipo de attachment

Objeto payload do attachment:

Propriedade

Valor

Descrição

template_type

string

O tipo de template (generic)

elements

array

Um array de elementos do template genérico (cards do carrossel)

Objeto de elemento do template genérico:

Propriedade

Valor

Descrição

title

string

O título do card do carrossel

subtitle

string

O subtítulo do card do carrossel

image_url

string

A imagem do card do carrossel

item_url

string

A url do card do carrossel. Quando o usuário clica na imagem a página web abre em uma nova aba do navegador.

buttons

array

Um array de objetos botão

Objeto botão:

Propriedade

Valor

Descrição

type

string

O tipo do botão (web_url - postback - phone_number - element share)

title

string

A legenda do botão

payload

string (conterá o número de telefone quando o tipo for phone_number) - opcional

O payload do botão. Apenas para botões do tipo postback. Isto é um Identificador opaco por favor não tente alterar ou extrair significado dele.

url

string - opcional

A url do botão. Apenas para botões do tipo url

Modelo de lista

O modelo de lista é uma lista de 2-4 itens estruturados com um botão global opcional exibido na parte inferior. Cada item pode conter uma imagem em miniatura, título, subtítulo e um botão. Você também pode especificar um objeto default_action que define uma URL que será aberta quando o item for tocado.

Formato da requisição:

{
  "senderId": "a7355930-fa92-11e7-8308-2f056e75d1ee",
  "message":  {
    "attachment": {
      "type": "template",
      "payload": {
        "template_type": "list",
        "elements": [
          {
             "title": "Language",
             "subtitle": "Select your language",
             "image_url": "https://domain/lang.png",
             "default_action": {
                "type": "web_url",
                "url": "default_url"
              }
             "buttons": [
               {
                 "type": "postback",
                 "title": "Nederlands",
                 "payload": "76601d56d0619ef87552bbfbbfcd714c4fda513b"
               }
            ]
          }
        ],
        "buttons": []
      }
    }
  },
  "messageCounter": 1,
  "verifyToken": "8wMsLZkdDPT64nqh"
}

Objeto de mensagem para template de lista:

Propriedade

Valor

Descrição

attachment

object

O objeto attachment.

Objeto de attachment:

Propriedade

Valor

Descrição

type

string

O tipo de attachment (template)

payload

object

O objeto payload do attachment. A estrutura do objeto depende do tipo de attachment

Objeto payload do attachment:

Propriedade

Valor

Descrição

template_type

string

O tipo de template (list)

elements

array

Um array de elementos da lista

buttons

array

Um array de objetos de botões gerais da lista

Objeto de elemento do template de lista:

Propriedade

Valor

Descrição

title

string

O título do card do carrossel

subtitle

string

O subtítulo do card do carrossel

image_url

string

A imagem do card do carrossel

default_action

object

A ação padrão quando o usuário toca no item da lista.

buttons

array

Um array de objetos de botões do item da lista

Objeto de ação padrão:

Propriedade

Valor

Descrição

type

string

O tipo de ação (web_url)

url

string

A URL da ação. Quando o usuário toca no elemento da lista essa página web será aberta em uma nova aba do navegador.

Objeto botão:

Propriedade

Valor

Descrição

type

string

O tipo do botão (web_url - postback - phone_numberl - element share)

title

string

A legenda do botão

payload

string (tipo phone_number) - opcional

O payload do botão. Apenas para botões do tipo postback. Isto é um Identificador opaco por favor não tente alterar ou extrair significado dele.

url

string - opcional

A url do botão. Apenas para botões do tipo url

Attachment

Um attachment representa um arquivo como imagens e vídeo.

Formato da requisição:

{
  "senderId": "a7355930-fa92-11e7-8308-2f056e75d1ee",
  "message":  {
    "attachment": {
      "type": "image"
      "payload": {
        "url": "image_url",
      }
    }
  },
  "messageCounter": 1,
  "verifyToken": "8wMsLZkdDPT64nqh"
}

Objeto de mensagem para attachment:

Propriedade

Valor

Descrição

attachment

object

O objeto attachment.

Objeto de attachment:

Propriedade

Valor

Descrição

type

string

O tipo de attachment (image-video)

payload

object

O objeto payload do attachment. A estrutura do objeto depende do tipo de attachment

Objeto payload do attachment:

Propriedade

Valor

Descrição

url

string

A url do attachment

Rich text

Rich text é texto ao qual se aplica formatação. A formatação possível é negrito, itálico, sublinhado, hyperlink para URL, hyperlink para bloco, título (1-4), lista com marcadores e lista ordenada.

Formato da requisição:

{
  senderId: 'a7355930-fa92-11e7-8308-2f056e75d1ee',
  verifyToken: 'e63131e1-459f-45aa-be42-666e1e4ef197',
  message: {
    template: {
      __typename: 'RichTextMessageTemplate',
      order: 1,
      configTranslations: [Object]
    },
    richText: '<p>Paragraph</p>\n' +
      '<p><strong>Bold</strong></p>\n' +
      '<p><em>Italic</em></p>\n' +
      '<p><u>Underlined</u></p>\n' +
      '<p><a href="https://www.sinch.com" target="_blank" rel="noopener noreferrer">Hyperlink</a></p>\n' +
      '<p><a href="f36f9056-2659-4d59-8940-4e9c7d3855a3" target="_blank" rel="noopener noreferrer">Go to bot dialog</a></p>\n' +
      '<h1>Heading 1</h1>\n' +
      '<h2>Heading 2</h2>\n' +
      '<h3>Heading 3</h3>\n' +
      '<h4>Heading 4</h4>\n' +
      '<ul>\n' +
      '<li>Bulleted list</li>\n' +
      '</ul>\n' +
      '<ol>\n' +
      '<li>Ordered list</li>\n' +
      '</ol>',
    type: 'richText'
  },
  messageCounter: 2,
  nlp: { intent: { name: null, score: null } },
  dialogstate: {
    id: 'f444b20b-370a-434d-af00-822cbce056ec',
    name: 'Introduction',
    label: null
  }
}

Objeto de mensagem para attachment:

Propriedade

Valor

Descrição

richText

string

A mensagem rich text

Last updated

Was this helpful?