Functions

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

Visite nossa área de configuração das functions para mais detalhes.

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.

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

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.

Last updated