Configuring Salesbud as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the Salesbud option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
Salesbud authenticates with an OAuth 2.0 client credential: a Client ID and a Client Secret that belong to your company, not to a user. The connector exchanges them for a short-lived access token on every sync, so there is nothing to renew on your side.What the connector can read depends on the permissions (scopes) of the credential:
meetings.read, calls.read, transcriptions.read, emails.read, emails.content.read, whatsapp.read, and whatsapp.content.read. Ask for the ones matching the streams you want. A stream whose permission is missing is skipped with a warning on the run log, and the rest of the sync proceeds normally. We recommend a credential dedicated to Nekt, so rotating or revoking it never disturbs your other integrations.-
Client ID: the identifier of the credential issued by Salesbud (it starts with
sb_client_). Required. - Client Secret: the secret delivered together with the Client ID. Required.
- Start Date: the earliest date from which records will be synced: meetings and calls created from this date on, and email and WhatsApp conversations with activity from this date on. Leave it empty to extract the full history.
- Lookback Days: how many days are re-read before the last sync point on every run. Salesbud only exposes a meeting once its processing is complete, and keeps enriching it afterwards (evaluation, tags, answers), so recent records are read again to pick up those changes. The default is 7.
- Requests Per Minute: how fast the connector may call Salesbud. By default it uses 90% of the quota Salesbud reports for the credential (120 requests per minute unless Salesbud changed it). The quota is shared with the other integrations of your company, so raise it only if you know no other integration needs it.
2. Select streams
Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.Tip: The stream can be found more easily by typing its name.
Answers and transcripts cost one request per meeting or call, and Salesbud limits transcript reads to 60 per minute. The first sync of a large history can therefore take a while when transcripts are selected; the following syncs only re-read the lookback window. The overall evaluation of each meeting and call (status, score, and justification) already comes in the Meetings and Calls tables, with no extra requests.
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 (which will effectively contain the fetched data) and the type of sync.- Layer: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
- 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 have the option to add a prefix to all tables at once and make this process faster!
- Sync Type: all streams support INCREMENTAL. Read more about Sync Types here.
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. Read more about this resource here.
- Determine when to execute an Additional Full Sync. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.
Salesbud’s API has no “last changed” filter, so meetings and calls are synced by creation date, re-reading the last Lookback Days on every run, and the Lakehouse deduplicates the overlap. A meeting whose processing finishes, or that is re-evaluated, more than that many days after it was created is only picked up by a full sync, so scheduling an occasional additional full sync is recommended. Email and WhatsApp conversations are synced by their latest message; an edited or deleted message is updated when its conversation is read again.
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.Streams and Fields
Below you’ll find all available data streams from Salesbud and their corresponding fields. API reference: Salesbud API.Meetings
Meetings
Every completed meeting of your company: recorded by the Salesbud bot, uploaded to the platform or captured by the mobile app (
GET /v1/meetings). Requires the meetings.read permission.Primary key: id · Replication key: created_atMeeting Answers
Meeting Answers
One row per template question answered in a meeting (
GET /v1/meetings/{id}/answers), with the question type and order. Only requested for meetings that have a template. Requires meetings.read.Primary key: id · Replication key: updated_atMeeting Transcripts
Meeting Transcripts
The transcript of each meeting that has one (
GET /v1/meetings/{id}/transcript), in the enhanced version when available. Requires meetings.read and transcriptions.read.Primary key: meeting_id · Replication key: updated_atCalls
Calls
Every completed call captured from a VoIP integration (
GET /v1/calls). Calls carry the same fields as meetings, except the recording bot history. Requires calls.read.Primary key: id · Replication key: created_atCall Answers
Call Answers
One row per template question answered in a call (
GET /v1/calls/{id}/answers). Only requested for calls that have a template. Requires calls.read.Primary key: id · Replication key: updated_atCall Transcripts
Call Transcripts
The transcript of each call that has one (
GET /v1/calls/{id}/transcript). Requires calls.read and transcriptions.read.Primary key: call_id · Replication key: updated_atEmail Conversations
Email Conversations
Email threads of the mailboxes your sellers connected to Salesbud, deduplicated across mailboxes (
GET /v1/emails). Metadata only, no bodies. Requires emails.read.Primary key: id · Replication key: last_message_atEmail Messages
Email Messages
Every message of each email conversation, with its plain-text body and attachment metadata (
GET /v1/emails/{id}/messages). Requires emails.read and emails.content.read.Primary key: id · Replication key: sent_atWhatsApp Conversations
WhatsApp Conversations
WhatsApp chats of your sellers, captured from WhatsApp Web or RD Conversas (
GET /v1/whatsapp). Metadata only, no messages. Requires whatsapp.read.Primary key: id · Replication key: last_message_atWhatsApp Messages
WhatsApp Messages
Every message of each WhatsApp conversation, with its text, media metadata and audio transcription (
GET /v1/whatsapp/{id}/messages). Deleted messages stay as rows with empty content. Requires whatsapp.read and whatsapp.content.read.Primary key: id · Replication key: sent_at