Интеграция с Битрикс 24

Последние изменения: 20.09.2020

Важной задачей информационного бота компании является возможность принять заявку клиента. Такая заявка может отправляться на email, но максимально удобным является отправка заявки в виде лида прямо в используемую CRM систему.

Бот Bitrix24 Connector демонстрирует возможности интеграции с Bitrix24 и реализует отправку данных заявки в виде лида в Bitrix24 CRM.

Регистрация приложения в Marketplace Bitrix24

Если у вас права администратора на вашем портале, зайдите в раздел Приложения — Добавить приложение. Выбрать для личного пользования (в этом случае, никто кроме вас и вашего портала не сможет использовать это приложение):

 Bitrix24_setup1.png

Откроется форма добавления приложения. В форме заполняем:

  • Название приложения — произвольное.
  • Приложение использует только API – обязательно
  • Права доступа — указываем к каким разделам будет доступ у данного приложения (для нашей задачи CRM, если Вашему боту потребуется доступ к другим объектам – укажите и в списке)
  • Укажите ссылку — указываем произвольный ваш сайт (или любую произвольную страницу).

После этого нажимаем «Сохранить» Bitrix24_setup2.pngBitrix24_setup3.png

После этого в списке «Мои приложения» появится созданное приложение, и для него – [Код приложения] и [Ключ приложения]. Они будут необходимы в дальнейшем для авторизации и выполнения методов REST API.

Bitrix24_setup4.png

OАuth-авторизация

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

https://мой_портал.bitrix24.ru/oauth/authorize/?client_id=код_приложения&response_type=code&redirect_uri=http%3A%2F%2Fexample.ru

где

  • мой_портал.bitrix24.ru — адрес портала
  • client_id — код приложения, который был получен на после успешной регистрации приложения.
  • response_type — тип ответа “code’ (константа)
  • redirect_uri — адрес который был указан при создании приложения в Маркетплейс (необходимо указывать как urlencode), например, http%3A%2F%2Fexample.ru

Далее произойдет редирект на адрес вида:

http://redirect_uri/?code=код_получения_авторизации&domain=мой_портал.bitrix24.ru

где

  • code – код получения авторизации, необходим для выполнения дальнейших шагов.
  • domain – адрес портала Битрикс24 (например, мой_портал.bitrix24.ru)

 

Далее необходимо выполнить следующий запрос (например, в Postman):

Bitrix24_oauth1.png

 где

  • client_id — код приложения, который был получен после регистрации приложения.
  • client_secret – секретный ключ приложения, который был получен после регистрации приложения.
  • redirect_uri — адрес на который должен произойти редирект
  • code - код получения авторизации
  • scope – требуемый набор разрешений

В ответ сервер вернет json-структуру со всеми необходимыми для совершения запросов к серверу данными.

Bitrix24_oauth2.png

Из результатов данного запроса нам будет необходимо взять refresh_token

Использование в Sherlock

Для подключения API в Sherlock platform необходимо перейти в Настройки -> Справочники -> Внешние сервера.

Bitrix24_connect_sherlock1.png

И далее добавить новый сервер. Ввести заголовок, тип (Url), URL сервера, тип авторизации Bearer Authorization.

Bitrix24_connect_sherlock2.png

В поле Логин указать переменную #BitrixToken#, в которой будет сохраняться значение access token’a. Поле Пароль оставить пустым. Нажать Сохранить.

 

Далее надо в сценарии авторизации бота указать необходимые параметры команд для обновления токена, включая:

  • Refresh token, полученный ранее, в команде по пунктом 1
  • client_id и client_secret в команде 2

Bitrix24_connect_sherlock3.png

Данный сценарий авторизации будет вызываться для обновления токена перед обращением к API Битрикс.

Пример POST запроса на добавление нового лида в боте выглядит следующим образом:

Внешний источник:

https://b24-lnv0t7.bitrix24.ru

Path:

/rest/crm.lead.add?auth=#BitrixToken#

Body:

{

    "fields":

    {

        "TITLE": "Всё еще самый лучший лид",

        "NAME": "Иван",

        "SECOND_NAME": "Иванович",

        "LAST_NAME": "Иванов",

        "PHONE": [ { "VALUE": "111111", "VALUE_TYPE": "WORK" } ]

    },

    "params": { "REGISTER_SONET_EVENT": "Y" }

}

 

Другие доступные поля для лида можно получить с помощью следующего GET запроса:

https://b24-lnv0t7.bitrix24.ru/rest/crm.lead.fields.json?auth=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX01000003ea6c6a3cb4e09d97e3e81790d4eee1ff, где auth – access token

В ответ будет возвращена json структура со всеми существующими полями:

Bitrix24_connect_sherlock4.png

Дополнительно можно обратиться к документации Битрикс.

Помогла ли вам статья?