Как узнать адрес битрикс
Перейти к содержимому

Как узнать адрес битрикс

Гайд по добавлению адресов при создании компаний и контактов в Битрикс24 через REST API

К сущности Контакт или Компания в Битрикс24 могут быть прикреплены реквизиты. У одной сущности может быть 0 или несколько реквизитов. Банковские реквизиты при этом являются отдельным разделом и прикрепляются к общим реквизитам. Аналогично реквизитам у сущности банковские реквизиты, привязаны к общим реквизитам сущности. Банковских реквизитов может быть 0 или несколько.

Работа с реквизитами требует некоторых знаний, которыми мы с вами сейчас поделимся. Итак, наша задача — прикрепить к компании/контакту несколько адресов разного типа.

Допустимые типы жестко заданы, добавить свои типы нельзя. В справке метод, возвращающий список типов, размещен по пути CRM > Вспомогательные сущности > Перечисления > crm.enum.addresstype

На данный момент существует четыре типа:

Методы работы с адресами размещаются по пути CRM > Реквизиты > Методы

Смотрим состав полей адреса (CRM > Реквизиты > Структура таблиц) и видим, что адрес привязывается к своему владельцу через два поля: ENTITY_TYPE_ID — ID типа сущности и ENTITY_ID — ID этой самой сущности. Идентификаторы типов мы получаем запросом crm.enum.ownertype.

Переходим к реквизитам. Смотрим поля таблицы реквизита (CRM > Реквизиты > Структура таблиц) и видим, что помимо тех же самых ENTITY_TYPE_ID и ENTITY_ID есть еще обязательное поле — PRESET_ID — идентификатор шаблона, по которому создается реквизит.

Шаблон реквизита создается методом crm.requisite.preset.add (CRM > Реквизиты > Методы). Среди обязательных полей видим ENTITY_TYPE_ID. Поскольку мы создаем шаблон для реквизита, указываем в нем его тип (равен 8). Теперь по данному шаблону можно создавать сам реквизит, но, чтобы в нашем реквизите отображался адрес (в интерфейсе портала), в шаблоне должно присутствовать поле типа адрес.

Казалось бы, поля к шаблону добавлять можно, для этого есть метод crm.requisite.preset.field.add. И для того, чтобы добавить именно адрес надо в поле FIELD_NAME указать код RQ_ADDR. Но нет, API в ответ говорит нам, что мы не можем добавлять такое поле. Получается, что создание своего шаблона теряет всякий смысл. Остается при создании реквизита выбрать подходящий из уже имеющихся на портале шаблонов. Существует отдельный шаблон для компаний и отдельный — для контактов. Вот только различить их можно исключительно по языкозависимому названию шаблона.

Полная схема привязки адресов к компаниям (контактам)

Создаем (если нужно) компанию — crm.company.add — в result возвращается идентификатор компании. (В примерах использована функция отправки rest-запроса, встречающаяся периодически в публикациях разработчиков, есть в примере эхо-бота )

$result = restCommand(‘crm.company.add’, array(
‘TITLE’=>’My new company’,
));
$newCompanyId = intval($result[‘result’]);
Получаем идентификаторы: crm.requisite.preset.list, crm.enum.ownertype, crm.enum.addresstype — собственно, кроме шаблона, можно узнать идентификаторы один раз и затем использовать как константы, поскольку на всех порталах они одинаковы.
define(‘REQUSITE_OWNER_TYPE’, 8);
define(‘CONTACT_OWNER_TYPE’, 3);
define(‘COMPANY_OWNER_TYPE’, 4);

define(‘STREET_ADDR’, 1); // фактический
define(‘REG_ADDR’, 4); // регистрации
define(‘LEG_ADDR’, 6); // юридический
define(‘BEN_ADDR’, 9); // бенефициара

$result = restCommand(‘crm.requisite.preset.list’, array(
‘filter’=> array(‘NAME’=>’Организация’),
));
$organizationPresetId = intval($result[0][‘ID’]);

Создаем реквизит — crm.requisite.add. При этом в поле ENTITY_TYPE_ID для реквизита компании указываем 4, контакта — 3. PRESET_ID указываем тот, что каким-либо образом определили в списке доступных шаблонов.

$result = restCommand(‘crm.requisite.add’, array(
‘fields’=>array(
‘ENTITY_TYPE_ID’=>COMPANY_OWNER_TYPE, // компания
‘ENTITY_ID’=>$newCompanyId,
‘PRESET_ID’=>$organizationPresetId,
‘NAME’=>’Адреса компании’,
‘ACTIVE’=>’Y’,
),
));
$newRequisiteId = intval($result[‘result’]);

И вот, наконец, добавляем к реквизиту адрес(а) конкретного типа — crm.address.add. При этом в поле ENTITY_TYPE_ID указываем 8 (идентификатор типа «реквизит»), а в поле ENTITY_ID — идентификатор созданного нами реквизита. При выборке через rest api адресов мы видим, что в адресе присутствуют еще два интересных поля: ANCHOR_ID и ANCHOR_TYPE_ID. И они заполнены соответственно идентификатором нашей компании и типом сущности «компания» (когда реквизит относится к компании). Метод crm.address.fields говорит нам, что эти поля необязательные. Может так оно и есть, и все сработает и без указания нашей компании, но мы, на всякий случай, их заполняем.

$result = restCommand(‘crm.address.add’, array(
‘fields’=>array(
‘TYPE_ID’=>STREET_ADDR, // фактический адрес
‘ENTITY_TYPE_ID’=>REQUSITE_OWNER_TYPE, // реквизит
‘ENTITY_ID’=>$newRequisiteId,
‘ADDRESS_1’=>’Цветочная стрит, 16’,
‘CITY’=>’Берн’,
),
));

Проверяем добавление. Идем в карточку нашей компании, прокручиваем страницу и среди табов, размещенных внизу страницы, находим «Реквизиты», открываем. В списке должен быть наш реквизит, кликаем по его названию. В popup-е должны появиться наши адреса. Если этого не случилось, значит шаблон, который мы указали при создании реквизита, не содержит поля типа «адрес». Программно такое поле добавить нельзя, но вручную — можно. Как только вы его добавите, в реквизитах появятся наши адреса.

Схема работы с реквизитами в Битрикс24

Функции для работы с реквизитами и ссылки на документацию

Если требуется проверить, есть у сущности реквизит

ENTITY_TYPE_ID — тип сущности из справочника 1 — Лид, 2 — Сделка, 3 — Контакт, 4 — Компания.

ENTITY_ID — ид сущности

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

PRESET_ID — id шаблона реквизита, 1 — Организация, 2 — ИП, 3 — Про работу с реквизитами физического лица можно подробнее узнать тут

Если есть реквизиты, то выбрать нужный и по id получить детальные данные о реквизите

id реквизита сущности полученный из запроса crm.requisite.list. После выполнения, выводит все поля реквизита.

Для выбора банковского реквизита достаточно ID реквизита прикрепленного к сущности

ENTITY_ID — id реквизита, привязанного к сущности

Данный запрос покажет список банковских реквизитов, прикрепленных к реквизиту, прикрепленному к сущности. ID из этого запроса нужен для обновления банковских реквизитов.

Добавление банковского реквизита к реквизиту привязанного к сущности

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

Для обновления банковского реквизита надо выполнить этот метод . Надо выбрать id банковского реквизита и передать обновляемые поля.

Обновление реквизитов, отслеживается подпиской на следующие события .

Там есть события изменения банковских реквизитов, удаление реквизитов.

Доставка полезной информации от экспертов по Битрикс24!

Подпишитесь, и раз в неделю у вас на почте будет подборка полезных советов и обзоров про Битрикс24

Пользовательские поля в Bitrix24 — передача значений в лидах

Пользовательские поля в Bitrix 24 — это поля, которые вы задаете самостоятельно как для лида, так и для контакта и сделки. Данные поля функционируют точно так же как и стандартные поля в Битрикс 24. С их помощью вы можете совершать поиск и фильтрацию по базе.

Если вы настроили автоматическое создание лидов с сайта в Битрикс 24, то наверняка столкнись с таким вопрос как же передать значения для пользовательских полей вместе с заявкой с сайта.

Для этого необходимо всего лишь узнать ID уже созданного вами поля и добавить его значения в PHP скрипт для отправки данных.

Как узнать ID пользовательского поля?

Для того, чтобы узнать ID уже созданного Вами поля, необходимо:

  • открывать Ваш Bitrix 24;
  • перейти в раздел CRM → Настройки → Настройки форм и отчетов → Пользовательские поля → Лид (Список поле);
  • в списке найти ваше поле и перейти в него;
  • в поисковой строке, в конце url, вы увидите значение UF_CRM_XXXXXXXXXX
    https://ваш-домен.bitrix24.ru/crm/configs/fields/CRM_LEAD/edit/UF_CRM_XXXXXXXXXX/
    , где UF_CRM_XXXXXXXXXX — это и есть ID

Если у вас нет еще пользовательского поля, то для начала вам необходимо его создать, после чего Вы сможете узнать его ID.

Как создать пользовательское поле?

Для создания вашего пользовательского поля, необходимо:

  • открывать Ваш Bitrix 24;
  • перейти в раздел CRM → Настройки → Настройки форм и отчетов → Пользовательские поля → Лид (Добавить поле);
  • задать название поля;
  • поставить галочку для «Показывать в списке»;
  • желательно использовать тип поля «Строка»;
  • сохранить

Только после того как вы создадите пользовательское поле можно узнать его ID.

Как передать значение пользовательского поля в PHP скрипт для отправки данных?

Сам PHP скрипт для отправки данных вы можете найти в статье «Bitrix24 лиды с сайта — автоматическое создание лидов«, а также посмотреть его вариации по интеграции с:

Для того, чтобы передать значения для вашего пользовательского поля с помощь ваше упомянутого скрипта Вам необходимо в $postData = array добавить ID вашего поля и передать полученное для него значение.
Для примера приведу кусочек php скрипта по интеграции Contact Form 7 для WordPress и Битрикс24:

Вот в принципе и вся настройка по передаче значений для пользовательских полей в лиды Битрикс24.

Передача лидов с сайта в CRM BITRIX 24

Нужно передать данные формы сайта в лиды Crm Bitrix24. Форма отправляется методом POST. Язык сайта:PHP.

Поле Переменная
Имя $_POST[“NAME_CALLBACK”]
Телефон $_POST[“PHONE_CALLBACK”]
Электронная почта $_POST[“EMAIL_CALLBACK”]
Метка UTM_SOURCE $_POST[“UTM_CALLBACK”]

Передачу будем организовывать через функцию php curl_exec()- выполнение запроса cURL .

Вариант 1

Сперва сделал через crm/configs/import/lead.php

[ИМЯ].bitrix24.ru – Имя СРМ Битрикс 24

[логин]– логин пользователя в CRM

[пароль]– пароль пользователя в CRM

TITLE– Название лида (обязательное)

PHONE_WORK– Рабочий телефон лида

EMAIL_WORK– Рабочая почта лида

ASSIGNED_BY_ID – ид отвественного

SOURCE_ID= Источник лида, здесь SOURCE_ID=WEB – веб сайт

UTM_SOURCE – метка UTM_source

К недостаткам этого варианта можно отнести небезопасность – в запросе передаются данные пользователя СРМ . У пользователя должны быть права только на добавление лида.

Также не предаются метки UTM, поэтому пришлось воспользоваться вебхуком.

Вариант 2 ВЕБХУК

В CRM Bitrix 24 выбираем Приложения, вкладка Вебхуки, добавить ВебХук – Входящий

Вводим название, описание и отмечаем галку CRM. После сохранения появится код вебхука и пример URL, который нужно использовать при отправке данных в СРМ Битрикс24.

На основании полученного кода вебхука и примера формируем запрос к Битрикс24:

$Url = ‘https://[ИМЯ].bitrix24.ru/rest/[id пользователя]/[код вебхука]/crm.lead.add.json‘;

При тестировании данного способа выявилось, что некоторые поля поменялись. PHONE_WORK и EMAIL_WORK теперь нужно передавать как маcсивы PHONE и EMAIl

В итоге код PHP по отправки лидов СРМ Битрикс 24 выглядит следующим образом:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *