crm.duplicate.findbycomm
Возвращает идентификаторы лидов, контактов и компаний содержащих телефоны или email-адреса из заданного списка.
Параметры
Результат возвращается в виде объекта, содержащего массивы идентификаторов лидов, контактов и компаний.
Доступ к массиву идентификаторов производится по имени типа. Пример:
Пример поиска контакта по телефону:
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
Метод возвращает не более 20 дублей по сущности, причем не 20 новых, а 20 старых.
Если в сущности 20 или более дублей, результаты по остальным сущностям возвращены не будут. Например, мы не указали entity_type и ожидаем дубли по всем трем сущностям, но у нас в лидах 20 или более дублей, сущности контакт и компания возвращены не будут. Если в сущности контакт будет 20 или более дублей, мы получим дубли по лидам и контактам, а компания будет отсутствовать в выборке.
B24 rest api php crm duplicate findbycomm
В процессе разработки интеграций Joomla с CRM Битрикс24 столкнулся с тем, что официальная документация по REST API для Битрикс24 неполная и не отражает всех возможных инструментов работы с CRM, к тому же разные версии документации содержат разные примеры, а порой и артефакты устаревшего синтаксиса. Поэтому немало способов решения задач находится эмпирически.
Для связи с Битрикс24 используем их PHP библиотеку CRest, предварительно настроенную.
Задача: Проверить есть ли у контакта e-mail или номер телефона.
На выходе получаем массив следующего вида:
Метод crm.duplicate.findbycomm позволяет ограничить область поиска, если указать параметр entity_type.
Задача №2 Добавить к контакту новый email или телефон.
Параметр ID (контакта) должен быть указан за пределами «fields». Обратите внимание на строку 6: при редактировании лида таким образом не нужно вычислять порядковый номер телефона или почты n0, n1, n2. Достаточно просто передать массив с контактными данными так же, как при создании лида. В документации Битрикс24 для изменения данных контакта обязательно требовалось указывать внутренний ID изменяемого поля, для получения которого создавался дополнительный запрос. В нашем случае этого поля еще нет, поэтому его ID получить невозможно. А значит и нет необходимости указывать порядковый номер телефона или почты.
Сергей Толкачев
Full stack разработчик (разработчик полного цикла): HTML5, CSS3, jQuery, PHP, СЕО. Специализируюсь на CMS Joomla. C 2010 года делаю сайты для клиентов.
Bitrix24 лиды с сайта — автоматическое создание лидов
Как добавлять в Bitrix24 лиды с сайта? Данным вопросом начинают задаваться многие, так как с каждым днем CRM Битрикс24 набирает популярность среди вебмастеров и владельцев сайтов. И у многих встает вопрос, как же организовать автоматическое создание лидов с сайта в CRM Битрикс24, если Вы не используете одноименную CMS.
Для этого давайте рассмотрим два способа:
См. также публикацию на тему:
Автоматическое создание лидов в Битрикс24 через упрощенный Rest API
Для того, чтобы организовать автоматическое создание лидов в Битрикс24 Вам необходимо:
Логин и пароль пользователя Вашей CRM
Так как логин и пароль пользователя из-под которого будут создаваться лиды указываются в скрипте, то для безопасности рекомендуется использовать отдельного пользователя с правами только на добавление лида и без доступа куда-либо еще. Данная мера необходима для безопасности Ваших данных, на тот случай, если каким-то образом PHP скрипт для отправки данных в Битрикс 24 окажется у злоумышленников.
PHP скрипт для отправки данных
В Bitrix24 лиды с сайта можно передавать PHP скриптом, который приведен ниже. При этом для автоматического создания лидов, необходимо передать 3 обязательных параметра:
все остальные параметры являются не обязательными и не подлежат обязательной передаче. Однако советую Вам передавать как можно больше данных в лиде: email, телефон, комментарий, utm метки и многое другое (см. все параметры для формирования лидов).
И умение перехватывать данные из форм
По умолчанию, обязательным параметром для заполнения является Title, значение которого будет названием для лида в Битрикс24. Все остальные параметры Вы можете передавать на свое усмотрение (см.таблицы с параметрами).
Данные параметры из «Таблица 1: Параметры для лидов», отвечают за передачу данных в стандартные поля Битрикс24. Если у Вас есть поля, которые Вы самостоятельно создали в Битрикс24, и Вам необходимо передавать для них значение с сайта вместе с лидами, то предлагаю Вам ознакомится с данной статьей.
Автоматическое создание лидов в Битрикс24 при помощи входящего вебхука
Комманда Битрикс 24 внедрила очень простой и функциональный способ интеграции с CRM системой. Если ранее интеграция с Битрикс 24 была не простой задачей, требующей отличной квалификации и знаний от вебмастеров и владельцев сайта, то теперь, с внедрением вебхуков, произвести интеграцию своего сайта с CRM системой может практически каждый желающий.
Так что такое вебхуки в Битрикс24? WebHooks Bitrix24 — механизм, который позволяет вам использовать практически весь богатый функционал Rest API Битрикс24, но при минимальных знаниях и трудозатрат.
На мой взгляд, это более безопасный способ передачи информации в CRM систему, чем при помощи упрощенного Rest API.
И так, для организации автоматической передачи лидов при помощи вебхуков необходимо:
Создать входящий вубхук
Для того, чтобы передать данные с вашей формы обратной связи в лиды Битрикс 24 необходимо создать входящий вебхук. Для этого следуем по инструкции:
Написать короткий код для перехвата и передачи данных
Для завершения организации передачи данных с формы сайта в лиды Битрикс24 при помощи вебхуков необходимо всего лишь написать коротенький код. При написание кода необходимо учесть всего 3 простых шага:
Пример кода для интеграции Битрикс24 и сайта при помощи вебхуков
Учесть особенность для передачи номера телефона, email, мессенджера
, где nX — это одно значение (телефона или электронной почты), которое всегда начинается с 0.
Таким образом, для передачи хотя бы одного телефона и адреса электронной почты, код будет иметь следующий вид:
Теперь проверьте свой Битрикс 24 и вы найдете там созданный лид =)
//Поиск контакта по телефону BX24.callMethod( «crm.contact.list», < filter: < "PHONE": "555888" >, select: [ «ID», «NAME», «LAST_NAME» ] >,
можно ли както использовать данный метод чтоб искать контакты по последним цыфрам телефона.
часть телефонов в crm записана нак
8xxxxxxxxx
другая часть как
7xxxxxxxxx
как можно произвести поиск только по xxxxxxxxxx
Присоединяюсь к вопросу. Перепробовал кучу методов не помогает.
Фильтрация по имени работает (QWERTY)
filter[«%LAST_NAME»] = «WE»
По номеру телефона нет.
| Цитата |
|---|
| Роман Семёнов написал: синхронизировать все контакты в БД и делать запросы какие угодно |
если отдать номер телефона в 10-значном формате, то вот так работает метод crm.contact.list и crm.lead.list
PS
Временно решил проблему отправкой второго запроса, в случае если в запросе выше ничего не найдено. Но данное решение кажется мне каким-то мрачным и во вторых это решение создаёт дополнительный запрос к REST API что не есть хорошо
| Цитата |
|---|
| Алексей Громов написал: не работает в облаке. Что очень неудобно. Иногда приходиться получать всю информацию и искать уже на клиенте. |
Ответ в оф поддержке битрикс 24
Добрый день!
В этом методе crm.contact.list пока не реализована возможность фильрации по телефонам, содержащим другие символы, кроме чисел.
В отделе разработок есть заявка на реализацию такой возможности. Я добавлю ваше обращение в эту заявку для увеличения ее критичности и ускорения реализации. Вы получите уведомление в этот чат, когда данная возможность появится, даже если чат будет закрыт.
Таким образом, все кто хочет такую возможность, оставьте заявки в службу поддержки, полагаю, таким образом повысится приоритет данной реализации.
PS
Насколько я понял из диалога с ТП и при проверке работоспособности своих скриптов, ‘LOGIC’ => ‘OR’, всё же работает в облаке!
| Цитата |
|---|
| Павел Лашин написал: Не рекомендуется фильтровать по полю PHONE в методе «.list», это даёт сильную нагрузку на базу и это может быть причиной блокировки приложения. Используйте, пожалуйста, метод crm.duplicate.findbycomm https://dev.1c-bitrix.ru/rest_help/crm/auxiliary/duplicates/crm_duplicate_findbyco mm.php По номеру прекрасно ищет, и нет проблем с 7 и 8 |
Спасибо за информацию о методе crm.duplicate.findbycomm, с ним код выглядит чище, занимает меньше строк )))
Какое сейчас ограничение на количество запросов к облаку в секунду?
(мне для каждого клиента приходится делать 4 штуки подряд из них 3 на основе предыдущего ответа B24, не забанят ли меня?)
(при использовании фильтра по номеру телефона 3-го запроса вроде получалось избежать, но требовалось делать дополнительный запрос с + (писал выше)
Какой ответ на этот вопрос?
За что вероятнее получить бан: больше 2 запросов в секунду или за фильтрацию по телефону?
То есть иными словами, мне нужно решить:
писать стек, который будет:
* формировать массив запросов и отправлять не больше 1 запроса в 501мс в нагруженном состоянии или не больше 2 запросов в 1001мс в обычном режиме
* работать с использованием batch (50 запросов пакетом за раз если я правильно помню),
* организовывать взаимодействие сайта со стемом, что вообще меняет работу сайта и нужны доработки
******** Вариант 3
Оставить как есть
Я думаю вариант 2 самый лучший по соотношению цена/качество, а вариант 1 самый интересный, но сожрет пару дней труда (а может и больше с отладкой и поиском багов).
Как быстро получить много данных от Битрикс24 через REST API
Например, вот сравнительные скорости выгрузки одного поля для разных типов полей:
Плюс, в силу того, что информация сервером выдается постранично, существует несколько стратегий для того, чтобы получить весь список, и некоторые из них позволяют ускорять процесс на порядки по сравнению с последовательными запросами.
Стратегии
Ниже мы описываем три стратегии, которые мы условно назвали «ID filter», «Start increment’ и «List + get».
Первые две стратегии («ID filter» и «Start increment») предложены в официальной документации Битрикс24, но мы ниже предлагаем их «докрутить».
ID filter
Запросы отправляются к серверу последовательно с параметром «order»: <"ID": "ASC">(сортировка по возрастанию ID), и в каждом последующем запросе используются результаты предыдущего (фильтрация по ID, где ID > максимального ID в результатах предыдущего запроса).
В потенциале для ускорения можно попытаться параллельно передвигаться по списку сущностей в два потока: с начала списка и с конца, продолжая получать страницы, пока ID в двух потоках не пересекутся. Такой способ, возможно, будет давать двукратное ускорение до тех пор, пока не будет исчерпан пул запросов к серверу и не потребуется включить throttling.
Start increment
После того, как мы получили первую страницу и увидели в ней общее количество элементов (поле total ), то дальнейшее ускорение запросов можно получить двумя нижеописанными способами.
Объединение запросов в батчи
Зная общее количество элементов, можно сразу создать запросы на все страницы и объединить их в батчи. (Битрикс поддерживает батчи в 50 запросов.) Использование батчей позволяет обойти ограничения на максимальную скорость запросов, так как один батч считается за один запрос при учете сервером количества получаемых запросов.
Параллельная отправка батчей к серверу
Примеры кода в официальной документации Битрикс24 REST API везде предлагают последовательную отправку запросов и описывают лишь ограничения на скорость отправки запросов. Но параллельная отправка запросов возможна и позволяет сильно ускорить обмен информацией с сервером.
Впрочем, таким образом достаточно просто перегрузить сервер, который даже при соблюдении скорости запросов начинает обрывать соединение и уходить в таймауты. Поэтому такой подход требует нахождения пределов нагрузки на сервер экспериментальным способом.
List + get
Чтобы проверить эффективность этих стратегий, мы провели тест (код теста).
Тест использует библиотеку fast_bitrix24 для автоматического контроля скорости запросов к серверу Битрикс24.
Тест проводим на 7-й версии REST API на списке в
Результаты теста
Выводы
В целом, стратегии, использующие батчи и параллельные запросы («Start increment» и «List + get»), показали себя лучше.
Однако при этом, к моему удивлению, стратегия «List + get» оказалась на порядок продуктивнее остальных, даже несмотря на то, что в ней приходится пробегаться по всему списку два раза. (Возможно, эту статью увидят разработчики Битрикс24 и объяснят этот феномен?)

