Skip to main content
Use client.typebots() to integrate TypeBot flows with a VZaps instance. Common fields on every call:
FieldTypeRequiredDescription
instanceIdstringYesInstance ID.
instanceTokenstringYesInstance token.

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

Lists TypeBots configured on the instance.
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().list(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
Return: array of TypeBot configs for the instance (IDs, triggers, priority, etc.).

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

Creates a TypeBot configuration.
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().create(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
Return: created config, including typebot_id for later updates. Main payload fields:
FieldTypeRequiredDescription
enabledbooleanYesEnables or disables trigger evaluation.
descriptionstringYesDisplay name for the configuration.
typebotUrlstringYesTypeBot base URL.
publicIdstringYesPublic flow identifier.
triggerTypestringYesall, keyword, contains, starts_with, regex, advanced, or none.
triggerValuestringConditionalTrigger text or regex.
triggerOperatorstringConditionalUsed when triggerType is advanced.
prioritynumberYesEvaluation order. Higher value first.
expireInMinutesnumberYesSession expiry after inactivity. 0 means no expiry.

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

Updates an existing TypeBot. Pass typebotId from create or list.
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().update(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
Return: updated config or { status: "ok" }.

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

Removes the configuration and its sessions.
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().delete(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
Return: deletion confirmation ({ status: "ok" } or equivalent message).

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

Starts a session manually with a contact. By publicId:
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().startSession(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
Return: started session (session UUID, contact, opened status). By typebotId:
await vzaps.typebots.startSession({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  typebotId: '550e8400-e29b-41d4-a716-446655440000',
  phone: '5511999999999',
  message: 'I need help',
});
FieldTypeRequiredDescription
publicIdstringConditionalPublic flow identifier. Use publicId or typebotId.
typebotIdstringConditionalInternal TypeBot ID.
phonestringYesContact phone.
messagestringYesInitial message sent to the flow.
pushNamestringNoContact display name.

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

Lists active and closed sessions.
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().listSessions(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
Return: session list (opened, paused, closed) per contact/flow.

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

Pauses an open session. Pass the session UUID in session.
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().pauseSession(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
Return: session with paused status.

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

Closes a session manually. By session UUID:
var options = InstanceRequestOptions.builder().instanceToken(instanceToken).build();
JsonNode result = client.typebots().closeSession(GenericInstanceRequest.builder()
    .instanceId(instanceId)
    .instanceToken(instanceToken)
    .build());
// Example: tipagem estrita com DTOs publicados quando disponivel
Return: closed session or confirmation by phone number. By contact phone (closes all active sessions for that number):
await vzaps.typebots.closeSession({
  instanceId: 'VZ...',
  instanceToken: 'instance-token',
  session: '5511999999999',
});