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

typebots.list(instanceId, options?)

Lista os TypeBots configurados na instância.
const typebots = await vzaps.typebots.list('VZ...', {
  instanceToken: 'instance-token',
});

console.dir(typebots, { depth: null });
Retorno: lista/array de configuracoes TypeBot da instancia (IDs, gatilhos, prioridade, etc.).

typebots.create(request)

Cria uma configuração de TypeBot.
const created = await vzaps.typebots.create({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  enabled: true,
  description: 'Boas-vindas',
  typebotUrl: 'https://typebot.io',
  publicId: 'meu-flow-publico',
  triggerType: 'keyword',
  triggerValue: 'ola',
  priority: 10,
  expireInMinutes: 30,
  keywordFinish: 'sair',
  defaultDelayMs: 800,
  unknownMessage: 'Desculpe, não entendi. Pode reformular?',
  transcribeAudio: true,
  listenFromMe: false,
  stopBotFromMe: true,
  keepOpen: false,
  debounceMs: 1500,
  ignoreGroups: false,
});

console.dir(created, { depth: null });
Retorno: configuracao criada, incluindo typebotId 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.

typebots.update(request)

Atualiza um TypeBot existente. Informe typebotId retornado na criação ou listagem.
await vzaps.typebots.update({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  typebotId: '550e8400-e29b-41d4-a716-446655440000',
  enabled: true,
  description: 'Boas-vindas atualizado',
  triggerType: 'contains',
  triggerValue: 'ajuda',
  priority: 20,
  expireInMinutes: 60,
});
Retorno: configuracao atualizada ou { status: "ok" }.

typebots.delete(request)

Remove a configuração e as sessões associadas.
await vzaps.typebots.delete({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  typebotId: '550e8400-e29b-41d4-a716-446655440000',
});
Retorno: confirmacao de remocao ({ status: "ok" } ou mensagem equivalente).

typebots.startSession(request)

Inicia sessão manualmente com um contato. Por publicId:
await vzaps.typebots.startSession({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  publicId: 'support',
  phone: '5511999999999',
  pushName: 'Cliente',
  message: 'Quero atendimento',
});
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.

typebots.listSessions(instanceId, options?)

Lista sessões ativas e encerradas.
const sessions = await vzaps.typebots.listSessions('VZ...', {
  instanceToken: 'instance-token',
});

console.dir(sessions, { depth: null });
Retorno: lista de sessoes (opened, paused, closed) por contato/flow.

typebots.pauseSession(request)

Pausa uma sessão aberta. Use o UUID da sessão em session.
await vzaps.typebots.pauseSession({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  session: '550e8400-e29b-41d4-a716-446655440001',
});
Retorno: sessao com status paused.

typebots.closeSession(request)

Encerra uma sessão manualmente. Por UUID da sessão:
await vzaps.typebots.closeSession({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  session: '550e8400-e29b-41d4-a716-446655440001',
});
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',
});