> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nekt.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RD Station CRM as a data source

> Bring data from RD Station CRM to Nekt.

RD Station CRM is a customer relationship management platform that helps businesses manage leads, opportunities, and customer interactions. It provides tools for contact management, deal tracking, sales pipeline management, and customer analytics to improve sales performance and customer relationships.

<img width="200" src="https://mintcdn.com/nekt/IqQAU3UwPPWWJQ_r/assets/logo-rd-station-crm.png?fit=max&auto=format&n=IqQAU3UwPPWWJQ_r&q=85&s=341d515eb7b807818c98ba2cef8299d1" data-path="assets/logo-rd-station-crm.png" />

## Configuring RD Station CRM as a Source

In the [Sources](https://app.nekt.ai/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 legacy `v1` API and the new `v2` OAuth2 API.

The following configurations are available:

* **API Version**: API version to use. Use `v2` for the most recent API and `v1` for the legacy one.
* **Access Token**: *(v1 only)* The token required to authenticate against the v1 API service. Check the [RD Station CRM docs](https://ajuda.rdstation.com/s/article/Gerar-e-visualizar-Token?language=pt_BR) 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.

Once you're done, click **Next**.

### 2. Select streams

<Note>
  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 certain streams, though some endpoints (such as Tasks) still fall back to full table syncs with the 10,000 record cap due to API limitations.
</Note>

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.

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](https://docs.nekt.com/get-started/core-concepts/types-of-sync).

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](https://docs.nekt.com/runs/scheduling-and-triggers), 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](https://docs.nekt.com/get-started/core-concepts/resource-control).

Once you are ready, click **Next** to finalize the setup.

### 5. Check your new source

You can view your new source on the [Sources](https://app.nekt.ai/sources) page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.

<Warning>For you to be able to see it on your [Catalog](https://app.nekt.ai/catalog), you need at least one successful source run.</Warning>

# Streams and Fields

Below you'll find all available data streams from RD Station CRM and their corresponding fields:

<AccordionGroup>
  <Accordion title="Campaigns">
    Stream containing marketing campaign records. Available in the v2 API.
  </Accordion>

  <Accordion title="Companies">
    Stream containing organization (company) records from your CRM. Available in the v1 API.

    **Key Fields:**

    | Field                   | Type      | Description                                                                                                                                  |
    | :---------------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------- |
    | `id`                    | String    | Unique identifier of the company                                                                                                             |
    | `name`                  | String    | Name of the company                                                                                                                          |
    | `resume`                | String    | Short description of the company                                                                                                             |
    | `url`                   | String    | Website URL of the company                                                                                                                   |
    | `address`               | String    | Address of the company                                                                                                                       |
    | `created_at`            | Timestamp | Timestamp when the record was created                                                                                                        |
    | `updated_at`            | Timestamp | Timestamp when the record was last updated                                                                                                   |
    | `won_count`             | Number    | Number of won deals                                                                                                                          |
    | `lost_count`            | Number    | Number of lost deals                                                                                                                         |
    | `opened_count`          | Number    | Number of open deals                                                                                                                         |
    | `paused_count`          | Number    | Number of paused deals                                                                                                                       |
    | `organization_segments` | Array     | Array of segments the company belongs to, each with `id`, `name`, `integration_id`, and timestamps                                           |
    | `user`                  | Object    | Assigned user with `id`, `name`, `nickname`, and `email`                                                                                     |
    | `contacts`              | Array     | Array of contact people with `name`, `title`, `notes`, `emails`, `phones`, `birthday`, and social profiles (`facebook`, `linkedin`, `skype`) |
    | `custom_fields`         | Array     | Array of custom field values with `custom_field_id`, `value`, and the full custom field definition                                           |
  </Accordion>

  <Accordion title="Contacts">
    Stream containing individual contact records from your CRM. Supported by both v1 and v2 APIs.

    **Key Fields:**

    | Field                   | Type      | Description                                                                                                                |
    | :---------------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------- |
    | `id`                    | String    | Unique identifier of the contact                                                                                           |
    | `name`                  | String    | Name of the contact                                                                                                        |
    | `title`                 | String    | Job title of the contact                                                                                                   |
    | `notes`                 | String    | Notes about the contact                                                                                                    |
    | `organization_id`       | String    | Identifier of the associated company                                                                                       |
    | `created_at`            | Timestamp | Timestamp when the record was created                                                                                      |
    | `updated_at`            | Timestamp | Timestamp when the record was last updated                                                                                 |
    | `emails`                | Array     | Array of email objects with `email` and timestamps                                                                         |
    | `phones`                | Array     | Array of phone objects with `phone`, `type`, `whatsapp`, `whatsapp_full_internacional`, `whatsapp_url_web`, and timestamps |
    | `birthday`              | Object    | Object with `day`, `month`, `year`, and timestamps                                                                         |
    | `facebook`              | String    | Facebook profile                                                                                                           |
    | `linkedin`              | String    | LinkedIn profile                                                                                                           |
    | `skype`                 | String    | Skype handle                                                                                                               |
    | `contact_custom_fields` | Array     | Array of custom field values with `custom_field_id`, `value`, and timestamps                                               |
    | `legal_bases`           | Array     | Array of legal bases with `category`, `type`, and `status`                                                                 |
    | `deals`                 | Array     | Array of associated deals with `id`, `name`, `prediction_date`, `win`, `deal_lost_reason_id`, and `closed_at`              |
  </Accordion>

  <Accordion title="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:**

    | Field            | Type      | Description                                                                                      |
    | :--------------- | :-------- | :----------------------------------------------------------------------------------------------- |
    | `id`             | String    | Unique identifier of the custom field                                                            |
    | `label`          | String    | Display label of the custom field                                                                |
    | `type`           | String    | Field type (e.g., text, number, select)                                                          |
    | `for`            | String    | Entity the field applies to (e.g., deal, contact, organization)                                  |
    | `order`          | Number    | Display order of the field                                                                       |
    | `created_at`     | Timestamp | Timestamp when the record was created                                                            |
    | `updated_at`     | Timestamp | Timestamp when the record was last updated                                                       |
    | `required`       | Boolean   | Whether the field is required                                                                    |
    | `unique`         | Boolean   | Whether the field must be unique                                                                 |
    | `visible`        | Boolean   | Whether the field is visible in the UI                                                           |
    | `allow_new`      | Boolean   | Whether new values can be added (for select-type fields)                                         |
    | `opts`           | Array     | Array of available options for select-type fields                                                |
    | `required_rules` | Array     | Array of conditional rules defining when the field is required, each with `property` and `value` |
  </Accordion>

  <Accordion title="Deal Notes">
    Stream containing textual notes added to deals. Available in the v2 API.
  </Accordion>

  <Accordion title="Deal Pipelines">
    Stream containing sales pipeline definitions. Each pipeline organizes deals into sequential stages. Available in the v1 API.

    **Key Fields:**

    | Field         | Type   | Description                                                                                                      |
    | :------------ | :----- | :--------------------------------------------------------------------------------------------------------------- |
    | `id`          | String | Unique identifier of the pipeline                                                                                |
    | `name`        | String | Name of the pipeline                                                                                             |
    | `order`       | Number | Display order of the pipeline                                                                                    |
    | `deal_stages` | Array  | Array of stages within the pipeline, each with `id`, `name`, `nickname`, `order`, `objective`, and `description` |
  </Accordion>

  <Accordion title="Deal Products">
    Stream containing products attached to individual deals. Available in the v2 API.
  </Accordion>

  <Accordion title="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:**

    | Field           | Type      | Description                                    |
    | :-------------- | :-------- | :--------------------------------------------- |
    | `id`            | String    | Unique identifier of the stage                 |
    | `name`          | String    | Name of the stage                              |
    | `nickname`      | String    | Short nickname of the stage                    |
    | `order`         | Number    | Position of the stage within the pipeline      |
    | `objective`     | String    | Objective or goal of this stage                |
    | `description`   | String    | Detailed description of the stage              |
    | `instance_id`   | String    | Identifier of the associated instance          |
    | `created_at`    | Timestamp | Timestamp when the record was created          |
    | `updated_at`    | Timestamp | Timestamp when the record was last updated     |
    | `deal_pipeline` | Object    | Parent pipeline with `id`, `name`, and `order` |
  </Accordion>

  <Accordion title="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:**

    | Field                    | Type      | Description                                                                                                                                 |
    | :----------------------- | :-------- | :------------------------------------------------------------------------------------------------------------------------------------------ |
    | `id`                     | String    | Unique identifier of the deal                                                                                                               |
    | `name`                   | String    | Name of the deal                                                                                                                            |
    | `rating`                 | Number    | Deal rating                                                                                                                                 |
    | `win`                    | Boolean   | Whether the deal was won                                                                                                                    |
    | `hold`                   | Boolean   | Whether the deal is on hold                                                                                                                 |
    | `interactions`           | Number    | Number of interactions on the deal                                                                                                          |
    | `prediction_date`        | Date      | Expected closing date                                                                                                                       |
    | `closed_at`              | Timestamp | Timestamp when the deal was closed                                                                                                          |
    | `created_at`             | Timestamp | Timestamp when the record was created                                                                                                       |
    | `updated_at`             | Timestamp | Timestamp when the record was last updated                                                                                                  |
    | `amount_montly`          | Number    | Monthly recurring amount                                                                                                                    |
    | `amount_total`           | Number    | Total deal amount                                                                                                                           |
    | `amount_unique`          | Number    | One-time amount                                                                                                                             |
    | `last_activity_at`       | Timestamp | Timestamp of the last activity                                                                                                              |
    | `last_activity_content`  | String    | Content of the last activity                                                                                                                |
    | `user_changed`           | Boolean   | Whether the assigned user was changed                                                                                                       |
    | `markup`                 | String    | Markup content                                                                                                                              |
    | `markup_created`         | String    | Markup creation info                                                                                                                        |
    | `markup_last_activities` | String    | Markup of last activities                                                                                                                   |
    | `deal_stage`             | Object    | Current stage with `id`, `name`, and `nickname`                                                                                             |
    | `deal_source`            | Object    | Source of the deal with `id` and `name`                                                                                                     |
    | `deal_lost_reason`       | Object    | Reason for loss with `id` and `name`                                                                                                        |
    | `user`                   | Object    | Assigned user with `id`, `name`, `nickname`, and `email`                                                                                    |
    | `organization`           | Object    | Associated company with `id`, `name`, `address`, coordinates, and nested `user`                                                             |
    | `contacts`               | Array     | Array of associated contacts with names, emails, phones, birthday, and social profiles                                                      |
    | `deal_custom_fields`     | Array     | Array of custom field values with the full custom field definition                                                                          |
    | `deal_products`          | Array     | Array of products attached to the deal with `name`, `base_price`, `price`, `amount`, `discount`, `discount_type`, `recurrence`, and `total` |
    | `campaign`               | Object    | Associated campaign with `id` and `name`                                                                                                    |
    | `next_task`              | Object    | Next scheduled task with `id`, `date`, `subject`, `type`, and `hour`                                                                        |
  </Accordion>

  <Accordion title="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:**

    | Field                    | Type      | Description                                                                                                            |
    | :----------------------- | :-------- | :--------------------------------------------------------------------------------------------------------------------- |
    | `id`                     | String    | Unique identifier of the deal                                                                                          |
    | `name`                   | String    | Name of the deal                                                                                                       |
    | `rating`                 | Number    | Deal rating                                                                                                            |
    | `win`                    | Boolean   | Whether the deal was won                                                                                               |
    | `hold`                   | Boolean   | Whether the deal is on hold                                                                                            |
    | `interactions`           | Number    | Number of interactions                                                                                                 |
    | `prediction_date`        | Date      | Expected closing date                                                                                                  |
    | `closed_at`              | Timestamp | Timestamp when the deal was closed                                                                                     |
    | `created_at`             | Timestamp | Timestamp when the record was created                                                                                  |
    | `updated_at`             | Timestamp | Timestamp when the record was last updated                                                                             |
    | `amount_montly`          | Number    | Monthly recurring amount                                                                                               |
    | `amount_total`           | Number    | Total deal amount                                                                                                      |
    | `amount_unique`          | Number    | One-time amount                                                                                                        |
    | `best_moment_to_touch`   | Boolean   | Whether it's the best moment to contact                                                                                |
    | `deal_lost_note`         | String    | Note explaining why the deal was lost                                                                                  |
    | `deal_source_id`         | String    | Identifier of the deal source                                                                                          |
    | `deal_lost_reason_id`    | String    | Identifier of the deal lost reason                                                                                     |
    | `campaign_id`            | String    | Identifier of the associated campaign                                                                                  |
    | `from_rdsm_integration`  | Boolean   | Whether the deal came from RD Station Marketing                                                                        |
    | `last_note_content`      | String    | Content of the last note                                                                                               |
    | `deal_stage`             | Object    | Current stage with `id`, `name`, `nickname`, and `deal_pipeline_id`                                                    |
    | `deal_pipeline`          | Object    | Associated pipeline with `id` and `name`                                                                               |
    | `deal_source`            | Object    | Source of the deal with `id`, `name`, and `deal_source_id`                                                             |
    | `campaign`               | Object    | Associated campaign with `id`, `name`, and `campaign_id`                                                               |
    | `user`                   | Object    | Assigned user with `id` and `name`                                                                                     |
    | `organization`           | Object    | Associated company with full detail including `organization_custom_fields` and `organization_segments`                 |
    | `deal_custom_fields`     | Array     | Array of custom field values with the full custom field definition                                                     |
    | `deal_products`          | Array     | Array of products with `name`, `base_price`, `price`, `amount`, `discount`, `discount_type`, `recurrence`, and `total` |
    | `deal_stage_histories`   | Array     | Array of stage transitions with `deal_stage_id`, `start_date`, and `end_date`                                          |
    | `stop_time_limit`        | Object    | Stagnation info with `expiration_date_time`, `expired`, and `expired_days`                                             |
    | `deal_pipeline_relation` | Object    | Pipeline relation with `parent_deal` containing deal summary, pipeline, stage, and user info                           |
  </Accordion>

  <Accordion title="Lost Reasons">
    Stream containing deal loss reason definitions configured in your CRM. Available in the v2 API.
  </Accordion>

  <Accordion title="Organizations">
    Stream containing organization (company) records from your CRM. Available in the v2 API.
  </Accordion>

  <Accordion title="Pipelines">
    Stream containing sales pipeline definitions. Available in the v2 API.
  </Accordion>

  <Accordion title="Products">
    Stream containing product records from your CRM catalog. Supported by both v1 and v2 APIs.

    **Key Fields:**

    | Field                   | Type      | Description                                                                  |
    | :---------------------- | :-------- | :--------------------------------------------------------------------------- |
    | `id`                    | String    | Unique identifier of the product                                             |
    | `name`                  | String    | Name of the product                                                          |
    | `description`           | String    | Description of the product                                                   |
    | `base_price`            | Number    | Base price of the product                                                    |
    | `visible`               | Boolean   | Whether the product is visible                                               |
    | `created_at`            | Timestamp | Timestamp when the record was created                                        |
    | `updated_at`            | Timestamp | Timestamp when the record was last updated                                   |
    | `product_custom_fields` | Array     | Array of custom field values with `custom_field_id`, `value`, and timestamps |
  </Accordion>

  <Accordion title="Reasons for Loss">
    Stream containing deal loss reason definitions configured in your CRM. Available in the v1 API.

    **Key Fields:**

    | Field         | Type      | Description                                |
    | :------------ | :-------- | :----------------------------------------- |
    | `_id`         | String    | Unique identifier of the reason            |
    | `name`        | String    | Name of the loss reason                    |
    | `instance_id` | String    | Identifier of the associated instance      |
    | `created_at`  | Timestamp | Timestamp when the record was created      |
    | `updated_at`  | Timestamp | Timestamp when the record was last updated |
  </Accordion>

  <Accordion title="Segments">
    Stream containing organization segment definitions. Available in the v2 API.
  </Accordion>

  <Accordion title="Sources">
    Stream containing deal source definitions. Available in the v2 API.
  </Accordion>

  <Accordion title="Stages">
    Stream containing deal stage definitions. Available in the v2 API.
  </Accordion>

  <Accordion title="Tasks">
    Stream containing task records associated with deals. Supported by both v1 and v2 APIs.

    <Note>
      Due to RD Station API limitations, the Tasks endpoint does not support filtering or sorting by date. Therefore, incremental syncs are not possible. This stream is forced to `FULL_TABLE` sync and is capped at a maximum of 10,000 records per extraction in both API versions.
    </Note>

    **Key Fields:**

    | Field        | Type      | Description                                                        |
    | :----------- | :-------- | :----------------------------------------------------------------- |
    | `id`         | String    | Unique identifier of the task                                      |
    | `subject`    | String    | Subject of the task                                                |
    | `type`       | String    | Type of the task (e.g., call, email, meeting)                      |
    | `status`     | String    | Current status of the task                                         |
    | `done`       | Boolean   | Whether the task is completed                                      |
    | `done_date`  | Timestamp | Timestamp when the task was completed                              |
    | `date`       | Date      | Scheduled date of the task                                         |
    | `hour`       | String    | Scheduled hour of the task                                         |
    | `notes`      | String    | Notes about the task                                               |
    | `markup`     | String    | Markup content                                                     |
    | `deal_id`    | String    | Identifier of the associated deal                                  |
    | `user_ids`   | Array     | Array of assigned user identifiers                                 |
    | `created_at` | Timestamp | Timestamp when the record was created                              |
    | `deal`       | Object    | Associated deal summary with `id`, `name`, `hold`, and `rating`    |
    | `users`      | Array     | Array of assigned users with `id`, `name`, `nickname`, and `email` |
  </Accordion>

  <Accordion title="Teams">
    Stream containing CRM team records. Available in the v2 API.
  </Accordion>

  <Accordion title="Users">
    Stream containing CRM user (team member) records. Supported by both v1 and v2 APIs.

    **Key Fields:**

    | Field        | Type      | Description                                |
    | :----------- | :-------- | :----------------------------------------- |
    | `id`         | String    | Unique identifier of the user              |
    | `name`       | String    | Name of the user                           |
    | `email`      | String    | Email of the user                          |
    | `active`     | Boolean   | Whether the user is active                 |
    | `hidden`     | Boolean   | Whether the user is hidden                 |
    | `last_login` | Timestamp | Timestamp of the user's last login         |
    | `created_at` | Timestamp | Timestamp when the record was created      |
    | `updated_at` | Timestamp | Timestamp when the record was last updated |
  </Accordion>
</AccordionGroup>

# 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.

```mermaid theme={null}
graph TD;
    subgraph "Core Entities"
        Users("Users");
        Companies("Companies");
        Contacts("Contacts");
        Products("Products");
        CustomFields("Custom Fields");
        ReasonsForLoss("Reasons for Loss");
    end

    subgraph "Sales Pipeline"
        DealPipelines("Deal Pipelines");
        DealStages("Deal Stages");
        Deals("Deals");
        DealsDetails("Deals Details");
        Tasks("Tasks");
    end

    DealStages -- "deal_pipeline.id" --> DealPipelines;
    Deals -- "deal_stage.id" --> DealStages;
    Deals -- "organization._id" --> Companies;
    Deals -- "user.id" --> Users;
    Deals -- "deal_lost_reason.id" --> ReasonsForLoss;
    DealsDetails -- "id" --> Deals;
    DealsDetails -- "deal_pipeline.id" --> DealPipelines;
    DealsDetails -- "deal_stage.id" --> DealStages;
    Tasks -- "deal_id" --> Deals;
    Tasks -- "user_ids" --> Users;
    Contacts -- "organization_id" --> Companies;
    Contacts -- "deals[].id" --> Deals;
    Deals -- "deal_products[].product_id" --> Products;
```

## Skills for agents

<Snippet file="agent-skills-intro.mdx" />

<Card title="Download RD Station CRM skills file" icon="wand-magic-sparkles" href="/sources/rd-station-crm.md">
  RD Station CRM connector documentation as plain markdown, for use in AI agent contexts.
</Card>
