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

# Bitrix24 as a data source

> Bring data from Bitrix24 to Nekt.

Bitrix24 is a comprehensive business management platform that combines CRM, project management, communication tools, and business automation features. It provides solutions for sales, marketing, customer service, and team collaboration in a single integrated platform.

<img height="50" src="https://mintcdn.com/nekt/43FsQ37QF_gxIqKI/assets/logo/logo-bitrix.png?fit=max&auto=format&n=43FsQ37QF_gxIqKI&q=85&s=b273342788b0be95b86889c737cae338" data-path="assets/logo/logo-bitrix.png" />

## Configuring Bitrix24 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 Bitrix24 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 an **Outbound webhook URL** for your Bitrix24 portal. Check [Bitrix documentation](https://training.bitrix24.com/rest_help/) to find where to create and copy this URL.

The following configurations are available:

* **Outbound webhook URL**: (Required) The Bitrix24 outbound webhook URL used for API calls.

* **Extract deal contacts**: (Default: `false`) When enabled, performs an additional API call per deal to retrieve related contact IDs. Enable only if your deals have multiple clients and you need that list.

* **Enable deal comments stream**: (Default: `false`) When enabled, the `deal_comments` stream becomes available. Selecting it triggers one extra API call per deal to fetch comments. Enable only if needed, as it increases extraction time.

* **Enable deal products stream**: (Default: `false`) When enabled, the `deal_products` stream becomes available. Selecting it triggers one extra API call per deal to fetch products. Enable only if needed, as it increases extraction time.

* **Operating time threshold**: (Default: 200) If Bitrix returns an "operating time" greater than this value (in seconds), the tap will pause for that duration before continuing. Use this to respect rate limits.

* **Filter deal category IDs**: (Optional) List of Bitrix deal category IDs (funnels). If set, only deals from these categories are extracted. Leave empty to sync all deals.

Scopes that must be included in your webhook so Nekt can retrieve data:

<Accordion title="Scopes for data access">
  * **CRM**: `crm` — contacts, companies, deals, leads, activities, products, status list, SPA types (and optionally deal comments, deal products).
  * **Users**: `user`, `user_brief`, `user_basic` — user list and profile data.
  * **Company structure**: `departments` — departments.
  * **Telephony**: `telephony` — calls (Voximplant statistics).
  * **Open lines**: `imopenlines` — open line configurations.
</Accordion>

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

### 2. Select streams

Choose which data streams you want to sync. Visibility depends on your webhook scopes and on the optional settings above (deal comments, deal products). You can select entire groups of streams or pick specific ones.

> Tip: The stream can be found more easily by typing its name.

<Info>If you don't see a stream you were expecting to find, please check if your access key has the required scope. If that's not the issue, then it's probably because we still haven't implemented it. Feel free to get in touch and request it!</Info>

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**: You can choose between INCREMENTAL and FULL\_TABLE.
  * Incremental: every time the extraction happens, we'll get only the new data — which is good if, for example, you want to keep every record ever fetched.
  * Full table: every time the extraction happens, we'll get the current state of the data — which is good if, for example, you don't want to have deleted data in your catalog.

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/get-started/core-concepts/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).
* Determine when to execute an **Additional [Full Sync](https://docs.nekt.com/get-started/core-concepts/types-of-sync#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.

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 Bitrix24 and their main fields. CRM entity streams (contacts, companies, deals, leads, activities, product) have schemas built dynamically from the Bitrix API, so custom fields (e.g. `UF_*`) may vary per portal.

<AccordionGroup>
  <Accordion title="activities">
    Stream for CRM activities (calls, meetings, tasks, etc.). Schema is built from the Bitrix API.

    **Key Fields:**

    * `ID` — Unique identifier
    * `CREATED` — Replication key (incremental sync)
    * Additional fields depend on your Bitrix CRM activity configuration
  </Accordion>

  <Accordion title="activity_fields">
    Metadata stream for activity field definitions (types, labels, options).

    **Key Fields:**

    * `id` — Field identifier
    * `type` — Field type
    * `title` — Display name
    * `isRequired`, `isReadOnly`, `items` (for list fields), etc.
  </Accordion>

  <Accordion title="calls">
    Stream for telephony (Voximplant) call statistics. Requires scope `telephony`.

    **Key Fields:**

    * `ID` — Unique identifier
    * `CALL_START_DATE` — Replication key
    * `PORTAL_USER_ID`, `PHONE_NUMBER`, `CALL_DURATION`, `CALL_RECORD_URL`
    * `CRM_ENTITY_TYPE`, `CRM_ENTITY_ID`, `COST`, `COST_CURRENCY`
  </Accordion>

  <Accordion title="companies">
    Stream for CRM companies. Schema is built from the Bitrix API.

    **Key Fields:**

    * `ID` — Unique identifier
    * `DATE_MODIFY` — Replication key
    * Standard and custom (`UF_*`) company fields from your portal
  </Accordion>

  <Accordion title="company_fields">
    Metadata stream for company field definitions.

    **Key Fields:**

    * `id`, `type`, `title`, `statusType`, `isRequired`, `items`, `listLabel`, `formLabel`, etc.
  </Accordion>

  <Accordion title="contacts">
    Stream for CRM contacts. Schema is built from the Bitrix API.

    **Key Fields:**

    * `ID` — Unique identifier
    * `DATE_MODIFY` — Replication key
    * Standard and custom (`UF_*`) contact fields from your portal
  </Accordion>

  <Accordion title="contact_fields">
    Metadata stream for contact field definitions.

    **Key Fields:**

    * `id`, `type`, `title`, `statusType`, `isRequired`, `items`, `listLabel`, `formLabel`, etc.
  </Accordion>

  <Accordion title="deal_comments">
    Stream for comments attached to deals. Available only when "Enable deal comments stream" is turned on. One API call per deal.

    **Key Fields:**

    * Comment content and metadata; structure depends on Bitrix API response.
  </Accordion>

  <Accordion title="deal_fields">
    Metadata stream for deal field definitions.

    **Key Fields:**

    * `id`, `type`, `title`, `statusType`, `isRequired`, `items`, `listLabel`, `formLabel`, etc.
  </Accordion>

  <Accordion title="deal_products">
    Stream for products (line items) linked to deals. Available only when "Enable deal products stream" is turned on. One API call per deal.

    **Key Fields:**

    * Product and quantity data per deal; structure depends on Bitrix API.
  </Accordion>

  <Accordion title="deals">
    Stream for CRM deals. Schema is built from the Bitrix API. Optionally can include `CONTACT_IDS` per deal when "Extract deal contacts" is enabled.

    **Key Fields:**

    * `ID` — Unique identifier
    * `DATE_MODIFY` — Replication key
    * `CATEGORY_ID` (funnel), standard and custom (`UF_*`) deal fields
  </Accordion>

  <Accordion title="deal_stage_history">
    Stream for deal stage (pipeline step) change history.

    **Key Fields:**

    * Identifiers and timestamps for stage transitions; structure depends on Bitrix API.
  </Accordion>

  <Accordion title="departments">
    Stream for company structure (departments). Requires scope `departments`.

    **Key Fields:**

    * `ID` — Unique identifier
    * `NAME` — Department name
    * `SORT`, `PARENT`, `UF_HEAD`
  </Accordion>

  <Accordion title="lead_fields">
    Metadata stream for lead field definitions.

    **Key Fields:**

    * `id`, `type`, `title`, `statusType`, `isRequired`, `items`, `listLabel`, `formLabel`, etc.
  </Accordion>

  <Accordion title="leads">
    Stream for CRM leads. Schema is built from the Bitrix API.

    **Key Fields:**

    * `ID` — Unique identifier
    * `DATE_MODIFY` — Replication key
    * Standard and custom lead fields from your portal
  </Accordion>

  <Accordion title="lead_stage_history">
    Stream for lead stage change history.

    **Key Fields:**

    * Identifiers and timestamps for stage transitions; structure depends on Bitrix API.
  </Accordion>

  <Accordion title="open_lines">
    Stream for Open Lines (communication channels) configuration. Requires scope `imopenlines`.

    **Key Fields:**

    * `ID`, `ACTIVE`, `LINE_NAME`, `CRM`, `DATE_CREATE`, `DATE_MODIFY`
    * Queue, welcome, worktime, KPI and other channel settings
  </Accordion>

  <Accordion title="product">
    Stream for CRM product catalog. Schema is built from the Bitrix API.

    **Key Fields:**

    * `ID` — Unique identifier
    * `TIMESTAMP_X` — Replication key
    * Standard and custom product fields from your portal
  </Accordion>

  <Accordion title="product_fields">
    Metadata stream for product field definitions.

    **Key Fields:**

    * `id`, `type`, `title`, `statusType`, `isRequired`, `items`, `listLabel`, `formLabel`, etc.
  </Accordion>

  <Accordion title="spa_types">
    Stream for SPA (Smart Process Automation) entity types. Used to discover dynamic SPA streams.

    **Key Fields:**

    * Entity type identifiers used to build `spa_{entityTypeId}` and `spa_fields_{entityTypeId}` streams.
  </Accordion>

  <Accordion title="spa_{entityTypeId} / spa_fields_{entityTypeId}">
    Dynamic streams created per SPA entity type in your Bitrix portal (e.g. `spa_128`, `spa_fields_128`). Data and field metadata for each SPA entity type; structure depends on your Bitrix configuration.
  </Accordion>

  <Accordion title="status_list">
    Stream for CRM status list (e.g. deal/lead status options).

    **Key Fields:**

    * Status identifiers, labels and configuration; structure depends on Bitrix API.
  </Accordion>

  <Accordion title="users">
    Stream for Bitrix24 users. Requires scopes `user`, `user_brief`, `user_basic`.

    **Key Fields:**

    * `ID` — Unique identifier
    * `NAME`, `LAST_NAME`, `EMAIL`, `ACTIVE`
    * `LAST_LOGIN`, `DATE_REGISTER`, `WORK_POSITION`, `UF_DEPARTMENT`
    * `PERSONAL_*`, `WORK_*` and other profile fields
  </Accordion>
</AccordionGroup>

# Data Model

CRM entities relate as follows: **Contacts** and **Companies** are standalone; **Deals** and **Leads** can be linked to contacts and companies. **Activities** can be attached to deals, contacts, and other entities. **product** is the catalog; **deal\_products** links products to deals. **Users** and **departments** describe your organization; **calls** and **open\_lines** are telephony and communication data. Field streams (`*_fields`) describe the schema of their entity (contact, company, deal, lead, activity, product, SPA).

# Implementation Notes

* **Optional streams**: `deal_comments` and `deal_products` appear only when enabled in the source configuration and add one API call per deal; use only if needed.
* **Deal filtering**: Use "Filter deal category IDs" to sync only specific funnels and reduce volume.
* **Rate limits**: If Bitrix returns high "operating time" values, the tap pauses automatically; you can adjust "Operating time threshold" if needed.
* **SPA streams**: `spa_types` is synced first; then one `spa_{id}` and one `spa_fields_{id}` stream per SPA entity type in your portal.

## Skills for agents

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

<Card title="Download Bitrix24 skills file" icon="wand-magic-sparkles" href="/sources/bitrix.md">
  Bitrix24 connector documentation as plain markdown, for use in AI agent contexts.
</Card>
