Definição de respostas usando o editor JSON

Em algumas situações, talvez você precise definir as respostas do seu assistente usando o editor JSON. Para obter mais informações, consulte Adição de respostas de assistente.

Para editar uma resposta usando o editor JSON, clique no ícone Mudar para o editor JSON ' Alternar para o ícone do editor JSON no campo Assistant says (Assistente diz). O editor JSON mostra como a resposta é definida em segundo plano e enviada para o canal.

Formato JSON genérico

Se abrir o editor JSON em uma resposta nova e vazia, você verá a estrutura básica a seguir:

{
  "generic": []
}

A propriedade " generic define uma matriz de respostas que são enviadas ao canal quando a etapa é executada. O termo genérico refere-se ao fato de que essas respostas são definidas usando um formato JSON genérico que não é específico de nenhum canal. Esse formato pode acomodar vários tipos de resposta que são suportados por diversas integrações e também pode ser implementado por um aplicativo cliente customizado que usa API de REST.

A matriz generic para uma etapa pode conter várias respostas, e cada resposta tem um tipo de resposta. Uma etapa básica que envia uma resposta de texto simples geralmente inclui apenas uma única resposta com o tipo de resposta text. No entanto, muitos outros tipos de resposta estão disponíveis, com suporte a conteúdo multimídia e interativo, além de controle sobre o comportamento de algumas integrações de canal.

Embora o formato " generic possa ser enviado a qualquer integração de canal, nem todos os canais suportam todos os tipos de resposta, portanto, uma resposta específica pode ser ignorada ou tratada de forma diferente por alguns canais. Para obter mais informações, consulte Suporte de integração de canal para tipos de resposta.

Em tempo de execução, a saída com várias respostas pode ser dividida em várias cargas de mensagens. A integração do canal envia essas mensagens para o canal em sequência, mas é responsabilidade do canal entregar essas mensagens ao usuário; isso pode ser afetado por problemas de rede ou de servidor.

Incluindo Respostas

Para especificar uma resposta no editor JSON, insira os objetos JSON apropriados no campo generic da resposta da etapa. O exemplo a seguir mostra a saída com duas respostas de tipos diferentes (texto e uma imagem):

{
  "generic":[
    {
      "response_type": "text",
      "values": [
        {
          "text_expression": {
            "concat": [
              {
                "scalar": "This is a text response."
              }
            ]
          }
        }
      ]
    },
    {
      "response_type": "image",
      "source": "https://example.com/image.jpg",
      "title": "Example image",
      "description": "This is an image response."
    }
  ]
}

Para obter mais informações, consulte Tipos de resposta.

Visando integrações específicas

Para implementar o assistente em vários canais, talvez você queira enviar diferentes respostas para diferentes integrações com base nas capacidades de cada canal. A propriedade channels do objeto de resposta genérica fornece uma maneira de fazer isso.

Esse mecanismo é útil se o seu fluxo de conversação não for alterado com base na integração em uso e se você não puder saber antecipadamente para qual integração a resposta será enviada em tempo de execução. Ao usar channels, é possível definir uma única etapa que suporte todas as integrações, enquanto ainda customiza a saída para cada canal. Por exemplo, talvez você queira customizar a formatação do texto ou até mesmo enviar diferentes tipos de resposta com base naquilo que o canal suporta.

O uso do " channels é útil junto com o tipo de resposta " channel_transfer. Como a saída da mensagem é processada pelo canal que inicia o ' transfer e pelo canal de destino, você pode usar o ' channels para definir respostas que são processadas por um ou por outro.

Para especificar as integrações para as quais uma resposta é destinada, inclua a matriz channels opcional como parte do objeto de resposta. Todos os tipos de resposta suportam a matriz channels. Essa matriz contém um ou mais objetos usando a seguinte sintaxe:

{
  "channel": "<channel_name>"
}

O valor de <channel_name> pode ser qualquer uma das sequências a seguir:

  • chat: chat web
  • voice_telephony: telefone
  • text_messaging: SMS
  • slack: Slack
  • facebook: Facebook Messenger
  • whatsapp: WhatsApp

O exemplo a seguir mostra uma saída de etapa que contém duas respostas: uma destinada à integração de chat web e uma destinada às integrações Slack e Facebook.

{
  "generic": [
    {
      "response_type": "text",
      "channels": [
        {
          "channel": "chat"
        }
      ],
      "values": [
        {
          "text_expression": {
            "concat": [
              {
                "scalar": "This output is intended for the <strong>web chat</strong>."
              }
            ]
          }
        }
      ]
    },
    {
      "response_type": "text",
      "channels": [
        {
          "channel": "slack"
        },
        {
          "channel": "facebook"
        }
      ],
      "values": [
        {
          "text_expression": {
            "concat": [
              {
                "scalar": "This output is intended for either Slack or Facebook."
              }
            ]
          }
        }
      ]
    }
  ]
}

Se a matriz channels estiver presente, ela deverá conter pelo menos um objeto de canal. Qualquer integração que não seja listada ignora a resposta. Se a matriz channels estiver ausente, todas as integrações manipularão a resposta.

Tipos de resposta

Você pode configurar diferentes tipos de respostas usando JSON. Para saber mais sobre os tipos de resposta e as integrações compatíveis com os tipos de resposta JSON, consulte Referência de tipos de resposta.