Webhooks
Webhooks permitem que o assistente interaja com sistemas externos e os integre ao seu workflow. Com webhooks, o assistente pode recuperar informações atualizadas (por exemplo, dados do cliente, produtos disponíveis ou horários livres) ou enviar/submeter informações coletadas (por exemplo, após um usuário concluir uma transação/reserva).
Como configurar webhooks
Webhooks podem ser configurados diretamente dentro de uma função/ação ativando o switch webhook e fornecendo a URL do webhook conforme mostrado abaixo:

O bot de voz enviará então os parâmetros extraídos como corpo da requisição em um POST.
Pós‑processamento
Se o webhook for usado para recuperar dados, às vezes é necessário transformar esses dados, por exemplo filtrar itens ou formatar valores.
Se for necessário pós‑processamento, o campo Post hook JS function call pode ser usado para especificar o nome de uma função que deve ser chamada logo após o webhook recuperar os dados.
O parâmetro da função será o corpo da resposta do webhook: um objeto JSON aninhado se o corpo for JSON válido; caso contrário, uma string (se o corpo não puder ser analisado como JSON).
Execução programática de webhooks
Webhooks também podem ser executados programaticamente a partir de qualquer trecho de código JavaScript a qualquer momento da seguinte forma:
function myFunction(params) {
response = webhook("https://mydomain.com/apiEndpoint", {"sample": "data"});
return response;
}Exemplos
Envie um corpo JSON com um cabeçalho de requisição personalizado:
webhook("https://httpbingo.org/json", {"test": "hello world"}, {
headers: {"Token": "xyz"}
});Retorne a resposta completa, incluindo os cabeçalhos de resposta, definindo raw como true:
const raw = webhook("https://httpbingo.org/json", {"test": "hello world"}, {
headers: {"Token": "xyz"},
raw: true
});
log(raw);Envie dados de formulário codificados na URL fornecendo um corpo do tipo string e definindo o tipo de conteúdo:
webhook("https://httpbingo.org/post", "test=we343", {
headers: {"Content-Type": "application/x-www-form-urlencoded"}
});Chame endpoints que retornam um status de erro HTTP, como 500 ou 404:
webhook("https://httpbingo.org/status/500");
webhook("https://httpbingo.org/status/404");Defina um tempo limite da requisição em segundos:
webhook("http://127.0.0.1:9999/timeout", {timeout: 3});Parâmetros
| Parâmetro | Descrição |
|---|---|
| url | A URL incluindo todos os parâmetros GET que devem ser chamados |
| body | O corpo/um objeto JavaScript que será enviado como corpo nas requisições POST/PUT |
| options (Opcional) | method: "get"|"put"|"post"|"delete"|"head" |
| options (Opcional) | headers: um objeto contendo cabeçalhos HTTP adicionais |
| options (Opcional) | ttlCache: 0 (se a requisição deve ser cacheada) |
| options (Opcional) | raw: true|false - se os cabeçalhos de resposta também devem ser retornados |
| options (Opcional) | timeout: o tempo limite da requisição em segundos |