Eventos e Transições

Em fluxos de caixas de diálogo desenvolvidos com o Designer de Fluxo Visual, os eventos são usados para rotear uma conversa para fluxos ou estados dentro de fluxos.

No nível de habilidade, os eventos são divididos nos seguintes tipos:

  • Intenção. Esses eventos correspondem às intenções da habilidade. Tal evento ocorre quando a entrada do usuário é resolvida para uma determinada intenção.
  • Incorporado. Esses são eventos padrão para casos de uso típicos, como intenção não resolvida, intenção de resposta e erro de caixa de diálogo.
  • Ação do Fluxo Final. Estes são eventos que você mesmo define e que podem ser acionados por ações em estados de fluxo final (ambos estados que usam o componente Fluxo Final e estados que implicitamente terminam o fluxo).

No nível de fluxo, os eventos são divididos nos seguintes tipos:

  • Transições do Sistema. Estes são eventos internos para casos de uso típicos, como entrada de usuário não resolvida, autorização necessária e erros.
  • Transições Personalizadas. Esses são eventos que você pode especificar e que geralmente são atribuídos a ações de transição de componentes. Quando o fluxo atinge essa transição, o evento correspondente é acionado e o estado mapeado para o evento é chamado.

Eventos Incorporados para o Fluxo Principal

Evento Quando for demitido Como Usar
Iniciar Habilidade Quando uma habilidade começa pela primeira vez. Mapeie para um fluxo personalizado para fazer coisas como inicializar sistemas de backend ou exibir um menu de Ajuda.
Erro de Diálogo Quando um erro é gerado por um componente durante uma conversa. Este evento também pode ser acionado quando há um erro em outro fluxo e a transição do sistema de Erro de Caixa de Diálogo desse fluxo não está mapeada. Mapeie para um fluxo personalizado de tratamento de erros. Se esse evento for acionado, mas não houver mapeamento, o fluxo atual será encerrado e a habilidade gerará a mensagem de erro padrão ("Oops! I’m encountering a spot of trouble)".
Intenção da Resposta Quando uma intenção de resposta é resolvida. Mapeie para um fluxo personalizado dedicado às intenções de resposta.
Intenção Não Resolvida Quando a intenção do usuário não for resolvida. Mapear para um fluxo de ajuda personalizado.
Ajuda do Assistente Digital Quando o usuário expressa uma solicitação de ajuda. Isso só se aplica quando o usuário acessou a habilidade por meio de um assistente digital e a habilidade está no contexto atual do assistente digital. Mapear para um fluxo de ajuda personalizado.
Bem-vindo ao Digital Assistant Quando o usuário inicia o contato com o assistente digital. Isso só se aplica quando o usuário usou a chamada explícita para acessar a habilidade por meio de um assistente digital, mas não expressou uma intenção. Mapeie para um fluxo de boas-vindas ou ajuda personalizado.
Observação

Ao especificar fluxos para os eventos de Ajuda e Boas-vindas do Digital Assistant, você não está substituindo completamente o comportamento das intenções de ajuda do assistente digital e do sistema unresolvedIntent. Se quiser alterar universalmente esse comportamento, faça isso nas definições do assistente digital. Consulte Especificar Estados para Intenções do Sistema de um Assistente Digital.

Transições do Sistema para Fluxos

Para cada fluxo, você pode aproveitar as transições do sistema para definir onde você lida com eventos, como erros de caixa de diálogo e mensagens fora de ordem.

Para definir o estado usado para tratar um determinado evento:

  1. Na guia Configuração do fluxo, role para baixo e expanda a seção Mapeamentos de Eventos.

    Você verá a subseção System Transitions.

  2. Para o evento que deseja mapear, selecione o estado para o qual deseja mapeá-lo.

    Esse estado normalmente seria um componente Chamar Fluxo que aponta para o fluxo do utilitário para tratar o evento. Consulte Chamar um Fluxo de Outro Fluxo.

Estes são os eventos que você pode mapear como transições do sistema em um fluxo.

Evento Quando for demitido Como Usar
Autorizar Usuário Quando um estado é atingido, o estado Exige Autorização é resolvido como true. Mapear para um componente Chamar Fluxo que chama um fluxo de autorização.
Erro de Diálogo Ocorreu um erro inesperado na conversa.

Mapear para um componente Chamar Fluxo que chama um fluxo para tratamento de erros.

Se esse evento não for mapeado e ocorrer um erro no fluxo, o fluxo de tratamento de erros que é mapeado para o evento incorporado Erro de Caixa de Diálogo para o fluxo principal será chamado. Quando o Erro de Caixa de Diálogo não é mapeado para o fluxo nem para o fluxo principal, a habilidade gera a mensagem de erro padrão (Oops! I’m encountering a spot of trouble) quando ocorre um erro.

Mensagem fora de ordem O usuário seleciona uma opção de uma mensagem anterior na conversa em vez da mensagem atual. Mapeie para um componente Chamar Fluxo que chama um fluxo que você forneceu para tratar mensagens fora da ordem.
Entrada de Usuário Inesperada O usuário fornece a entrada textual em vez de selecionar uma das opções fornecidas na mensagem. Mapeie para um componente Chamar Fluxo que chama um fluxo que você forneceu para tratar uma entrada inesperada.

Listener e Acionamento de Eventos

Quando você tiver fluxos aninhados (fluxos com subfluxos):

  • O fluxo atual atende e aciona eventos de ação de fluxo interno e final.
  • O fluxo de chamada só escuta eventos de ação de fluxo final que são acionados pelo fluxo atual. Em seguida, quando o subfluxo que acionou um evento de ação de fluxo final tiver terminado, o fluxo pai atuará no evento acionado.

    O principal exemplo disso é quando a propriedade Ação de um subfluxo especifica um evento de ação de fluxo final.