Столкнулся с задачей интеграции с неким продуктом, который ранее не видывал и не любил. Но деньги есть деньги.

В разделе «Настройки» -> «Основные» — внизу есть API ключ — генерируем, копируем. Он будет необходим для подключения.

<?php
// Получаем параметры из URL
$data = [
    "title" => "New Lead", // Название заявки
    "source_id" => 1, // Идентификатор источника (можно настроить или оставить как есть)
    "manager_comment" => "Lead from form", // Комментарий менеджера
    "manager_id" => 1, // Идентификатор менеджера
    "pipeline_id" => 1, // Идентификатор воронки
    "contact" => [
        "full_name" => $_GET['name'], // Имя покупателя
        "email" => $_GET['email'], // Email покупателя
        "phone" => $_GET['phone'], // Номер телефона покупателя
    ],
    "utm_source" => $_GET['utm_source'], // Источник трафика
    "utm_medium" => $_GET['utm_medium'], // Тип трафика
    "utm_campaign" => $_GET['utm_campaign'], // Название кампании
    "utm_term" => $_GET['utm_term'], // Ключевое слово
    "utm_content" => $_GET['utm_content'], // Идентификатор объявления
];

// Преобразуем данные в JSON
$data_string = json_encode($data);

// Ваш уникальный API ключ
$token = 'YOUR_API_KEY';

// Инициализация cURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://openapi.keycrm.app/v1/pipelines/cards"); // Endpoint общий, не на портал клиента, а именно сюда
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    "Content-type: application/json",
    "Accept: application/json",
    "Cache-Control: no-cache",
    "Pragma: no-cache",
    'Authorization: Bearer ' . $token
]);

// Выполнение запроса
$result = curl_exec($ch);
curl_close($ch);

// Проверяем наличие ошибок cURL
if(curl_errno($ch)) {
    echo 'Ошибка cURL: ' . curl_error($ch);
} else {
    // Если запрос успешен, выводим ответ сервера
    echo $result;
}