
Configuring RD Station CRM as a Source
In the Sources tab, click on the “Add source” button located on the top right of your screen. Then, select the RD Station CRM option from the list of connectors. Click Next and you’ll be prompted to add your access.1. Add account access
You’ll need to provide your RD Station CRM credentials for authentication. The connector supports both the legacyv1 API and the new v2 OAuth2 API.
The following configurations are available:
- API Version: API version to use. Use
v2for the most recent API andv1for the legacy one. - Access Token: (v1 only) The token required to authenticate against the v1 API service. Check the RD Station CRM docs to discover how you can generate your access token.
- OAuth2 Authorization: (v2 only) Authorize with your user account and grant permissions for the Nekt app.
- Start Date: The earliest record date to sync (ISO 8601 format, e.g.
2024-01-01T00:00:00Z). Used for incremental streams. - Activities API Token (optional, advanced settings): A legacy v1 API token that enables the
whatsapp_transcriptionsstream (WhatsApp conversation transcripts from the deal timeline). This endpoint has no v2 equivalent, so it requires its own token regardless of the API version selected. Note: This feature requires the Advanced plan of RD Station CRM. If you provide a token but your account does not have access, the stream will be automatically skipped. Leave it empty and the stream is not created.
2. Select streams
If you are using the v1 API, incremental syncs are not supported. It also has a limitation of a maximum of 10,000 records per endpoint. Thus, this connector will always fetch the most recent 10,000 records for each entity (e.g. Deals, Contacts, Companies, etc) in each run for v1. The v2 API supports incremental syncs for Contacts, Deals, Organizations and Deal Notes; the remaining v2 streams are full table. The Tasks endpoint cannot be filtered by update date, so it is always a full table sync — but in v2 the connector pages past the 10,000-record query limit using a
due_date cursor, so every task is fetched (see the Tasks stream below).Tip: The stream can be found more easily by typing its name.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 (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: depending on the data you are bringing to the lake, you can choose between INCREMENTAL and FULL_TABLE. 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.
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
Available streams
The table below lists every stream, its slug (the exact identifier to pass when creating the source via API) and a short description. The available streams depend on the APIversion setting: v1 (legacy access-token API) exposes one set of streams, while v2 (OAuth2 API, the default for new sources) exposes another. The opt-in whatsapp_transcriptions stream is available with either version when an Activities API Token is provided.
Version 1 (v1, default):
Version 2 (
v2, OAuth2 API):
Fields by stream
Below you’ll find all available data streams from RD Station CRM and their corresponding fields:Campaigns
Campaigns
Stream containing marketing campaign records. Available in the v2 API.
Companies
Companies
Stream containing organization (company) records from your CRM. Available in the v1 API.Key Fields:
Contacts
Contacts
Stream containing individual contact records from your CRM. Supported by both v1 and v2 APIs.Key Fields:
Custom Fields
Custom Fields
Stream containing custom field definitions configured in your CRM. These define the structure for custom data on deals, contacts, companies, and products. Supported by both v1 and v2 APIs.Key Fields:
Deal Notes
Deal Notes
Stream containing textual notes added to deals. Available in the v2 API.
Deal Pipelines
Deal Pipelines
Stream containing sales pipeline definitions. Each pipeline organizes deals into sequential stages. Available in the v1 API.Key Fields:
Deal Products
Deal Products
Stream containing products attached to individual deals. This is a child stream of Deals, fetched per deal id. It is a join-table resource (per-deal pricing and quantity): to enrich it with product details, join with the Products stream on
product_id downstream. This stream is a full table sync. Available in the v2 API.Key Fields:Deal Stages
Deal Stages
Stream containing deal stage records for each pipeline. This is a child stream of Deal Pipelines, fetching stages per pipeline with full detail. Available in the v1 API.Key Fields:
Deals
Deals
Stream containing deal (opportunity) records. This is the core sales entity in RD Station CRM. Supported by both v1 and v2 APIs.Key Fields:
Deals Details
Deals Details
Stream containing extended deal information. This is a child stream of Deals that fetches the full detail endpoint for each deal, including stage history and pipeline relations not available in the Deals list. Available in the v1 API.Key Fields:
Lost Reasons
Lost Reasons
Stream containing deal loss reason definitions configured in your CRM. Available in the v2 API.
Organizations
Organizations
Stream containing organization (company) records from your CRM. Available in the v2 API.
Pipelines
Pipelines
Stream containing sales pipeline definitions. Available in the v2 API.
Products
Products
Stream containing product records from your CRM catalog. Supported by both v1 and v2 APIs.Key Fields:
Reasons for Loss
Reasons for Loss
Stream containing deal loss reason definitions configured in your CRM. Available in the v1 API.Key Fields:
Segments
Segments
Stream containing organization segment definitions. Available in the v2 API.
Sources
Sources
Stream containing deal source definitions. Available in the v2 API.
Stages
Stages
Stream containing deal stage definitions. Available in the v2 API.
Tasks
Tasks
Stream containing task records associated with deals. Supported by both v1 and v2 APIs.Key Fields (v1 API):
The RD Station Tasks endpoint cannot be filtered by creation or update date, so incremental syncs are not possible and this stream is forced to
FULL_TABLE sync in both API versions. In v1 the extraction is capped at the most recent 10,000 records. In v2 the connector sorts tasks by due_date ascending and, whenever a query hits RD Station’s 10,000-record limit, re-issues it from the last due_date seen, so accounts with more than 10,000 tasks are fully extracted (the sync just takes a few more passes). Rows re-read at the cursor boundary or shifted by page drift are deduplicated by id within the run.Key Fields (v2 API):
Teams
Teams
Stream containing CRM team records. Available in the v2 API.
Users
Users
Stream containing CRM user (team member) records. Supported by both v1 and v2 APIs.Key Fields:
WhatsApp Transcriptions
WhatsApp Transcriptions
Opt-in stream containing WhatsApp conversation transcripts logged on the deal timeline. It is backed by the legacy v1 Supports incremental syncs on
/activities endpoint (filtered to whatsapp_transcription activities), which has no v2 equivalent, so it always authenticates with the dedicated Activities API Token and is only created when that token is configured.Advanced Plan Required: WhatsApp transcripts require the Advanced plan of RD Station CRM. If the Activities API Token is configured but the account is not on the Advanced plan, the connector will detect the lack of permissions and automatically skip this stream (it will not be created or updated).
date, starting from the configured Start Date.Key Fields:Transformation example: pivoting custom fields to columns
Thecustom_fields column stores all account-specific custom attributes as a single JSON string. This ensures schema stability regardless of dynamically created fields in RD Station and prevents extraction issues. To analyze dimensions like document numbers, values, or dropdown options in Explorer or downstream models, parse the JSON and expose the keys as separate columns.
SQL transformation (AWS Athena / GCP BigQuery)
SQL transformation (AWS Athena / GCP BigQuery)
- AWS (Athena)
- GCP (BigQuery)
cpf-cliente), you may need to use bracket notation in your JSON path extraction depending on your SQL engine syntax, such as json_extract_scalar(custom_fields, '$["cpf-cliente"]').Implementation Notes
Incremental syncs and the 10,000-record query limit (v2)
- RD Station’s v2 API rejects any filtered listing past the 10,000th record. For the incremental streams (Contacts, Deals, Organizations, Deal Notes) the connector filters on the replication key from the last saved state (or the Start Date) and, when a window overflows the limit, advances a monotonic cursor (
created_atascending) or splits the window until every slice fits, so no records are lost on the first sync of a large account. - Deal Products and Deal Notes are child streams fetched once per deal returned by the Deals stream. Deal Products has no replication key of its own and is always a full table sync.
Tasks pagination and page drift
- The Tasks endpoint does not guarantee a stable order between calls unless explicitly sorted, so records changing mid-extraction can shift pages (page drift), producing duplicate or skipped rows.
- In v2 the connector always sorts Tasks by
due_dateascending. A task inserted before the current page can only shift later pages forward, so drift can duplicate a row but never skip one; duplicates are removed byidwithin the run. due_dateis also the one field that is both filterable and sortable and mandatory on every task, so it doubles as the cursor that pages past the 10,000-record limit: when a pass hits the cap, the query is re-issued withdue_date >= <last due_date seen>until a pass finishes without overflowing. If the cursor cannot advance (more than 10,000 tasks sharing the samedue_date), the run finishes with a partial result and a warning in the logs.
Data Model
The following diagram illustrates the relationships between the core data streams in RD Station CRM. The arrows indicate the join keys that link the different entities.Troubleshooting
Incremental streams are also bounded by RD Station’s 10,000-record query limit, and Tasks pagination has its own behavior. Both are described in Implementation Notes.
Skills for agents
Download RD Station CRM skills file
RD Station CRM connector documentation as plain markdown, for use in AI agent contexts.