Pular para o conteúdo principal
Use client.typebots() para integrar fluxos TypeBot a uma instancia VZaps. Campos comuns em todas as chamadas:
CampoTipoObrigatórioDescrição
instanceIdstringSimID da instância.
instanceTokenstringSimToken da instância.

client.typebots().list(...)

Lista os TypeBots configurados na instância.
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().list(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
Retorno: lista/array de configuracoes TypeBot da instancia (IDs, gatilhos, prioridade, etc.).

client.typebots().create(...)

Cria uma configuração de TypeBot.
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().create(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
Retorno: configuracao criada, incluindo typebot_id para updates posteriores. Campos principais do payload:
CampoTipoObrigatórioDescrição
enabledbooleanSimAtiva ou desativa o TypeBot na avaliação de gatilhos.
descriptionstringSimNome para identificação.
typebotUrlstringSimURL base do TypeBot.
publicIdstringSimIdentificador público do flow.
triggerTypestringSimall, keyword, contains, starts_with, regex, advanced ou none.
triggerValuestringCondicionalTexto ou regex do gatilho.
triggerOperatorstringCondicionalUsado quando triggerType é advanced.
prioritynumberSimOrdem de avaliação. Maior valor primeiro.
expireInMinutesnumberSimExpira sessão após inatividade. 0 não expira.

client.typebots().update(...)

Atualiza um TypeBot existente. Informe typebotId retornado na criação ou listagem.
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().update(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
Retorno: configuracao atualizada ou { status: "ok" }.

client.typebots().delete(...)

Remove a configuração e as sessões associadas.
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().delete(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
Retorno: confirmacao de remocao ({ status: "ok" } ou mensagem equivalente).

client.typebots().startSession(...)

Inicia sessão manualmente com um contato. Por publicId:
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().startSession(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
Retorno: sessao iniciada (UUID da sessao, contato, status opened). Por typebotId:
await vzaps.typebots.startSession({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  typebotId: '550e8400-e29b-41d4-a716-446655440000',
  phone: '5511999999999',
  message: 'Quero atendimento',
});
CampoTipoObrigatórioDescrição
publicIdstringCondicionalIdentificador público do flow. Use publicId ou typebotId.
typebotIdstringCondicionalID interno do TypeBot.
phonestringSimTelefone do contato.
messagestringSimMensagem inicial enviada ao flow.
pushNamestringNãoNome exibido do contato.

client.typebots().listSessions(...)

Lista sessões ativas e encerradas.
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().listSessions(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
Retorno: lista de sessoes (opened, paused, closed) por contato/flow.

client.typebots().pauseSession(...)

Pausa uma sessão aberta. Use o UUID da sessão em session.
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().pauseSession(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
Retorno: sessao com status paused.

client.typebots().closeSession(...)

Encerra uma sessão manualmente. Por UUID da sessão:
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().closeSession(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Exemplo: tipagem estrita com DTOs publicados quando disponivel
Retorno: sessao encerrada (closed) ou confirmacao por telefone. Por telefone do contato (encerra todas as sessões ativas desse número):
await vzaps.typebots.closeSession({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  session: '5511999999999',
});