Pipelines and records
Stages with clear outcomes, required data and ownership rules. Separate pipelines for different sales cycles.
We configure an established CRM around your team: pipelines, tasks, permissions, documents and connections to other systems.
Explore an example ↘Website enquiries, incoming calls and emails should enter one shared process. We define who handles each enquiry, what each stage means and when another team gets involved. Automation supports these rules by assigning actions, reminding people of deadlines and preserving the history.
Stages with clear outcomes, required data and ownership rules. Separate pipelines for different sales cycles.
The next action appears at the right moment. We test re-entering a stage, changing a deadline and reassigning the owner.
Approvals, purchasing and delivery with their own records and stages. We check feature availability for the selected plan and edition.
Website, email and telephony connect to the customer record. We account for missed enquiries, repeat contacts and workload distribution.
Employees see the records and actions they need. We check exports, files and integration access as well as the menus.
Enquiry sources, time spent at each stage and reasons for lost deals. We check data quality before building metrics.
A learning model running in your browser. It creates no real documents or payments. Simulate a failure, then retry: the result should not be duplicated.
Run a scenario.
We do not promise that automation rules can implement every process. We check capabilities on the actual portal and account for interface limits in the architecture.
| Level | What it covers | When to go further |
|---|---|---|
| Standard configuration | Fields, pipelines, permissions, tasks and available automation | When the rules require actions that standard tools cannot perform |
| Integration and applications | Exchange with the website, 1C and external services | When API or structural limits affect a core workflow |
| Custom module | Special calculations, portals and industry-specific objects | We agree boundaries and data ownership before development |
We preserve the contact, enquiry contents and source. A repeated request is matched to the existing event.
Confirmed payments update the balance. Cancellations, refunds and partial payments follow separate rules.
Once the agreed conditions are met, we create a task or Smart Process record. Ownership, deadlines and results stay connected across departments.
We review current pipelines, channels and unused settings. We identify what must be preserved to keep existing work running.
We agree records, stages, roles and automation. We distinguish standard platform capabilities from custom development.
We test repeat enquiries, deal handovers, payments, rejection and service outages. Employees verify their own scenarios.
We migrate data using the agreed mapping, reconcile results and hand over instructions. We monitor the first enquiries together with the team.
Audit, configuration, customisation and integrations. For a full implementation, we first define the scope and estimate each stage.
Bitrix24 licences, applications and external services are priced separately. When choosing cloud or on-premises deployment, we consider limits, hosting and ongoing maintenance.
Yes. We first document the current rules and dependencies. Before removing unused fields or automation, we check where they are used and agree the changes.
The choice depends on required features, hosting requirements and maintenance capacity. We compare editions for your scenario, including licences, limits and operating costs.
We map fields and relationships, run a trial import and reconcile the results. We separately check history, attachments, duplicates and export capabilities in the previous system.
We design queues, rate limiting and API response handling. Retries follow defined rules, and unfinished operations remain visible in the log.
Data models, exchange rules, permissions and operations. Open a topic or search by keyword.
The website, accounting system and CRM serve different purposes. The website accepts inquiries, Bitrix24 stores customer interaction history, and 1C manages documents and accounts. Integration connects these processes through agreed interfaces; it should not modify another system's database tables directly.
The website, 1C and external services produce events: a new inquiry, a posted payment or an order update.
Validates the format, stores the event, matches records and queues the operation.
Receives a contact, deal or task through the API. The result is recorded in the integration log.
Each operation records the event ID, source, related entity and processing result. An API response confirms an individual operation, not necessarily completion of the entire business process: creating a deal may still need to be followed by creating a task.
Before development, we establish ownership of each field. If phone numbers are edited in CRM and payment totals are calculated in 1C, reverse synchronization must not overwrite them unconditionally. To prevent update loops, we track the source of changes and compare actual values before updating.
The form sends contact details, the inquiry, the originating page and traffic source. The server checks required fields again: browser validation improves usability but does not replace server validation. The inquiry ID is created once and retained during redelivery.
We save the inquiry before contacting CRM. Receipt can be confirmed to the visitor while delivery to Bitrix24 is tracked separately.
We normalize phone numbers and email addresses and look for related contacts. Multiple matches require an agreed resolution rule or manual review.
Depending on the CRM mode, we create a lead or a contact and deal. We specify the pipeline, owner, source and required portal fields.
We save the IDs of created objects. If the next step fails, processing resumes from the last confirmed operation.
{
"entity_type": "CONTACT",
"type": "EMAIL",
"values": [
"anna@example.test"
]
}IDs and values in this example are illustrative.
| Situation | Action |
|---|---|
| The same event arrives again | Check the log and return the saved result. Do not create another deal without checking. |
| The customer submits another form | Treat this as a separate inquiry: link it to the contact and apply the repeat-sales policy. |
| Several contacts match | Do not choose an arbitrary record. Record the ambiguity and send it for review. |
Searching by phone or email helps identify the customer but does not itself prevent duplicate deals. That requires separate tracking of events and their related CRM objects. Contact merging needs its own policy, because automatic merging may affect sales history.
The accounting system is the source of payment information. CRM receives the result of an agreed accounting event, such as posting a payment document. The integration first uses the saved mapping to find the order and deal, then updates amounts and payment indicators.
RUB 250,000 — the agreed order total.
RUB 100,000 — a confirmed partial payment.
RUB 150,000 — the balance in this example.
A partial payment does not mean the order is fully paid or ready for delivery. Stage transitions depend on the contract: they may require full payment, a specified deposit or manual approval by a manager. This example covers one order in one currency, with no refunds.
| Question | Exchange rule |
|---|---|
| An individual amount or a running total? | Send either individual payments with unique IDs or the current account balance with a version. Do not mix these models. |
| How are documents linked? | Maintain a mapping between order, deal and accounting document IDs. An amount and customer name are not reliable keys. |
| How are refunds handled? | Send a separate refund event or an updated account balance, then recalculate the outstanding amount. |
| What if a posting is reversed? | Process changes to the document's status, not just the initial receipt of money. |
| What if events arrive out of order? | Compare versions or request the current state so an older event cannot overwrite a newer one. |
After a successful update, save confirmation from CRM. If the deal mapping is missing, keep the event available for reprocessing after the mapping is repaired. Do not create a new deal merely because a payment could not be linked automatically.
An order enters delivery when the agreed conditions are met. For example, the contract is confirmed, the deposit has arrived, an assignee is selected and the specification is complete. Moving a deal to a stage may not be sufficient: some conditions are checked by the integration server or the portal itself.
Check the stage, payment and required data. Return an incomplete order to its owner with a clear list of missing information.
Look for a saved link between the deal and task. A repeated event must not create a second project.
Create a task or use the agreed project mechanism. Assign an owner and pass a link to the deal.
Save the task ID. Update return statuses under separate rules: completing one task does not always mean the order is complete.
{
"fields": {
"TITLE": "Start the project for deal #142",
"RESPONSIBLE_ID": 7,
"UF_CRM_TASK": [
"D_142"
]
}
}IDs and values in this example are illustrative.
This example creates a task linked to a deal. On a real portal, use an existing user and account for required custom fields. Deadlines, observers, checklists and scope should follow the company's process rather than being identical for every order.
The data map defines more than field names. It explains who holds the source value, which changes are allowed and how to distinguish missing data from an intentional field reset. It is a core document for development and acceptance testing.
| Data | Destination / purpose | Rule |
|---|---|---|
| Inquiry ID | Integration log and CRM mapping | Unique within the source; unchanged during retries. |
| Name and contact details | Contact or lead | Normalize phone and email; retain original values under the agreed policy. |
| Inquiry subject | Deal title | A title the sales manager can understand, with no internal secrets. |
| Source and UTM parameters | CRM attribution fields | Send available values; do not invent missing tracking parameters. |
| Amount and currency | Deal / accounts | Always send the currency with the amount; agree on precision and rounding. |
| Products and services | Product line items | Match by a stable ID or SKU and check units of measure. |
| Owner | Portal user | Check that the user exists and is available; define a fallback assignment. |
| Stage | Stage in the relevant pipeline | Use the ID, not the display name. Check that the transition is permitted. |
| Event date | Log and business fields | Include the time zone; distinguish event time from delivery time. |
| External order ID | Mapping table | Links the website, 1C and CRM; cannot be replaced by the order name. |
For updates, explicitly define how empty values are handled. An omitted field usually means "leave unchanged", while an explicitly empty value may mean "clear" if that is allowed. Verify this behavior for each API method used.
Retrieve the available fields and their characteristics for the relevant CRM entity type. Required fields can depend on portal settings and the stage. After configuration changes, review the data map and test it against sample scenarios.
The integration server makes requests to Bitrix24. The visitor's browser must not contain a secret webhook URL or OAuth token. Choose the connection method based on the number of portals, required events and access lifecycle.
| Option | When to consider it | What to plan for |
|---|---|---|
| Inbound webhook | Server-side exchange with a specific portal within the available permissions | Server-side secret storage, access revocation, user permissions and availability of required methods. |
| OAuth application | An installed application with managed portal authorization | Token acquisition and refresh, revocation handling, minimal scopes and the installation lifecycle. |
{
"entityTypeId": 2,
"fields": {
"title": "Website development",
"opportunity": 250000,
"currencyId": "RUB",
"assignedById": 7
}
}IDs and values in this example are illustrative.
The crm.item.add method creates a CRM item; entityTypeId: 2 in this example represents a deal. This illustrates the parameter structure, not a universal ready-to-run request: a particular portal may require additional fields and permissions. Creating an item can also trigger configured automation, so review automation rules and workflows.
The handler stores the request result and the ID of the created entity. Analyze the method response for errors rather than relying only on the HTTP status. Before launch, check the required capabilities on the actual portal and keep test and production settings separate.
A queue separates event receipt from delivery to CRM. If an external service is temporarily unavailable, the accepted event remains in storage for later processing. Preserve the order of related changes where it affects the result, such as updates to the same order.
The event is stored with its source, ID, timestamp and payload.
The worker checks mappings, calls the API and records the confirmed result.
Schedule another attempt with an increasing delay and a small amount of random jitter.
After retries are exhausted, or when data is invalid, the operation enters a separate operator review queue.
The hardest case is a response lost after a record was successfully created. The server does not know whether the deal exists, so blindly retrying can create a duplicate. Reconcile using saved mappings or an agreed external key before retrying. If the result cannot be established automatically, send the operation for review.
Define the number of attempts, maximum waiting time and alert conditions separately for each process. Account for REST API limits when setting queue throughput; check current documentation and portal conditions for exact values.
The log should explain what happened to a particular inquiry and what needs to happen next. Link all steps with a single operation ID and show the business context: order, deal, event type and current status.
| Situation | Automatic response | Owner action |
|---|---|---|
| Timeout / connection lost | Check the uncertain outcome, then schedule a safe retry | Review the operation if the result cannot be recovered. |
| API rate limit | Reduce throughput and delay retries | Check queue growth and how long events are waiting. |
| Access denied / authorization revoked | Pause affected operations and send an alert | Restore access and check permissions. |
| Required field missing | Keep the error explanation; do not endlessly resend the same invalid request | Correct the data or the field mapping. |
| Related deal not found | Keep the event pending until it can be matched | Restore the order mapping. |
| Version conflict / stale event | Check the current state | Resolve the difference using the agreed source priority. |
Monitor the age of the oldest event, queue size and delivery time as well as error counts. Even without explicit errors, a growing queue can mean updates are arriving too late for the business.
Operators need a safe way to retry a specific operation after correcting its cause. Record the retry and its initiator in the history. Mask sensitive diagnostic data; make full payloads available only where justified by the task and access settings.
Grant only the permissions the integration needs. A full administrator account should not be the default. Check permissions to read CRM data, create the required entities, work with tasks and receive the events in use separately.
| Participant | Required access | Restrictions |
|---|---|---|
| Integration server | Required API methods and queue storage | Unnecessary API scopes; browser access to secrets. |
| Integration operator | Statuses, error explanations and authorized retries | Token visibility and uncontrolled changes to source data. |
| Administrator | Connection settings and access revocation | Sharing secrets in messages, screenshots or shared files. |
| CRM sales manager | Work with customers and orders within their permissions | Bypassing standard permissions through the integration interface. |
Store secrets in protected server configuration and exclude them from logs, repositories and client-side files. Authenticate incoming messages using the mechanism supported by the source; simply knowing the handler URL is not sufficient.
Before launch, define retention periods for events, logs and backups, what personal data is stored and who can access it. Test connection revocation separately: operations should stop in a controlled way rather than continue making endless unsuccessful requests.
Implementation delivers the agreed working integration and the materials needed to support it. Documentation must reflect the project's actual settings: a general architecture diagram cannot replace a technical description with a specific data map.
Data sources, exchange directions, trigger conditions and field ownership.
Field mappings, entity relationships, monitoring, retries and access recovery procedures.
Scenario test records, known limitations and support responsibilities.
| Test | Expected result |
|---|---|
| New website inquiry | Agreed CRM objects created; mappings and source recorded. |
| The same event arrives twice | No extra deal or double-counted payment. |
| New inquiry from an existing customer | Customer link retained; repeat-sales rules applied. |
| Partial payment and refund | Amounts and stages follow the agreed rules. |
| API outage and recovery | The event is retained; delivery resumes in a controlled way. |
| Response lost after creation | Reconciliation performed; uncertainty is not reported as success. |
| Permissions revoked | A clear error and alert appear; no unintended actions are performed. |
For every scenario, record the inputs and check the result in both systems and the log. Before enabling full-volume exchange, agree on how existing records are handled: initial migration and ongoing synchronization may require different rules.
The demo illustrates the process from inquiry to deal, from payment to a status change, and from a ready order to delivery. It uses sample data and does not confirm a connection to your portal or a particular 1C database.
| On this page | In an implementation project |
|---|---|
| A sample inquiry and sequence of actions | A real form, server-side validation, error handling and event storage. |
| Illustrative deals, amounts and users | Actual entities, permissions, pipelines and fields on your portal. |
| An illustrated successful scenario | Successful operations, retries, conflicts, service outages and recovery. |
| An explanation of the general architecture | An agreed data map, operational documentation and acceptance testing. |
To turn the example into a project, describe one real process, its data sources and the expected result. Then check system constraints, choose a connection method and agree on acceptance criteria. This makes it possible to assess the integration by its observable outcome, not merely by whether an API request is made.
Nothing found. Try another word.
Tell us about your task and existing systems.
We will define the first stage and scope of work.