CRM Update -- создание и обновление записей в Bitrix24
Описание
Заголовок раздела «Описание»Процессор CRM Update создает и обновляет записи в CRM-системе Bitrix24. Он поддерживает операции create, update и upsert (создать или обновить) для сущностей: компании, контакты, лиды, сделки и реквизиты. Процессор поддерживает рекурсивную обработку связанных сущностей до 3 уровней вложенности и автоматическое связывание созданных записей между собой.
Ключевая особенность — гибкая система маппинга полей с поддержкой переменных {{processorName.field}}, что позволяет передавать данные из любого предыдущего процессора в цепочке.
Сценарии использования
Заголовок раздела «Сценарии использования»- Автоматическое создание компаний и контактов в CRM по данным из реестров
- Обновление реквизитов компаний (ИНН, ОГРН, адрес) из данных обогащения
- Создание лидов из результатов поиска в Telegram или HH
- Upsert-операции: создание новых записей или обновление существующих по ИНН
- Создание сделок с привязкой к компаниям и контактам
- Массовая загрузка данных из файлов в CRM с автоматическим связыванием сущностей
Конфигурация
Заголовок раздела «Конфигурация»| Параметр | Тип | Обязательный | По умолчанию | Описание |
|---|---|---|---|---|
| connectionId | string | Да | — | ID подключения к Bitrix24 CRM |
| operation | "create" / "update" / "upsert" | Нет | "upsert" | Тип операции |
| maxPackets | number | Нет | 50 | Максимальное количество входных пакетов для обработки |
| query | object | Да | — | Структура запроса на обновление |
| query.entityType | "lead" / "deal" / "company" / "contact" / "requisite" | Да | — | Тип основной сущности |
| query.lookupConditions | array | Условно | [] | Условия для поиска существующей записи (обязательны для update и upsert) |
| query.lookupConditions[].field | string | Да | — | Код поля CRM |
| query.lookupConditions[].operator | string | Да | — | Оператор сравнения |
| query.lookupConditions[].value | string | Да | — | Значение. Поддерживает переменные: {{registrySearch.inn}} |
| query.fieldMappings | array | Да | — | Маппинг полей для записи |
| query.fieldMappings[].field | string | Да | — | Код поля CRM (например, TITLE, UF_CRM_INN, PHONE) |
| query.fieldMappings[].value | string | Да | — | Значение. Поддерживает переменные: {{registrySearch.companyName}} |
| query.fieldMappings[].isRequired | boolean | Нет | false | Обязательное ли поле |
| query.relatedEntities | array | Нет | [] | Связанные сущности для создания/обновления (до 3 сущностей на каждом уровне) |
| query.comment | string | Нет | — | Комментарий для Timeline основной сущности. Поддерживает переменные |
| onNotFoundInUpdate | "skip" / "error" / "create" | Нет | "skip" | Поведение при отсутствии записи в режиме update: пропустить, ошибка или создать |
| onMultipleFound | "update-first" / "update-all" / "skip" | Нет | "update-first" | Поведение при нескольких совпадениях: обновить первую, обновить все или пропустить |
Конфигурация связанных сущностей (relatedEntities)
Заголовок раздела «Конфигурация связанных сущностей (relatedEntities)»Каждая связанная сущность поддерживает те же параметры, что и основная (entityType, operation, lookupConditions, fieldMappings), плюс возможность вложенности:
| Параметр | Тип | Описание |
|---|---|---|
| entityType | string | Тип сущности |
| operation | string | Тип операции для этой сущности |
| lookupConditions | array | Условия поиска |
| fieldMappings | array | Маппинг полей |
| nestedRelatedEntities | array | Вложенные связанные сущности (до 3 уровней глубины) |
| comment | string | Комментарий для Timeline этой сущности |
Входные данные
Заголовок раздела «Входные данные»Процессор принимает DataPackets от родительских процессоров. Данные из цепочки (chainData) используются для подстановки переменных в полях и условиях.
Типичные источники:
- Registry Search — данные компаний из реестров (ИНН, ОГРН, название, адрес, руководитель)
- Contact Search — контактные данные ЛПР (email, телефон, ФИО)
- Company Info V2 — расширенные данные о компании (финансы, лицензии)
- HH Search — данные о работодателях из вакансий
- GPT Filter — обогащенные ИИ-данные (триггеры, классификации)
Выходные данные
Заголовок раздела «Выходные данные»Для каждого обработанного входного пакета создается выходной DataPacket с результатами операций:
{ "companyId": "12345", "companyOperation": "created", "contactId": "67890", "contactOperation": "updated", "dealId": "11111", "dealOperation": "created"}Итоговая статистика (в outputData результата выполнения)
Заголовок раздела «Итоговая статистика (в outputData результата выполнения)»{ "processedPackets": 50, "successful": 48, "failed": 1, "skipped": 1, "executionTimeMs": 12500, "companyCount": 48, "contactCount": 45, "dealCount": 48}Стоимость
Заголовок раздела «Стоимость»Процессор CRM Update использует API Bitrix24 через webhook и не расходует токены платформы. Стоимость определяется только лимитами API вашего Bitrix24.
Примеры
Заголовок раздела «Примеры»Создание компании с контактом (upsert)
Заголовок раздела «Создание компании с контактом (upsert)»{ "connectionId": "conn_123", "operation": "upsert", "query": { "entityType": "company", "lookupConditions": [ { "field": "UF_CRM_INN", "operator": "equals", "value": "{{registrySearch.inn}}" } ], "fieldMappings": [ { "field": "TITLE", "value": "{{registrySearch.companyName}}" }, { "field": "UF_CRM_INN", "value": "{{registrySearch.inn}}" }, { "field": "UF_CRM_OGRN", "value": "{{registrySearch.ogrn}}" }, { "field": "ADDRESS", "value": "{{registrySearch.legalAddress}}" }, { "field": "PHONE", "value": "{{contactSearch.phone}}" } ], "relatedEntities": [ { "id": "rel_contact", "entityType": "contact", "operation": "upsert", "lookupConditions": [ { "field": "EMAIL", "operator": "equals", "value": "{{contactSearch.email}}" } ], "fieldMappings": [ { "field": "NAME", "value": "{{contactSearch.firstName}}" }, { "field": "LAST_NAME", "value": "{{contactSearch.lastName}}" }, { "field": "EMAIL", "value": "{{contactSearch.email}}" }, { "field": "PHONE", "value": "{{contactSearch.phone}}" } ] } ], "comment": "Создано автоматически из воронки aiWarmUp" }, "onNotFoundInUpdate": "create", "onMultipleFound": "update-first"}Создание лида из данных HeadHunter
Заголовок раздела «Создание лида из данных HeadHunter»{ "connectionId": "conn_123", "operation": "create", "query": { "entityType": "lead", "lookupConditions": [], "fieldMappings": [ { "field": "TITLE", "value": "HH: {{hhSearch.employerName}}" }, { "field": "COMPANY_TITLE", "value": "{{hhSearch.employerName}}" }, { "field": "SOURCE_ID", "value": "WEB" }, { "field": "SOURCE_DESCRIPTION", "value": "HeadHunter - вакансия {{hhSearch.name}}" }, { "field": "COMMENTS", "value": "Вакансия: {{hhSearch.name}}\nЗП: {{hhSearch.salaryFrom}} {{hhSearch.salaryCurrency}}" } ] }}Обновление реквизитов компании
Заголовок раздела «Обновление реквизитов компании»{ "connectionId": "conn_123", "operation": "update", "query": { "entityType": "company", "lookupConditions": [ { "field": "UF_CRM_INN", "operator": "equals", "value": "{{registrySearch.inn}}" } ], "fieldMappings": [ { "field": "ADDRESS", "value": "{{registrySearch.legalAddress}}" }, { "field": "UF_CRM_DIRECTOR", "value": "{{registrySearch.director}}" } ], "relatedEntities": [ { "id": "rel_requisite", "entityType": "requisite", "operation": "upsert", "lookupConditions": [ { "field": "RQ_INN", "operator": "equals", "value": "{{registrySearch.inn}}" } ], "fieldMappings": [ { "field": "RQ_INN", "value": "{{registrySearch.inn}}" }, { "field": "RQ_OGRN", "value": "{{registrySearch.ogrn}}" }, { "field": "RQ_COMPANY_FULL_NAME", "value": "{{registrySearch.fullName}}" }, { "field": "RQ_ADDR", "value": "{{registrySearch.legalAddress}}" } ] } ] }, "onNotFoundInUpdate": "skip", "onMultipleFound": "update-first"}Связанные процессоры
Заголовок раздела «Связанные процессоры»- CRM Search — используется перед CRM Update для предварительной проверки наличия записей в CRM
- Registry Search — основной источник данных о компаниях для создания/обновления записей
- Contact Search — предоставляет контактные данные ЛПР для создания контактов в CRM
- Company Info V2 — предоставляет расширенную информацию о компании
- INN Search — ищет ИНН компании по названию для последующего создания в CRM
- GPT Filter — фильтрует данные перед отправкой в CRM, оставляя только релевантные записи