Skip to main content
Botmaker is a conversational platform for WhatsApp, Instagram, Messenger, and other channels, with bot automation and human-agent handoff. This connector extracts your chats, messages, sessions, calls, contacts, and agent data from the Botmaker API v2.0 and lands them in your Nekt Catalog as queryable tables.

Configuring Botmaker as a Source

In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Botmaker option from the list of connectors. Click Next and you’ll be prompted to add your access.

1. Add account access

You’ll need a Botmaker API access token. Generate it in Botmaker under Configuration → Integrations → API (the Credentials tab). Once you have it, add the account access, then click Next. The following configurations are available:
  • Access Token: Botmaker API access token, sent in the access-token request header.
  • Start Date: The earliest date you want to extract data from.
  • Long-term Search: Enable historical backfill for chats, messages, sessions, and calls.
By default, the chats, messages, sessions, and calls streams only return Botmaker’s recent activity window. To backfill older history from your Start Date, enable Long-term Search. Botmaker bills long-term searches as BI data-source consumption, so enable it only when you need the full history.

2. Select streams

Choose which data streams you want to sync. The available streams are described in the Streams and Fields section below. Select the streams and click Next.

3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table, and the type of sync.
  • Layer: choose between the existing layers on your catalog.
  • Folder: a folder can be created inside the selected layer to group all tables being created from this new data source.
  • Table name: we suggest a name, but feel free to customize it. You can add a prefix to all tables at once.
  • Sync Type: you can choose between INCREMENTAL and FULL_TABLE.
    • Incremental: only new or updated records since the last successful run are extracted (available for chats, messages, sessions, calls, and tickets).
    • Full table: every run fetches the full current state of the selected stream.
Once you are done configuring, click Next.

4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters. To define your Trigger, consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times). Optionally, you can define some additional settings:
  • Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated.
  • Determine when to execute an Additional Full Sync.
Once you are ready, click Next to finalize the setup.

5. Check your new source

You can view your new source on the Sources page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.
For you to be able to see it on your Catalog, you need at least one successful source run.

Streams and Fields

Below you’ll find all available data streams from Botmaker and their corresponding fields:
Chats with their current state, filtered by last-activity window. Incremental on lastUserMessageDatetime.
FieldTypeDescription
chat_idStringBotmaker chat id.
channel_idStringChannel id of the chat.
contact_idStringContact id (for example, the user’s phone number on WhatsApp).
creationTimeDateTimeWhen the chat was created.
lastSessionCreationTimeStringStart time of the last session.
externalIdStringExternal identifier for the chat user.
firstNameStringUser’s first name.
lastNameStringUser’s last name.
countryStringUser’s country.
emailStringUser’s email.
whatsAppWindowCloseDatetimeDateTimeWhen the WhatsApp 24-hour window closes.
variablesStringJSON-encoded chat variables.
tagsArrayTags applied to the chat.
queueIdStringQueue the chat is assigned to.
agentIdStringAgent currently assigned.
onHoldAgentIdStringAgent the chat is on hold for.
lastUserMessageDatetimeDateTimeTimestamp of the last user message.
listMessagesURLStringAPI URL to list this chat’s messages.
isBannedBooleanWhether the user is banned.
isTesterBooleanWhether the user is a tester.
isBotMutedBooleanWhether the bot is muted for this chat.
Messages exchanged across chats, filtered by a datetime window. Incremental on creationTime.
FieldTypeDescription
idStringMessage id.
creationTimeDateTimeWhen the message was created.
fromStringSender of the message.
agentIdStringAgent who sent the message, if any.
queueIdStringQueue associated with the message.
contentObjectMessage content (type, text, buttons, media, location, call, template).
encryptionParamsObjectEncryption metadata, when applicable.
sessionCreationTimeDateTimeStart time of the session the message belongs to.
sessionIdStringSession id.
chat_idStringBotmaker chat id.
channel_idStringChannel id of the chat.
contact_idStringContact id of the chat.
Conversation sessions, filtered by a datetime window. Incremental on creationTime.
FieldTypeDescription
idStringSession id.
creationTimeDateTimeWhen the session started.
startingCauseStringWhat triggered the session.
chatObjectChat the session belongs to.
messagesArraySession messages (only when included by the API).
eventsArraySession events (only when included by the API).
aiAnalysisObjectAI analysis of the session (summary, quality score, etc.).
Voice and video calls, filtered by a datetime window. Incremental on creationDatetime.
FieldTypeDescription
idStringCall id.
chat_idStringBotmaker chat id.
channel_idStringChannel id of the chat.
contact_idStringContact id of the chat.
agentIdStringAgent involved in the call.
creationDatetimeDateTimeWhen the call record was created.
startDatetimeDateTimeWhen the call started.
endDatetimeDateTimeWhen the call ended.
recordingObjectCall recording (id and url).
typeStringCall type.
participantsArrayCall participants and their join/leave times.
Contacts and their channels of communication.
FieldTypeDescription
idStringContact id.
firstNameStringContact’s first name.
lastNameStringContact’s last name.
birthdayStringContact’s birthday.
pictureUrlStringProfile picture URL.
languageStringPreferred language.
countryStringCountry.
companyIdStringAssociated company id.
jobTitleStringJob title.
phoneNumbersArrayPhone numbers (value and label).
emailsArrayEmail addresses (value and label).
addressesArrayAddresses (value and label).
websitesArrayWebsites (value and label).
instagramIdsArrayLinked Instagram ids.
facebookIdsArrayLinked Facebook ids.
twitterIdsArrayLinked Twitter ids.
notesArrayFree-text notes.
chatsArrayChats linked to this contact.
whatsappBsuidsArrayLinked WhatsApp business user ids.
Agents configured in your Botmaker account.
FieldTypeDescription
idStringAgent id.
emailStringAgent’s email.
nameStringAgent’s name.
aliasStringDisplay alias.
isOnlineBooleanWhether the agent is online.
statusStringAgent status.
roleStringAgent role.
queuesArrayQueues the agent belongs to.
slotsIntegerConcurrent chat slots.
priorityStringAssignment priority.
groupsArrayGroups the agent belongs to.
additionalInfoStringJSON-encoded additional info.
creationTimeDateTimeWhen the agent was created.
Communication channels connected to your account.
FieldTypeDescription
idStringChannel id.
platformStringChannel platform (for example, whatsapp, instagram_chat).
activeBooleanWhether the channel is active.
nameStringChannel name.
webhookIdStringAssociated webhook id.
Bot intents defined in your account.
FieldTypeDescription
idStringIntent id.
nameStringIntent name.
botObjectBot the intent belongs to (id and name).
topicsArrayTopics associated with the intent.
triggersArrayTriggers that activate the intent.
activeBooleanWhether the intent is active.
Support tickets. Incremental on creationTime.
FieldTypeDescription
idStringTicket id.
businessIdStringBusiness id.
ticketCodeStringHuman-readable ticket code.
stateStringTicket state.
lastStateModificationStringWhen the state last changed.
creationTimeDateTimeWhen the ticket was created.
lastModificationByStringJSON-encoded last modifier.
subjectStringTicket subject.
contentStringTicket content.
contentFormatStringFormat of the content.
searchableContentStringSearchable content.
companyIdIntegerCompany id.
authorIdIntegerAuthor id.
assignedToStringJSON-encoded assignee.
followByArrayUser ids following the ticket.
waitingQueueIdsArrayQueues waiting on the ticket.
waitingAssignationSinceStringSince when the ticket is awaiting assignment.
assignedQueueIdStringQueue the ticket is assigned to.
firstAnswerStringFirst answer timestamp.
resolveDateStringResolution date.
finishedSlasMetricsStringJSON-encoded SLA metrics.
attachmentsArrayTicket attachments.
chatIdsStringJSON-encoded related chat ids.
fieldValuesArrayCustom field values.

Implementation Notes

The connector authenticates against the Botmaker API v2.0 using your access token as the access-token request header.
The chats, messages, sessions, and calls endpoints only return Botmaker’s recent activity window unless Long-term Search is enabled, which sends long-term-search=true. Botmaker bills long-term searches as BI data-source consumption, so enable it only when you need to backfill history from your Start Date.

Skills for agents

Download Botmaker skills file

Botmaker connector documentation as plain markdown, for use in AI agent contexts.