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

Поиск в CRM системе

Процессор Поиск в CRM системе выполняет поиск информации в CRM-системе. Он позволяет находить лиды, сделки, компании, контакты и реквизиты по заданным условиям, включая поиск по связанным сущностям. Процессор поддерживает сложные запросы с несколькими условиями, разрешение переменных из цепочки данных и автоматическое расширение справочных полей (ID в текстовые значения).

Процессор получает входные пакеты от предыдущих процессоров и для каждого пакета выполняет CRM-запрос с подстановкой переменных из данных цепочки.

  • Проверка, существует ли компания в CRM перед созданием нового лида
  • Поиск сделок по компании для анализа истории взаимодействий
  • Получение данных о контактах, связанных с определенными компаниями
  • Проверка наличия реквизитов у компании перед обновлением
  • Поиск лидов по определенным условиям для отчетности
  • Обогащение данных воронки информацией из CRM (статусы, ответственные, суммы)
ПараметрТипОбязательныйПо умолчаниюОписание
connectionIdstringДаID подключения к CRM (настраивается в разделе Подключения)
queryobjectДаСтруктура поискового запроса
query.entityType"lead" / "deal" / "company" / "contact" / "requisite"ДаТип основной сущности для поиска
query.conditionsarrayНет[]Массив условий поиска по полям основной сущности
query.conditions[].fieldstringДаКод поля CRM (например, TITLE, UF_CRM_INN)
query.conditions[].operatorравно / не равно / пусто / не пустоДаОператор сравнения
query.conditions[].valuestringДаЗначение для сравнения. Поддерживает переменные: {{registrySearch.inn}}
query.relatedEntitiesarrayНет[]Массив связанных сущностей для фильтрации
query.relatedEntities[].entityTypestringДаТип связанной сущности
query.relatedEntities[].relationTypeимеет / не имеетНетимеетНаличие или отсутствие связи
query.relatedEntities[].conditionsarrayНет[]Условия по полям связанной сущности
query.resultFieldsobjectНетВыбранные поля для включения в результат, по типам сущностей: { "company": ["TITLE", "UF_CRM_INN"], "contact": ["NAME"] }
resultFormatколичество строк / только первая строка / все строки / указанное количество строкНетвсе строкиФормат результата
resultLimitnumberНет50Максимальное количество возвращаемых записей (для указанное количество строк)
expandReferencesbooleanНетtrueАвтоматически расширять справочные поля (ID в текстовые значения). Для полей типа crm_status, user, enumeration создается дополнительное поле с суффиксом Label
maxPacketsnumberНет50Максимальное количество входных пакетов для обработки за один запуск

Процессор принимает DataPackets от родительских процессоров. Данные из цепочки (chainData) используются для подстановки переменных в условиях поиска.

Типичные источники:

  • Registry Search — ИНН и данные компаний для проверки в CRM
  • File Upload — списки компаний для массовой проверки в CRM
  • HH Search — данные работодателей для поиска в CRM
  • Contact Search — контактные данные для поиска связанных сделок

Структура выходных пакетов данных зависит от формата результата и выбранных полей.

Формат все строки / указанное количество строк

Заголовок раздела «Формат все строки / указанное количество строк»

Каждая найденная запись CRM создает отдельный DataPacket:

{
"company.TITLE": "ООО Рога и Копыта",
"company.UF_CRM_INN": "7707083893",
"company.ASSIGNED_BY_ID": "42",
"company.ASSIGNED_BY_IDLabel": "Иванов Петр",
"company.STAGE_ID": "WON",
"company.STAGE_IDLabel": "Сделка выиграна",
"contact.NAME": "Петр",
"contact.LAST_NAME": "Иванов",
"contact.PHONE": "+7 (495) 123-45-67"
}
{
"count": 15
}

Возвращает первую найденную запись с добавлением общего количества:

{
"count": 15,
"company.TITLE": "ООО Рога и Копыта",
"company.UF_CRM_INN": "7707083893"
}

Процессор CRM Search использует API Bitrix24 через webhook и не расходует токены платформы, поэтому использование этого процессора бесплатно.

{
"connectionId": "conn_123",
"query": {
"entityType": "company",
"conditions": [
{
"field": "UF_CRM_INN",
"operator": "equals",
"value": "{{registrySearch.inn}}"
}
]
},
"resultFormat": "count_only"
}
{
"connectionId": "conn_123",
"query": {
"entityType": "deal",
"conditions": [
{
"field": "STAGE_ID",
"operator": "not_equals",
"value": "LOSE"
}
],
"relatedEntities": [
{
"id": "rel_1",
"entityType": "company",
"relationType": "has",
"conditions": [
{
"field": "UF_CRM_INN",
"operator": "equals",
"value": "{{fileUpload.inn}}"
}
]
}
],
"resultFields": {
"deal": ["TITLE", "OPPORTUNITY", "STAGE_ID", "ASSIGNED_BY_ID"],
"company": ["TITLE", "UF_CRM_INN"]
}
},
"resultFormat": "all_rows",
"expandReferences": true,
"maxPackets": 50
}
{
"connectionId": "conn_123",
"query": {
"entityType": "company",
"conditions": [],
"relatedEntities": [
{
"id": "rel_1",
"entityType": "requisite",
"relationType": "not_has",
"conditions": []
}
],
"resultFields": {
"company": ["TITLE", "UF_CRM_INN", "PHONE"]
}
},
"resultFormat": "limit_rows",
"resultLimit": 100
}