LogoLogo
Zenvia Docs
  • Zenvia NLU
  • Boas Práticas
    • Eventos
      • Dicas para criar eventos
      • Eventos Personalizados
        • menu_principal
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • Autosservico
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de eventos
        • sucess_no_friccion
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • horario_atendimento
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de eventos
        • transbordo
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de eventos
        • pesquisa_satisfacao
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de eventos
        • conseguiu_ajudar
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de eventos
        • nivel_confianca
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de eventos
        • chamada_api
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • falha_api
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • primeiro_acesso
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • encerramento
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • estouro_tentativas_else
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • intents
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
        • rechamada
          • Dashboard
          • Fluxograma
          • Builder
          • Lista de Eventos
    • Gestão de NLU
      • Dicas de gestão de NLU
    • Personalizar widget
  • Monitor
    • Dashboard
      • Métricas e indicadores
      • Gráficos
    • Atendimentos
    • Eventos
    • Volumetria
    • Issues
    • Monitoramento de APIs
    • Métricas de avaliação
  • Build
    • Assistentes
      • Edição do Assistente
      • Builder
        • Configurações do nó
        • Componentes
          • Output
            • Texto
            • Texto randômico
            • Texto sequencial
            • Base de conhecimento
            • LivePerson - Conteúdo Estruturado
            • Arquivo
          • Input
            • Pergunta aberta
            • Autocomplete
            • Data
            • Feedback NPS
            • Feedback Custom
            • Lista inline
            • Lista modal
            • Quick Replies
            • Upload de arquivo
            • Upload de arquivo LP
            • Carrossel de Opções
            • Desambiguação
          • Fluxo de Inatividade
          • Variáveis
          • Ações
            • HTTP Request
            • Satisfaction
            • Validar celular
            • Validar CEP
            • Validar CPF
            • Validar CPF/CNPJ
            • Validar CNPJ
            • Validar nome completo
            • Validar e-mail
            • Procurar atendimento
            • Transferência entre skills Liveperson
            • Setar contexto LivePerson
            • Encerrar Atendimento LivePerson
            • Encerrar chat
            • Socket Event
            • Facebook Profile
            • Facebook Transbordo
            • Workplace Profile
            • Iniciar LiveChat
            • Functions
            • Setar NLU
            • Transferência entre assistentes
            • Contact Return
            • Intent Feedback
          • Eventos
    • Functions
    • Atributos
  • CONNECT
    • APIs
      • Agent connector API
      • Outbound
        • Outbound WhatsApp
        • Outbound Zenvia
        • Outbound Wavy
        • Outbound LivePerson
        • Outbound Infobip
        • Outbound RCS
      • Eventos
      • Atendimentos
      • LGPD
    • Canais
      • Capabilities
      • Instagram
      • Google Business Messages
      • Bot API
      • Facebook
        • Integração Messenger via Zenvia NLU
        • Integração Messenger via Liveperson
      • Google RCS
      • Microsoft Teams
      • Whatsapp
        • Zenvia
        • Blip
        • Wavy
        • Infobip
        • Liveperson
      • Widget
      • Workplace
    • Telegram
    • Contingência
    • LiveChat
      • Transbordo ALTU Connector API
        • Transbordo Tech4Humans
      • Transbordo LivePerson
      • Transbordo Zendesk Ticket
      • Transbordo Zendesk Chat
      • Transbordo Salesforce
  • TRAIN
    • Primeiros passos
    • Visão Geral
    • Configuração do NLU
    • Avaliação de Mensagens
    • Análise e ajustes
  • Mais
    • Release
      • Controle de Versão
      • 27/10/2021
      • 06/10/2021
      • 22/09/2021
      • 09/09/2021
      • 11/08/2021
      • 28/07/2021
      • 14/07/2021
      • 30/06/2021
      • 16/06/2021
      • 01/06/2021
      • 18/05/2021
      • 04/05/2021
      • 20/04/2021
      • 06/04/2021
      • 23/03/2021
      • 09/03/2021
      • 23/02/2021
      • 09/02/2021
      • 26/01/2021
      • 12/01/2021
      • 22/12/2020
      • 08/12/2020
      • 24/11/2020
      • 10/11/2020
      • 27/10/2020
      • 13/10/2020
      • 29/09/2020
      • 15/09/2020
      • 01/09/2020
      • 18/08/2020
      • 03/08/2020
      • 21/07/2020
      • 08/07/2020
      • 30/06/2020
      • 04/06/2020
      • 22/05/2020
      • 14/05/2020
      • 29/04/2020
      • 01/04/2020
      • 24/03/2020
      • 16/03/2020
    • Glossário
Powered by GitBook
On this page
  • Async function
  • Como funciona
  • Funções assíncronas
  • Mais informações

Was this helpful?

  1. Build
  2. Assistentes
  3. Builder
  4. Componentes
  5. Ações

Functions

PreviousIniciar LiveChatNextSetar NLU

Last updated 2 years ago

Was this helpful?

Nessa sessão você pode desenvolver ações personalizadas em javascript.

Para aplicá-la no seu assistente vá em > configuração do nó > componente de ações ƒ > acesse o helper ? > busque por ação personalizada.

Mas antes, você precisa:

  • Desenvolver a ação

  • Testar

  • Salvar

  • Publicar

Async function

O recurso Async funciona como uma função assíncrona, isto é, uma comunicação que não ocorre de forma simultânea.

Quando essa função é chamada, ela evita pausas no sistema simplificando o uso das Functions.

Como funciona

De maneira geral, os dados externos recebidos através de um endpoint de uma API, por exemplo, levam um tempo para que chegue ao sistema.

Ainda que seja necessário aguardar a resposta da API, há formas de não bloquear o funcionamento do programa. Nesse sentido, a comunicação assíncrona entra como uma opção em "segundo plano", onde o sistema pode continuar rodando enquanto executa uma tarefa.

Funções assíncronas

As funções assíncronas podem ser acionadas pelas palavras-chave async e await. Ambas permitem que o comportamento assíncrono, baseado em promessas, seja escrito sem necessidade de configurar códigos de promessas extensamente.

Async

Para começar, inicie a escrita do código considerando a palavra-chave async.

O Async é definido no builder, como mostra o exemplo abaixo. Ao ser inserido, o sistema já entenderá que ele deve retornar uma ação ou promessa.

O tempo máximo de execução de uma functions async será de 30 segundos.

Return

A seguir, você deverá inserir o return, que é a promessa esperada pela async acionada. O retorno é caracterizado por dois valores:

  • True: significa que o fluxo continuará e o result_variable é preenchido com o status Pending, indicando que a requisição está em andamento. Ao final da chamada da API, será enviada uma nova mensagem atualizando o resultado como Done, ou seja, concluída com sucesso.

  • False: significa que a função não possui um retorno explícito e que a conversa iniciada ficará aguardando um retorno da function, sem seguir o fluxo configurado.

WaitTime

O objetivo desta palavra é aguardar a resolução de uma função assíncrona. Ela deve ser utilizada quando há a necessidade de esperar por alguma resposta que possa demorar mais do que o tempo normal da execução do código.

Para utilizá-la, é preciso definir a função com async e utilizar o WaitTime na função, como mostra o exemplo abaixo:

Os valores a serem utilizados devem ser em segundos e estar entre 0 e 900, o que equivale a 15 minutos.

Mais informações

  • Quando o builder é executado em modo de desenvolvimento, será usada a versão de desenvolvimento da function.

  • Quando o builder é executado em homologação, será usada a versão de homologação da function. Caso não haja uma versão de homologação, será usada a versão de desenvolvimento.

  • Quando o builder é executado em produção, será usada a versão publicada da function. Caso a function não tenha uma versão publicada, a action vai retornar como response um JSON como esse:

{
  code: 404,
  message: "Function not found or published"
}

A execução de functions no Builder gera entradas de logs que podem ser vistas na área específica para isto da function.

Visite nossa área de para mais detalhes.

Um valor não especificado será classificado automaticamente como false e seguirá o mesmo padrão do http_request. Clique para ler mais.

configuração das functions
aqui