Conceitos Básicos de Canais
O que São Canais?
Para expor seus assistentes digitais e habilidades independentes aos usuários, configure canais no Digital Assistant. Os canais transmitem o chat dos usuários em várias plataformas de mensagens para o assistente digital e suas várias habilidades. Há também canais para escalação e teste do agente do usuário.
Tipos de Canais
Você pode criar e gerenciar os seguintes tipos de canais na página Canais, que você acessa clicando em Canais no menu esquerdo. Há uma guia para cada tipo.
Tipo de Canal | Usos |
---|---|
Usuários |
|
Integrações de Agentes |
|
DA as Agent |
|
Aplicativos |
|
Sistema |
|
Roteamento de Canal do Usuário
Você pode rotear cada canal voltado ao usuário para uma única versão de um assistente digital ou uma habilidade.

Descrição da ilustração roteamento -menu.png
Somente uma versão de uma habilidade ou de um assistente digital pode ser executada em um canal a qualquer momento. Ao criar uma nova versão da habilidade, você poderá interromper o roteamento para a versão antiga e designá-lo à versão atualizada.
Você pode dar suporte à execução de duas versões de uma habilidade ou de um assistente digital simultaneamente, criando canais distintos para cada uma. Por exemplo, testadores beta poderiam acessar a habilidade por meio de um canal enquanto os clientes continuam um chat em um canal distinto sem interrupção.
Rotear (ou Rotear Novamente) um Canal
-
Clique em
para abrir o menu lateral, selecione Desenvolvimento > Canais > Usuários.
- Selecione a guia Usuários e selecione o canal.
- No canal, ao lado do campo Rotear para, selecione
e, em seguida, selecione o assistente digital ou a habilidade para o qual deseja rotear o canal.
Como Funciona o Roteamento de Canal do Usuário do Digital Assistant
Quando você registra uma habilidade em um assistente digital, as mensagens que ele envia e recebe são retransmitidas pelos canais de usuários do assistente digital. O roteamento do assistente digital é assumido, mesmo que a habilidade já tenha outros canais roteados para ela.
Por exemplo, digamos que haja duas habilidades, cada uma com seu próprio canal Web registrado em um assistente digital, que, por sua vez, roteia para seu próprio canal Web e para um canal do Facebook. Quando os usuários enviam uma mensagem ao assistente digital por meio do canal Web do assistente digital, ele determina a intenção e envia a mensagem para a habilidade apropriada. Quando a habilidade responde, sua mensagem é enviada de volta ao usuário pelo canal Web do assistente digital e da habilidade. Da mesma forma, quando o assistente digital intercepta uma mensagem de um assinante do Facebook, a resposta da habilidade ao usuário é enviada de volta pelo canal do Facebook do assistente digital, em vez do próprio canal Web da habilidade.
Testar Renderização de um Canal
Para ver como uma conversa com um assistente digital ou habilidade individual será renderizada em um determinado canal do usuário, você pode usar o testador.
-
Abra o assistente digital ou a habilidade que você deseja testar.
-
Na parte inferior da navegação esquerda do assistente digital ou da habilidade, clique em
.
-
Na lista drop-down Canal, selecione o canal no qual você planeja implantar o assistente digital ou a habilidade.
-
No campo de texto da parte inferior do testador, digite um texto de teste.
Enquanto testa o canal, você pode ver como ele seria exibido no canal. Além disso, quando houver limitações para esse tipo de canal que force a conversa a ser renderizada de forma diversa do que poderia, essas limitações são descritas na guia Conversas.
Atualizações do Canal sem Tempo de Inatividade
Você pode rotear novamente seu canal de uma habilidade ou de um assistente digital para outro sem causar tempo de inatividade do usuário.
Veja como isso é configurado:
- Para um canal que é roteado para um assistente digital:
- Crie uma nova versão do assistente digital.
- Na nova versão do assistente digital, faça as alterações necessárias, incluindo a adição de novas versões de habilidades existentes.
- Redirecione o canal para a nova versão do assistente digital.
- Para um canal que é roteado para uma habilidade individual, você faz o seguinte:
- Crie uma nova versão da habilidade, faça as atualizações desejadas e publique a habilidade.
- Roteie novamente o canal para a nova versão da habilidade.
Veja o que acontece depois que o canal é novamente roteado:
- Se o usuário não tiver uma sessão aberta, ele obterá o novo assistente digital ou a nova habilidade no próximo acesso ao canal.
- Se o usuário tiver uma sessão aberta no assistente digital ou na habilidade, mas não estiver no meio de um fluxo em uma habilidade, a sessão será atualizada no assistente digital ou na habilidade atualizada.
- Se o usuário estiver no meio de um fluxo em uma habilidade quando o canal for novamente roteado, o usuário continuará vendo a versão anterior da habilidade ou do assistente digital. Depois de finalizar o fluxo (que acontece quando a transição
return
é chamada no fluxo), a sessão será atualizada com o assistente digital ou a habilidade atualizada.
Cuidado:
Se você atualizar um assistente digital existente (em vez de criar uma nova versão do assistente digital e, em seguida, fizer o roteamento novamente para essa versão), o recurso de período de indisponibilidade zero não funcionará. Por exemplo, se uma nova versão de uma habilidade tiver sido adicionada ao assistente digital e um usuário estiver no meio de uma sessão com a versão antiga da habilidade, a sessão será interrompida e a habilidade deixará de funcionar.Formatação de Rich Text em Canais
Você pode usar tags HTML para formatar mensagens de habilidade, mesmo para canais que tenham marcação ou markdown específico do canal. Quando a mensagem é passada para o canal, as tags HTML que você inclui são substituídas pela marcação ou markdown apropriado para esse canal específico. Isso permite escrever mensagens em um só lugar para vários canais.
Se uma tag não tiver um equivalente direto em um canal, o equivalente mais próximo será usado. Por exemplo, se a mensagem tiver tags <h1>Title 1</h1>
e <h2>Title 2</h2>
, elas serão convertidas em *Title 1*
e *Title 2*
quando enviadas para um canal do Slack.
Se não houver um equivalente aproximado para a tag no canal, as tags serão simplesmente removidas da mensagem quando enviadas para o canal.
Estilo | Tags e Atributos HTML |
---|---|
ousado |
<strong> ; <b> |
itálico | <em> ; <i> |
cabeçalhos | <h1> ; <h2> ; <h3> |
listas não ordenadas (incluindo aninhamento) | <ul> ; <li> |
listas ordenadas (incluindo aninhamento) | <ol> ; <li> |
texto pré-formatado | <pre> |
bloquear cota | <blockquote> |
nova linha | <newline> |
hiperlink | <a href=""> Observação: Se seu link incluir um E comercial ( |
link de imagem | <img> |
tabela | <table> ; <th> ; <tr> ; <td> |
tamanho da fonte | font-size (por exemplo, <p style="font-size:large;">Large Font</p> )
|
cor da fonte | color (por exemplo, <p style="color:red;">Red Font</p> )
|
vídeo | <video controls="" src="link_to_video_source_file"> Observação: Essa tag só funcionará se você vincular diretamente ao arquivo de vídeo, como um |
Expiração da Sessão
Para cada canal que você configurar, use o campo Expiração da Sessão para definir o timeout para sessões de usuário inativas. Para a maioria dos tipos de canal, o valor padrão é um dia (1.440 minutos) Quando a sessão expirar, a conversa será encerrada e uma mensagem será enviada para notificar o usuário desse fato.
Além disso, qualquer variável definida no fluxo de caixas de diálogo de uma habilidade será destruída, a menos que a variável tenha sido declarada como uma variável com escopo do usuário. Consulte Variáveis com Escopo do Usuário em Fluxos de Caixas de Diálogo YAML.
Alterar o Prompt de Expiração da Sessão
Quando uma sessão expira, o usuário recebe uma mensagem que é definida na propriedade Prompt de Erro da Sessão Expirada para o assistente digital ou a habilidade para os quais o canal é roteado. Por padrão, esta mensagem é "Sua sessão expirou. Inicie novamente."
Para alterar essa mensagem para um assistente digital:
-
Clique em
para abrir o menu lateral, selecione Desenvolvimento > Assistentes Digitais e abra o assistente digital.
-
Na navegação esquerda do assistente digital, clique em
e selecione a guia Configurações.
- Role para baixo até a seção Outros Parâmetros da página e atualize a propriedade Prompt de Erro da Sessão Expirada.
Para alterar essa mensagem para uma habilidade standalone:
-
Clique em
para abrir o menu lateral, selecione Desenvolvimento > Habilidades e abra a habilidade.
-
Na navegação esquerda da habilidade, clique em
e selecione a guia Configuração.
- Atualize a propriedade Prompt de Erro da Sessão Expirada.
Redefinir Sessões do Canal do Usuário
Se necessário, você poderá interromper as conversas atuais em um canal do usuário clicando no botão Redefinir Sessões.
Cuidado:
Esse botão destina-se principalmente aos casos em que você está desenvolvendo a habilidade ou o assistente digital. Se você utilizá-lo para um canal que está em produção, interromperá todas as conversas do usuário que estão em andamento.Para acessar o botão Redefinir Sessões:
- Clique em
para abrir o menu lateral, selecione Desenvolvimento > Canais e selecione o canal do usuário.
Ativar ou Desativar Canais
De vez em quando, você pode precisar desativar um canal para executar manutenção ou atualizações na configuração e reativá-lo.
Para isso, você pode usar as seguintes opções:
- Canal Ativado
- Interação Ativada (para integrações do agente)
- Aplicativo Ativado (para aplicativos)
A desativação do canal do Sistema, que suporta o testador de habilidades, alerta os desenvolvedores que o canal está indisponível.
Para acessar essas opções:
- Clique em
para abrir o menu lateral, selecione Desenvolvimento > Canais e selecione o canal.
Extensões Específicas do Canal
Além dos elementos genéricos que podem ser usados em seus fluxos de caixa de diálogo para renderização em vários canais, você também pode aproveitar os recursos específicos de um tipo de canal. Você pode fazer isso por meio do elemento de metadados channelCustomProperties
do componente de Resposta Comum, que tem o seguinte formato:
...
channelCustomProperties:
- channel: "CHANNEL_NAME" // can be facebook, slack, cortana, twilio, androidsdk, iossdk, websdk, test
properties:
PROPERTY_NAME: "PROPERTY_VALUE"
...
Você pode aplicar channelCustomProperties
nos metadados do componente no nível de globalActions
, responseItems
e elementos de responseItems
, dependendo da propriedade em questão.
Veja um exemplo de propriedades personalizadas definidas nos níveis de item de resposta e cartão:
responseItems:
- type: "cards"
cardLayout: "vertical"
cards:
- title: "${pizzas.name}"
description: "${pizzas.description}"
imageUrl: "${pizzas.image}"
url: "${pizzas.moreInfo}"
iteratorVariable: "pizzas"
channelCustomProperties:
- channel: "facebook"
properties:
webview_height_ratio: "compact"
fallback_url: "https://www.example.com"
channelCustomProperties:
- channel: "facebook"
properties:
top_element_style: "large"
..
O elemento channelCustomProperties
obtém um array, em que cada entrada especifica as propriedades de um canal específico. Algumas propriedades personalizadas só se aplicam a um elemento de componente de Resposta Comum específico ou até mesmo a um tipo de item de resposta específico, como no exemplo acima, em que top_element_style
só se aplica a itens de resposta do tipo cards
.
Também é possível usar expressões do Freemarker para especificar o valor da propriedade personalizada de um canal.
Aqui está um exemplo em que um selecionador de data só é mostrado no Slack quando é solicitado o item de data de despesa ao resolver a despesa de entidade composta:
responseItems:
- type: "text"
text: "${system.entityToResolve.value.prompt}"
channelCustomProperties:
- channel: "slack"
properties:
showDatePicker: "${system.entityToResolve.value.name=='Date'}"
...
As propriedades disponíveis variam por canal. Consulte os seguintes tópicos para obter a lista de propriedades personalizadas disponíveis para cada canal:
Comparação das Capacidades dos Canais
Esta não é uma comparação completa de canais e dos recursos que eles suportam.
Capacidade | Facebook Messenger | Slack | Microsoft Teams | Cortana | Twilio | Web, iOS e Android |
---|---|---|---|---|---|---|
Texto | Sim | Sim | Sim | Sim | Sim | Sim |
Imagens | Sim | Sim | Sim | Sim para envio. Não para recebimento | Parcial | Sim |
Arquivos | Sim | Parcial para envio. Sim para recebimento | Sim | Sim para envio. Não para recebimento | Parcial | Sim |
Emojis | Sim | Parcial para envio. Sim para recebimento | Sim | Sim para envio. Não para recebimento | Parcial | Sim |
Localização | Sim, mas obsoleto | Não | Não | Não | Não | Sim |
Links | Sim | Sim | Sim | Sim | Sim | Sim |
Postbacks | Sim | Sim | Sim | Não | Parcial | Sim |
Solicitações de Localização | Sim | Não | Não | Não | Não | Sim |
Extensões | Não | Não | Não | Não | Não | Não |
Propriedades Personalizadas | Sim | Sim | Sim | Sim | Parcial | Sim |
Carrossel | Sim | Parcial | Sim | Sim | Parcial | Sim |
Lista | Sim | Sim | Sim | Sim | Parcial | Sim |
Tabelas e Formulários | Não | Sim | Sim (o envio automático não é suportado) | Não | Não | Sim |
Para renderizar um emoji do seu fluxo de caixas de diálogo, inicie com a representação Unicode, substitua
+
por 000
e prefixe o código com \
. Por exemplo, para U+1F600
, digite \U0001F600
em seu fluxo de caixas de diálogo. Consulte https://unicode.org/emoji/charts/full-emoji-list.html para obter uma lista dos códigos Unicode de cada emoji.
Comparação das Restrições de Mensagens do Canal
Esta é uma comparação de restrições em mensagens e botões de ação, por canal.
Restrições de Mensagem de Texto
Restrição de Mensagem de Texto | Facebook Messenger | Slack | Microsoft Teams e Cortana | Twilio | Web, iOS e Android |
---|---|---|---|---|---|
Tamanho máximo da mensagem de texto | 640 caracteres. Se o tamanho exceder 640, o texto será dividido em várias mensagens. | 3.000 caracteres. Se o tamanho exceder 3.000, o texto será dividido em várias mensagens. | Sem limite. | 1.600 caracteres. Se o tamanho exceder 1.600, o texto será dividido em várias mensagens. | Sem limite. |
Tamanho máximo do label de ação do texto | 20 caracteres | 30 caracteres | 1 linha (cerca de 50 caracteres) | N/A | 128 caracteres |
Tipos de ações de texto permitidos | Postback, Chamada, URL | Postback, URL | Postback, Chamada, URL | Postback, Chamada, URL. Esses tipos de ação são convertidos em texto. Para ações de postback, o label serve como palavra-chave que pode ser usada para acionar o postback. | Postback, URL, Solicitação de Localização, Chamada (se o dispositivo tiver recursos de chamada) e Compartilhamento (se a plataforma suportar) |
Número máximo de ações de texto | Se houver mais ações de texto, a mensagem será convertida em vários cartões horizontais, com o mesmo texto usado como título de cada cartão, e cada cartão contendo até 3 ações. | Sem limite. | Sem limite. | N/A | Se houver mais ações de texto, a mensagem será convertida em vários cartões horizontais, com o mesmo texto usado como título de cada cartão, e cada cartão contendo até 6 ações. |
Mensagens de Cartão Horizontal
Restrição de Mensagens de Cartão Horizontal | Facebook Messenger | Slack | Microsoft Teams e Cortana | Twilio | Web, iOS e Android |
---|---|---|---|---|---|
Suportado? | Sim | Não. O cartão é layout convertido em vertical. | Sim | Não, mas a funcionalidade equivalente mais próxima é obtida com a conversão de alguns tipos de ação em texto. | Sim |
Tamanho máximo do título | 80 caracteres | 3.000 caracteres | 2 linhas (cerca de 80 caracteres) | N/A | 30 caracteres |
Tamanho máximo da descrição | 80 caracteres | 3.000 caracteres | 25.000 caracteres | N/A | 128 caracteres |
Tamanho máximo do label de ação do cartão | 20 caracteres | 30 caracteres | 1 linha (cerca de 50 caracteres) | N/A | 25 caracteres |
Número máximo de cartões | 10 | N/A | 10 | N/A | 10 |
Número máximo de ações do cartão | 3. Se o número de ações do cartão passar de 3, o cartão será duplicado para renderizar o restante das ações. | N/A | 6. Se o número de ações do cartão passar de 6, o cartão será duplicado para renderizar o restante das ações. | N/A | 3. Se o número de ações do cartão passar de 3, o cartão será duplicado para renderizar o restante das ações. |
Número mínimo de ações do cartão | 0 | N/A | 0 | N/A | 1 |
Número máximo de ações da lista de cartões | 0 | N/A | 6 | N/A | -- |
Pelo menos uma descrição, imagem ou ação é necessária? | Sim | N/A | Não | N/A | Não |
Tipos de ações de cartão permitidos | Postback, Chamada, URL, Compartilhamento | Postback, URL | Postback, Chamada, URL | Postback, Chamada, URL. Esses tipos de ação são convertidos em texto. Para ações de postback, o label serve como palavra-chave que pode ser usada para acionar o postback. | Postback, URL |
Tipos de ações de lista de cartões permitidos | N/A | Postback, URL | Postback, Chamada, URL | Postback, Chamada, URL. Esses tipos de ação são convertidos em texto. Para ações de postback, o label serve como palavra-chave que pode ser usada para acionar o postback. | Postback, URL |
Mensagens de Cartão Vertical
Restrição de Mensagens de Cartão Vertical | Facebook Messenger | Slack | Microsoft Teams e Cortana | Twilio | Web, iOS e Android |
---|---|---|---|---|---|
Suportado? | Não | Sim | Sim | Não, mas a funcionalidade equivalente mais próxima é obtida com a conversão de alguns tipos de ação em texto. | Sim.
Observação
Para a versão 19.4.1, isso não é suportado. |
Tamanho máximo do título | N/A | 3.000 caracteres | 2 linhas (cerca de 80 caracteres) | N/A | 30 caracteres |
Tamanho máximo da descrição | N/A | 3.000 caracteres | 25.000 caracteres | N/A | 128 caracteres |
Tamanho máximo do label de ação do cartão | N/A | 30 caracteres | 1 linha (cerca de 50 caracteres) | N/A | 25 caracteres |
Número máximo de cartões | N/A | 100 | 10 | N/A | N/A |
Número máximo de ações do cartão | N/A | -- | 3 | N/A | N/A |
Número mínimo de ações do cartão | 0 | 0 | 0 | N/A | N/A |
Número máximo de ações da lista de cartões | 1 | -- | 6 | N/A | N/A |
Pelo menos uma descrição, imagem ou ação é necessária? | Sim | N/A | Não | N/A | Não |
Tipos de ações de cartão permitidos | Postback, Chamada, URL, Compartilhamento | Postback, URL | Postback, Chamada, URL | Postback, Chamada, URL. Esses tipos de ação são convertidos em texto. Para ações de postback, o label serve como palavra-chave que pode ser usada para acionar o postback. | N/A |
Tipos de ações de lista de cartões permitidos | Postback, Chamada, URL | Postback, URL | Postback, Chamada, URL | Postback, Chamada, URL. Esses tipos de ação são convertidos em texto. Para ações de postback, o label serve como palavra-chave que pode ser usada para acionar o postback. | N/A |
Mensagens de Anexo
Restrição de Mensagem de Anexo | Facebook Messenger | Slack | Microsoft Teams e Cortana | Twilio | Web, iOS e Android |
---|---|---|---|---|---|
Suportado? | Sim | Sim | Sim | Sim, se MMS estiver ativado | Sim |
Número máximo de ações de anexo | 0 | -- | -- | N/A | -- |
Tipos de ações permitidos | N/A | Postback, URL | Postback, Chamada, URL. | Postback, Chamada, URL. Esses tipos de ação são convertidos em texto. Para ações de postback, o label serve como palavra-chave que pode ser usada para acionar o postback. | Postback, URL |
Botões de Ação
Restrição de Botão de Ação | Facebook Messenger | Slack | Microsoft Teams e Cortana | Twilio | Web, iOS e Android |
---|---|---|---|---|---|
Suportado? | Sim | Sim | Sim | Não, mas a funcionalidade equivalente mais próxima é obtida com a conversão de alguns tipos de ação em texto. | Sim |
Tamanho máximo do label de ação global | 20 caracteres | 30 caracteres | 1 linha (cerca de 50 caracteres) | N/A | 128 caracteres |
Número máximo de ações globais | 11 | -- | 6 | N/A | -- |
Tipos de ações globais permitidos | Postback, Localização | Postback, URL | Postback, Chamada, URL | Postback, Chamada, URL. Esses tipos de ação são convertidos em texto. Para ações de postback, o label serve como palavra-chave que pode ser usada para acionar o postback. | Postback, Localização |