Bitrix24
Extract your Bitrix24 CRM data and load it directly into your data warehouse with Renta. Centralize deals, leads, contacts, companies, and user-defined fields for advanced analytics, sales funnel reporting, and conversion tracking — all without writing a single line of code.
Authentication
Renta connects to Bitrix24 using an incoming webhook — a permanent, scoped API token generated directly in your Bitrix24 portal. No OAuth flow or third-party app installation is required.
The webhook URL acts as a combined endpoint and secret. It encodes your portal address, user ID, and access token in a single string. Treat it like a password and do not share it publicly.
Connect Bitrix24 source
Setting up the Bitrix24 integration takes about five minutes. You will create an incoming webhook in your Bitrix24 portal and paste the URL into Renta.
In your Bitrix24 portal, navigate to Developer resources > Other > Incoming webhook.
- Webhook URL.
Copy the generated URL — you will need it later. - Permissions configuration.
Enable at minimum the CRM (crm) and Users (user) scopes. If you plan to sync tasks, telephony records, calendar events, or disk files in the future, enable relevant scopes now (e.g., Tasks, Telephony, Calendar). Permissions can be updated at any time without changing the webhook URL. - Save.
Click the Save button.

In Renta, open Connections > Catalog. Find Bitrix24 in the CRM category and click its card to open the connection form.

Fill in the connection form:
- Source name.
Enter a descriptive name for this connection. This name is only used in the Renta interface. - Webhook URL.
Paste the full webhook URL copied from Bitrix24. - Save.
Click Save. Renta will validate the webhook to ensure the portal is reachable and scopes are correct.

Pipeline configuration
When creating a pipeline with the Bitrix24 source, configure the following settings.

Report types
Select the CRM object you want to export. Each report type maps to one destination table and one Bitrix24 REST API endpoint.
| Report type | Bitrix24 API method | Description |
|---|---|---|
| Deals | crm.deal.list | Sales deals with stage, pipeline, opportunity amount, and responsible manager. |
| Leads | crm.lead.list | Inbound leads with source, status, phone, email, and user-defined fields. |
| Contacts | crm.contact.list | Individual contacts linked to companies, deals, and leads. |
| Companies | crm.company.list | Company profiles with industry, revenue, and contact details. |
| Activities | crm.activity.list | CRM activities including calls, emails, and meetings linked to deals or leads. |
| Users | user.get | Bitrix24 portal users — used for joining with assigned_by_id and responsible_id fields. |
| Deal categories | crm.dealcategory.list | Sales pipeline definitions (funnel names and sort order). |
| Deal stages | crm.status.list | Stage definitions for all pipelines, including stage names, colors, and semantic labels (won/lost/in progress). |
| Currencies | crm.currency.list | Currency reference table with codes, symbols, and exchange rates. Base currency is set at the portal level. |
| Userfields | crm.*.userfield.list | Metadata for all user-defined fields (UF_CRM_*) across deals, leads, contacts, and companies — field names, types, and enumeration values. |
Parameters
Select the specific fields to include in your destination table. Your dataset schema is defined entirely by the parameters you choose here. Unselected fields will not appear in the output.
To enable incremental loading for deals, leads, contacts, companies, and activities, include the date_modify (or last_updated for activities) parameter. Without this field, Renta will perform a full snapshot on every run.
Date range
You can limit the volume of extracted data instead of exporting all your records (for example, all leads). In the Date range, specify a period, and Renta will filter the data based on the DATE_MODIFY field. For instance, if you only need leads that were updated after a specific date, you can use Date range for this.
Sync strategy
The table below describes how Renta synchronizes each Bitrix24 report type.
| Strategy | Supported report types | Description |
|---|---|---|
| Incremental (merge) | Deals, Leads, Contacts, Companies, Activities | Renta fetches only records modified since the last successful run, using the Bitrix24 DATE_MODIFY filter. Records are upserted into the destination table by their unique id. A 3-hour safety overlap is applied to the fetch window to account for Bitrix24 replication lag — duplicate records are automatically collapsed at the destination. |
| Full snapshot | Users, Deal categories, Deal stages, Currencies, Userfields | These tables represent configuration dictionaries that have no modification-date field. Renta reloads the full dataset on every run. The tables are small (typically fewer than 500 rows) so the performance impact is negligible. |
Incremental loading requires a merge-capable destination such as Google BigQuery or ClickHouse. When connected to other destinations, Renta falls back to a full overwrite of the selected date range.
Custom fields
Bitrix24 allows portal administrators to add user-defined fields (prefixed UF_CRM_) to deals, leads, contacts, and companies. Renta captures all user-defined fields automatically — no manual schema configuration is required.
User-defined field values are stored in the custom_fields_values column as a structured array. Each entry in the array contains:
| Subfield | Description |
|---|---|
| field_code | The Bitrix24 internal field key, such as UF_CRM_1719402824087. |
| field_name | The human-readable label configured in the Bitrix24 admin panel, such as "Lead quality score". |
| field_type | The field data type as defined in Bitrix24: string, integer, enumeration, boolean, datetime, etc. |
| field_value | The field value for this record, stored as a text string. List values are serialized as JSON. |
| field_id | The numeric ID of the field definition. |
| is_computed | Indicates whether the field is computed automatically by Bitrix24. |
To query user-defined fields in BigQuery, unnest the array and filter by field code or name:
SELECT
id,
title,
cf.field_name AS custom_label,
cf.field_value AS custom_value,
cf.field_type AS custom_type
FROM `project.dataset.deals` d,
UNNEST(custom_fields_values) AS cf
WHERE cf.field_name = 'Lead quality score';The userfields report type exports a separate reference table that maps every UF_CRM_* key to its label, type, and — for enumeration fields — the full list of allowed values. Join this table with custom_fields_values to decode numeric enum IDs into human-readable labels.
Multi-value fields
For leads, contacts, and companies, Bitrix24 stores phone numbers, email addresses, website links, and messenger accounts as multi-value fields. Renta exports each of these as a structured array column.
| Column | Contains |
|---|---|
| phone | Phone numbers with value and type (Work, Home, Mobile, Fax, etc.). |
| Email addresses with value and type (Work, Home, etc.). | |
| web | Website URLs with value and type (Work, Home, Facebook, etc.). |
| im | Messenger account IDs with value and type (Telegram, WhatsApp, Skype, etc.). |
To extract all work phone numbers for leads in BigQuery:
SELECT
id,
title,
p.value AS phone_number
FROM `project.dataset.leads` l,
UNNEST(phone) AS p
WHERE p.value_type = 'WORK';Sync scheduling
Renta supports automatic scheduling, API triggers, and integration with external orchestrators such as Apache Airflow, Dagster, and Prefect. See the scheduling documentation for details.
Ready to get started?
Build your data pipeline today or get a personalized demo. Start free!
Need help?
Get expert support to ensure your project succeeds. We're here to help!
Feature requests?
Help shape our product! Share your ideas for new features and integrations.