Etapa de requisição HTTP em Chat Flows
Consulte um sistema externo via HTTPS a partir de um fluxo e use a resposta nas etapas seguintes. De onde a requisição é feita, o que ela pode chamar e como mapear a resposta.
Um fluxo do Chat Flows pode consultar um sistema externo via HTTPS e usar a resposta na conversa: buscar um pedido, verificar um saldo, obter uma data de entrega. A etapa se chama HTTP request (grupo da paleta Integrate) no editor do Chat Flows do aplicativo WASync no Bitrix24.
O que a etapa faz
- Monta a requisição a partir das configurações da etapa: método (GET ou POST), URL, cabeçalhos
e, no caso de POST, um corpo. As
{{VARIABLES}}das etapas anteriores e do lead ou negócio são substituídas: na URL elas são codificadas como URL, e em um corpo JSON passam por escape de JSON. - Executa a requisição e aguarda a resposta por até 10 segundos.
- Mapeia a resposta JSON para variáveis do fluxo com o response mapping: um caminho
JSON (
data.order.status,items[0].id) à esquerda e um nome de variável (ESTADO) à direita. As etapas seguintes usam essas variáveis como qualquer resposta:{{ESTADO}}em uma mensagem, uma condição em um Branch, um valor em Fill in a field.
Toda chamada também define três variáveis:
| Variável | Valor |
|---|---|
HTTP_STATUS | O código de status HTTP com que o sistema respondeu (200, 404, …); vazio se nada respondeu. |
HTTP_OK | true para uma resposta 2xx; caso contrário, false. |
HTTP_ERROR | Vazio em caso de sucesso; caso contrário, um código curto: http_404, timeout, blocked_url, upstream_unreachable, budget_exceeded, breaker_open. |
Duas conexões de saída
O nó tem uma conexão normal (sucesso) e uma conexão vermelha de erro. A conexão de erro
é seguida quando a chamada excede o tempo limite, a URL é recusada, o sistema responde 4xx ou 5xx
ou a rede falha. Se a conexão de erro não estiver ligada, o fluxo continua pela
conexão normal com HTTP_OK = false, de modo que um Branch em HTTP_OK ainda pode reagir.
De onde a requisição é feita
A requisição não é feita a partir dos servidores da WASync. Ela é executada por um
Cloudflare Worker dedicado (egress.wasync.app), sem acesso aos sistemas internos da WASync.
Duas consequências:
- A chamada chega ao seu sistema a partir das faixas de IP da Cloudflare, não de um endereço fixo da WASync. Se a sua API aceita apenas IPs listados, use uma API key ou uma assinatura; não existe um IP da WASync para incluir na lista de permissões.
- Uma API lenta ou com falha nunca atrasa nem duplica mensagens do WhatsApp: a chamada roda fora do pipeline de mensagens, e o fluxo espera na etapa até a resposta ou o tempo limite.
O que a etapa pode chamar
| Regra | Valor |
|---|---|
| Esquema e porta | Somente https na porta 443 |
| Host | Um nome de domínio público. Endereços IP, localhost, .local, .internal, nomes de um só rótulo e os domínios da própria WASync são recusados. |
| Métodos | GET, POST |
| Cabeçalhos | Até 16. Cabeçalhos de transporte e de proxy (Host, Transfer-Encoding, Proxy-*, Cookie, X-Forwarded-*, …) são recusados; Authorization, X-Api-Key, Content-Type, Accept e similares são permitidos. |
| Corpo da requisição | Até 64 KB |
| Resposta | Lida até 256 KB; corpos maiores são cortados, e truncated é informado em Test. |
| Tempo limite | 10 segundos |
| Redirecionamentos | No máximo 2, cada um verificado pelas mesmas regras |
| Orçamento | 600 chamadas por workspace por hora. Um host que falha 5 vezes seguidas fica pausado por 5 minutos (nesse intervalo, a conexão de erro é seguida). |
| Licença | A licença do número precisa estar ativa; a etapa não roda em período de teste. |
O user agent é sempre WASync-Flows/1.0 (+https://wasync.app).
Segredos
Marque um cabeçalho como secret (uma API key, um bearer token) e a WASync o armazena criptografado. Ele nunca é exibido novamente no editor, nunca é exportado com o fluxo e nunca é gravado em logs nem na trilha de auditoria. Para alterá-lo, digite um novo valor; para mantê-lo, deixe o campo vazio ao salvar.
Teste antes de salvar
Test request no painel da etapa executa a chamada real com valores de exemplo para as variáveis e mostra o status, o tempo gasto, as variáveis mapeadas e o corpo. Use as sample response guarda esse corpo na etapa: o simulador o usa em vez de chamar o sistema, e assim o fluxo inteiro pode ser visualizado offline.
Exemplo: status de um pedido
- Question: "¿Cuál es tu número de pedido?" (salvo como
PEDIDO) - HTTP request:
GET https://erp.example.com/api/orders/{{PEDIDO}}, cabeçalhoX-Api-Key(secret), mapeamentodata.status→ESTADO,data.eta→ENTREGA - Branch em
HTTP_OK:true→ MessageTu pedido está {{ESTADO}}, llega el {{ENTREGA}}.·false→ MessageNo pude consultar tu pedido ahora, un asesor te escribe en breve.→ Hand to a person
Fora desta versão
PUT, PATCH e DELETE; OAuth com o sistema externo; novas tentativas automáticas; download de arquivos; espera por um retorno (callback) do sistema. Para esses casos, use a receita alternativa: o fluxo grava um campo do CRM, uma regra de automação do Bitrix24 avisa o seu sistema, o seu sistema grava o resultado de volta pela REST API do Bitrix24 e a regra WASync: Send WhatsApp Message o envia.
Toda chamada é registrada na trilha de auditoria do workspace (host e caminho, status, duração e quais variáveis foram definidas; nunca o corpo nem os cabeçalhos).
Traga um número de outro provedor
Mova para o WASync, com o assistente do aplicativo, um número da WhatsApp Business API que você já usa em outro provedor, e mantenha sua reputação na Meta.
Leads de conversas do WhatsApp
Como o WASync transforma uma nova conversa do WhatsApp em um lead do Bitrix24, para quem ele vai, o que acontece quando o número já está no seu CRM e a janela de recontato que mantém no mesmo registro o cliente que escreve de novo depois de um lead encerrado.