Настройка интеграции JavaScript
В этой статье рассказывается о том, как настроить гибкую интеграцию c другим сервисом, используя код JavaScript.
Тип интеграции JavaScript в Обзвонилке позволяет написать произвольный код и передать информацию через один или несколько HTTP-запросов.

В коде можно использовать функции:

  • doGet(url, params = '{}', headers_json = '{}')
  • doPost(url, payload, headers_json = '{}')
  • log(message)

Чтобы настроить данный вид интеграции, необходимо знать endpoint сервиса, куда вам нужно отправлять данные (это URL-адрес, к которому отправляются HTTP-запросы). Он может быть указан в API документации сервиса.

Также необходимо знать token (это уникальный идентификатор, который предоставляет доступ к определённым ресурсам и службам). Он нужен для аутентификации запросов. Token должен быть указан в вашем аккаунте в сервисе, куда вам нужно отправлять данные.

Если вы знаете token и URL endpoint, можно приступить к настройке интеграции.

Для начала прописываем token:
Далее пишем функцию, которая будет отвечать за то, чтобы отправлять данные:
Функция обязательно должна носить название "execute".
Далее прописываем несколько строк для преобразования типа данных (чтобы данные приходили в правильном формате):
Далее нам нужно указать параметры, которые должны передаваться, и название полей сервиса, в которые они должны передаваться. Поля сервиса можно узнать из API документации сервиса
Data - это набор информации о контактах, звонках и пользователях, которые Обзвонилка отправляет автоматически. Выглядит следующим образом:
  data = {
    "contact":{
      "id":61466600,"external_code":null,"name":"Елизавета","description":null,"address_string":null,"email":null,"phone1":"89272947444","phone2":null,"phone3":null,"phone4":null,"phone5":null,"phone6":null,"phone7":null,"phone8":null,"phone9":null,"phone10":null,"phone_remark1":null,"phone_remark2":null,"phone_remark3":null,"phone_remark4":null,"phone_remark5":null,"phone_remark6":null,"phone_remark7":null,"phone_remark8":null,"phone_remark9":null,"phone_remark10":null,"www":null,
      "presented_phones":["89272947404"],
      "custom_fields":[{"name":"custom_field_1","title":"Допполе контакта 1","value":"Доп поле"},
                       {"name":"custom_field_2","title":"Допполе контакта 2","value":null},
                       {"name":"custom_field_3","title":"Допполе контакта 3","value":null}]
    },
    "lead":{
      "id":23074774,"contact_id":61466600,"responsible_user_id":11957,"next_call_date":null,
      "contact_person":"Тест","contact_email":"","remark":"","lead_status_id":74850,
      "lead_status_name":"Назначена встреча","client_weight":null,
      "visit_plan_date_time":"2025-05-15T14:15:00.000+04:00","skipped":false,
      "created_at":"2025-05-06T13:03:28.624+04:00","updated_at":"2025-05-13T14:15:07.388+04:00",
      "custom_fields":[{"name":"Допполе1","value":"к"},{"name":"Допполе2","value":null},{"name":"Допполе3","value":null}]
    },
    "current_call":{
      "id":33810803,"user_id":11957,"user_email":"u2001@gmail.com","called_phone":"89272947444",
      "call_result_id":74850,"call_result_name":"Назначена встреча","call_duration":11,"remark":"",
      "created_at":"2025-05-13T14:15:07.397+04:00","updated_at":"2025-05-13T14:15:07.397+04:00",
      "lead_id":23074774,"reject_reason_id":null,"reject_reason_text":"","voices":[]
    }
  } 
В коде выполняемого скрипта прописывать набор этих данных не нужно.
Приступаем к написанию параметров. В правой части пишем название поля в сервисе, куда нужно отправлять данные, в левой части - название параметра в Обзвонилке:
Здесь "phone" - это название поля в вашем сервисе,
data["current_call"]["called_phone"] - параметр "called_phone", который находится в "current_call".
То есть информация из "called_phone" будет записана в поле "phone".

Таким образом прописываем все нужные поля.

Чтобы завершить настройку интеграции, пишем:
В скобках указываем URL endpoint.

Весь код должен выглядеть следующим образом:
const token =  "abcde123456";
function execute(data) {
  log(`data type: ${typeof data}`)
  log(`data type: ${data}`)
  log(`Input data: ${JSON.stringify(data)}`);
  
  var params = { "phone": data["current_call"]["called_phone"]
                  
                        "token": token,
                        "first_name": data["contact"]["name"],
                        "policy_accept": 1,
                      }
  
   result = doPost("https://api.example.ru/", params);  
  return result;
}
Нажимаем "сохранить".

Теперь интеграция настроена и можно ее проверить, сделав тестовый звонок.

Приятной работы!