Visao geral
- Cada instancia pode ter
NTypeBots configurados. - Cada configuracao tem uma URL base (ex.:
https://typebot.io), opublic_iddo flow e uma regra de gatilho. - Quando uma mensagem chega ao WhatsApp da instancia, a API avalia os TypeBots ativos em ordem de
prioritydecrescente. O primeiro cujo gatilho casar com o texto recebido inicia a sessao. - Sessoes ativas sao identificadas pelo
remote_jiddo contato. Mensagens subsequentes do mesmo contato continuam a sessao em vez de criar uma nova. - Mensagens de audio podem ser transcritas para texto quando o recurso esta habilitado na infraestrutura VZaps. Depois da transcricao, o texto segue as mesmas regras de sessao e gatilho das mensagens digitadas.
- Voce pode encerrar sessoes pelo painel ou pelo endpoint dedicado.
Campos da configuracao
| Campo | Descricao |
|---|---|
enabled | Quando false, o TypeBot e ignorado pela avaliacao de gatilhos. |
description | Nome para identificacao no painel. |
typebot_url | URL base do TypeBot (ex.: https://typebot.io). |
public_id | Identificador publico do flow. |
trigger_type | all, keyword, contains, starts_with, regex, advanced ou none (manual via API). |
trigger_operator | Apenas para trigger_type = advanced: equals, contains, starts_with ou regex. |
trigger_value | Texto/regex usado no gatilho (obrigatorio para tudo, exceto all e none). |
priority | Ordem de avaliacao. O maior valor e avaliado primeiro. |
expire_in_minutes | Encerra a sessao apos este tempo sem mensagens. 0 = nao expira automaticamente. |
keyword_finish | Palavra exata enviada pelo contato para encerrar a sessao. |
default_delay_ms | Delay aplicado entre cada mensagem enviada ao WhatsApp. |
unknown_message | Mensagem enviada quando o TypeBot nao consegue interpretar a entrada. |
transcribe_audio | Quando true, audios recebidos podem ser transcritos e tratados como texto pelo TypeBot. |
listen_from_me | Quando true, mensagens enviadas pela propria instancia tambem alimentam o TypeBot. |
stop_bot_from_me | Quando true, uma mensagem manual da instancia pausa o bot na conversa atual. |
keep_open | Controla o que acontece com a sessao ao encerrar (expiracao, keyword_finish ou fim do flow): true preserva a row com status=closed para consulta historica; false apaga a sessao por completo. A expiracao por tempo ocorre em ambos os casos. |
debounce_ms | Janela em ms para agrupar mensagens consecutivas do mesmo contato antes de enviar ao TypeBot. |
Endpoints
GET /instances/{id}/typebots- lista os TypeBots configurados.POST /instances/{id}/typebots- cria um TypeBot.PATCH /instances/{id}/typebots/{typebotId}- atualiza configuracoes.DELETE /instances/{id}/typebots/{typebotId}- remove a configuracao e suas sessoes.POST /instances/{id}/typebots/sessions/start- inicia manualmente uma sessao do TypeBot para um contato usando opublic_iddo TypeBot, umpush_nameopcional e uma mensagem inicial.GET /instances/{id}/typebots/sessions- lista sessoes ativas/encerradas.POST /instances/{id}/typebots/sessions/{session}/pause- pausa uma sessao aberta manualmente. O path paramsessiondeve ser o UUID da sessao.POST /instances/{id}/typebots/sessions/{session}/close- encerra uma sessao manualmente. O path paramsessionaceita tanto o UUID da sessao quanto o numero de telefone do contato (so os digitos, ex.:5532988776655); nesse caso, todas as sessoes ativas desse contato na instancia sao encerradas e a resposta trazclosedcom a quantidade.
Iniciar sessao manualmente
Exemplo: criar um TypeBot por palavra-chave
Encerrar sessao por telefone
Quando um atendimento humano precisa assumir imediatamente e voce so tem o numero do contato em maos (sem o UUID da sessao), passe o telefone direto no path. A API localiza e encerra todas as sessoes ativas desse contato na instancia, independentemente de qual TypeBot as criou.opened ou paused) para esse numero, a API devolve 404.
Boas praticas
- Use prioridades distintas para nao depender de ordem de criacao.
regexpermite gatilhos sofisticados; teste antes em ambiente isolado.debounce_msevita disparar o bot multiplas vezes quando o contato envia varias mensagens em sequencia.- Para conversas que devem permanecer com o atendente humano, ative
stop_bot_from_me. keep_open=trueso preserva o historico das sessoes encerradas; ele nao desativa a expiracao porexpire_in_minutes.

