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
  • Configure o usuário do Oracle B2C Service ou do Oracle Fusion Service. A habilidade se comunica com o serviço por meio desse usuário. Criar um Canal de Integração do Agente fornece os detalhes de configuração do serviço e dos componentes de agentes no fluxo de caixas de diálogo.

  • Ative ou desative a integração do agente.

DA as Agent
  • Integre um assistente digital com o Oracle B2C Service ou o Oracle Fusion Service, em que o assistente digital atua como agente automatizado incorporado na instância de serviço.

Aplicativos
  • Configure o canal de aplicativo por meio do qual um aplicativo externo envia notificações a uma habilidade para que ele possa acionar uma conversa. Implementando Conversas Iniciadas pelo Aplicativo descreve o processo de configuração da habilidade para responder às notificações.

  • Ative ou desative no aplicativo o envio dessa notificação (e assim evite a conversa iniciada pela habilidade).

Sistema
  • Ative ou desative o chat no Testador de Habilidades para todos os desenvolvedores de habilidades.

  • Redefina as sessões de chat de todos os desenvolvedores de habilidade.

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.


Veja a seguir a descrição do roteamento - menu.png
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

  1. Clique em ícone para abrir o menu lateral para abrir o menu lateral, selecione Desenvolvimento > Canais > Usuários.

  2. Selecione a guia Usuários e selecione o canal.
  3. No canal, ao lado do campo Rotear para, selecione ícone da lista drop-down Rotear para... 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.

  1. Abra o assistente digital ou a habilidade que você deseja testar.

  2. Na parte inferior da navegação esquerda do assistente digital ou da habilidade, clique em o ícone do testador.

  3. Na lista drop-down Canal, selecione o canal no qual você planeja implantar o assistente digital ou a habilidade.

  4. 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:
    1. Crie uma nova versão do assistente digital.
    2. 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.
    3. Redirecione o canal para a nova versão do assistente digital.
  • Para um canal que é roteado para uma habilidade individual, você faz o seguinte:
    1. Crie uma nova versão da habilidade, faça as atualizações desejadas e publique a habilidade.
    2. 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 (&), certifique-se de codificá-lo usando &amp; para garantir que as tags sejam analisadas corretamente.

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 .mp4. Ele não funciona para links YouTube.

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:

  1. Clique em ícone para abrir o menu lateral para abrir o menu lateral, selecione Desenvolvimento > Assistentes Digitais e abra o assistente digital.

  2. Na navegação esquerda do assistente digital, clique em ícone de Definições e selecione a guia Configurações.

  3. 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:

  1. Clique em ícone para abrir o menu lateral para abrir o menu lateral, selecione Desenvolvimento > Habilidades e abra a habilidade.

  2. Na navegação esquerda da habilidade, clique em ícone de Definições e selecione a guia Configuração.

  3. 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 ícone para abrir o menu lateral 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 ícone para abrir o menu lateral 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
Observação

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