Bitrix24-ERP Integration: Design, Development, Support
You're launching production, but your managers see inventory that's three days old in CRM. Accounting issues invoices in ERP, but the sales team doesn't know about payments. This is the result of a disconnect between front-office (Bitrix24) and back-office (ERP). We design and implement seamless synchronization so that data flows without manual entry.
Typical synchronization scenarios cover counterparty directories, product catalogs with stock levels, orders, and financial documents. For counterparties, the key is TIN; for products, it's XML_ID from 1C. Mapping errors lead to duplicates and data loss, so analytics gets special attention. Each scenario requires configuring an exchange mechanism: via REST API, files, or message queues.
Choosing the architecture is a key step. Direct point-to-point connection is an anti-pattern—it doesn't scale and breaks when APIs change. We use an integration bus (RabbitMQ or Kafka), a microservice adapter, or file exchange. The choice depends on the number of integrated systems, budget, and performance requirements. Our comparison shows that a bus is 3–5 times more reliable than direct connection, with a payback period of 2–3 months. The budget for adapter development varies, but in most cases it doesn't exceed half a year's salary of one developer and pays off by eliminating manual labor.
Typical Synchronization Scenarios
- Counterparty directories: client from lead → company in CRM → counterparty in ERP. Link key: TIN in a custom field.
- Product catalog and stock: ERP is the source of truth. Bitrix24 receives current stock and prices via API or queues.
- Orders: deal in "Contract signed" status → order in ERP. Execution status from ERP updates the deal stage.
- Financial documents: invoices from CRM → ERP for accounting, payments from ERP → CRM for closing deals.
How to Choose Integration Architecture?
Direct point-to-point connection is an anti-pattern. It breaks quickly when APIs change and doesn't scale. According to Bitrix24 REST API documentation, the recommended approach is using webhooks and external handlers. We apply three proven patterns:
- Integration bus (ESB/iPaaS). Bitrix24 and ERP communicate via RabbitMQ or Apache Kafka. The bus normalizes formats, guarantees delivery, and stores history. Enterprise standard.
- Microservice adapter. A lightweight PHP service that knows both APIs. It receives events, transforms them, and calls endpoints. Simpler to implement but less scalable than a bus when integration grows.
- File exchange via FTP/S3. For ERPs without API (legacy SAP versions, specific 1C configurations). The ERP exports XML/CSV on a schedule, the adapter parses and writes to Bitrix24. Latency is a few minutes.
Our comparison shows that a bus is 3–5 times more reliable and faster to debug than direct connection. Integration payback is 2–3 months by eliminating manual data entry.
Integration with 1C:ERP
The most common request in the CIS market. Technical options:
- Via REST API from Bitrix24 + HTTP service in 1C. 1C publishes endpoints, the adapter initiates requests for synchronous operations (e.g., stock check). For asynchronous events, 1C sends a webhook to Bitrix24.
- Via standard CommerceML. We extend the protocol for CRM scenarios: counterparties, orders, invoices. A compromise option.
- Via an intermediate database. 1C writes changes to a separate PostgreSQL, the adapter reads and publishes. Slower but isolates ERP from direct load.
Similar approaches apply to integration with SAP, Odoo, and other ERPs.
Why Data Transformation Matters?
Data models don't match. Example: in ERP, a counterparty is a legal entity with TIN/KPP and contracts. In Bitrix24, it's crm.company with fields and contacts. Mapping looks like:
| ERP Entity | Bitrix24 Entity | Link Key |
|---|---|---|
| Counterparty | crm.company | TIN (UF_INN) |
| Contract | crm.deal (type "Contract") | Contract number (UF_CONTRACT_ID) |
| Product item | Catalog product (crm.product) | 1C code (XML_ID) |
| Customer order | crm.deal | ERP order number (UF_ERP_ORDER_ID) |
| Invoice | crm.invoice | ERP invoice number (UF_ERP_INVOICE_ID) |
Keys are stored in custom fields UF_*—this ensures idempotency.
How to Build Integration: Step-by-Step Plan
- Analytics and data map: define flows, mapping, master system.
- Architecture selection: bus, adapter, or file exchange.
- Prototype development: one scenario to test connectivity.
- Implement all scenarios, including transformation and error handling.
- Testing with real data: edge cases, load, conflicts.
- Historical data migration and pilot run.
- Monitoring and post-launch support.
Conflict Management
In bidirectional sync, conflicts are inevitable. Strategies:
- Master system: for each data type, assign a source of truth. Prices and stock—from ERP, comments—from Bitrix24.
- Timestamp-based merge: the later record wins. Simple but breaks on simultaneous changes.
- Locking: a field is marked as "in sync" until confirmation is received. Reliable but complex to implement.
What's Included in the Work
- Analytics and data map (flow diagram, field mapping)
- Adapter development or bus setup
- Testing with real data (edge cases, load)
- Documentation and team training
- 3 months of post-launch support
When to Replace Standard 1C Exchange?
Standard CommerceML works for e-commerce, but for CRM scenarios its functionality is often insufficient. We either extend it or implement a separate adapter via 1C HTTP services and Bitrix24 REST API. This provides flexibility and removes CommerceML limitations.
Monitoring and Debugging
Integration is a long-lived system. You need control:
- Message queue size, number of failed messages
- Transformation errors (type mismatch, missing directories)
- Sync lag (time from source change to target arrival)
- Dashboard in Grafana or Bitrix24 standard reports
Project Phases
| Phase | Content | Duration |
|---|---|---|
| Analytics and TOR | Data map, scenarios, architecture selection | 2–3 weeks |
| Adapter prototype | One scenario (e.g., counterparty sync) | 1–2 weeks |
| Main scenario development | Full set of integration flows | 3–6 weeks |
| Directory mapping | Align master data to a common format | 1–2 weeks |
| Testing | Edge cases, load, conflicts | 1–2 weeks |
| Historical data migration | Transfer accumulated base | 1–3 weeks |
| Pilot and stabilization | Work on limited data volume | 1–2 weeks |
An integration project is not a one-time task, but a long-term system that needs support when any platform is updated. Factor this into your budget from the start.
Contact us for a preliminary audit and roadmap. Order integration development—we'll assess your architecture for free.

