Перейти к содержимому

CRM Update -- создание и обновление записей в Bitrix24

Процессор CRM Update создает и обновляет записи в CRM-системе Bitrix24. Он поддерживает операции create, update и upsert (создать или обновить) для сущностей: компании, контакты, лиды, сделки и реквизиты. Процессор поддерживает рекурсивную обработку связанных сущностей до 3 уровней вложенности и автоматическое связывание созданных записей между собой.

Ключевая особенность — гибкая система маппинга полей с поддержкой переменных {{processorName.field}}, что позволяет передавать данные из любого предыдущего процессора в цепочке.

  • Автоматическое создание компаний и контактов в CRM по данным из реестров
  • Обновление реквизитов компаний (ИНН, ОГРН, адрес) из данных обогащения
  • Создание лидов из результатов поиска в Telegram или HH
  • Upsert-операции: создание новых записей или обновление существующих по ИНН
  • Создание сделок с привязкой к компаниям и контактам
  • Массовая загрузка данных из файлов в CRM с автоматическим связыванием сущностей
ПараметрТипОбязательныйПо умолчаниюОписание
connectionIdstringДаID подключения к Bitrix24 CRM
operation"create" / "update" / "upsert"Нет"upsert"Тип операции
maxPacketsnumberНет50Максимальное количество входных пакетов для обработки
queryobjectДаСтруктура запроса на обновление
query.entityType"lead" / "deal" / "company" / "contact" / "requisite"ДаТип основной сущности
query.lookupConditionsarrayУсловно[]Условия для поиска существующей записи (обязательны для update и upsert)
query.lookupConditions[].fieldstringДаКод поля CRM
query.lookupConditions[].operatorstringДаОператор сравнения
query.lookupConditions[].valuestringДаЗначение. Поддерживает переменные: {{registrySearch.inn}}
query.fieldMappingsarrayДаМаппинг полей для записи
query.fieldMappings[].fieldstringДаКод поля CRM (например, TITLE, UF_CRM_INN, PHONE)
query.fieldMappings[].valuestringДаЗначение. Поддерживает переменные: {{registrySearch.companyName}}
query.fieldMappings[].isRequiredbooleanНетfalseОбязательное ли поле
query.relatedEntitiesarrayНет[]Связанные сущности для создания/обновления (до 3 сущностей на каждом уровне)
query.commentstringНетКомментарий для Timeline основной сущности. Поддерживает переменные
onNotFoundInUpdate"skip" / "error" / "create"Нет"skip"Поведение при отсутствии записи в режиме update: пропустить, ошибка или создать
onMultipleFound"update-first" / "update-all" / "skip"Нет"update-first"Поведение при нескольких совпадениях: обновить первую, обновить все или пропустить

Конфигурация связанных сущностей (relatedEntities)

Заголовок раздела «Конфигурация связанных сущностей (relatedEntities)»

Каждая связанная сущность поддерживает те же параметры, что и основная (entityType, operation, lookupConditions, fieldMappings), плюс возможность вложенности:

ПараметрТипОписание
entityTypestringТип сущности
operationstringТип операции для этой сущности
lookupConditionsarrayУсловия поиска
fieldMappingsarrayМаппинг полей
nestedRelatedEntitiesarrayВложенные связанные сущности (до 3 уровней глубины)
commentstringКомментарий для 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.

{
"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"
}
{
"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, оставляя только релевантные записи