Как интегрировать квиз через Webhooks?

Инструкция по интеграции квиза через Webhooks

Для чего нужен Webhooks

С помощью хука сторонние приложения получают информацию о поступивших заявках. На указанный в настройках квиза URL, будут отправляться данные о новой заявке. Чтобы подключить, принимаем данные с помощью скрипта и отправляем их в сторону требуемого сервиса. Данный способ подойдёт для интеграций со своей CRM или с теми сервисами, с которыми у Марквиз ещё нет интеграции.

Возможно создать Webhook с помощью сторонних сервисов, таких, как Albato, Apix-Drive, Zapier 

На указанный URL будет отправлен POST-запрос. Протестировать получение заявок можно при помощи: http://webhook.site

Скрипт хука должен обязательно отдавать положительный статус при приёме заявок (20* — 200, 204 и так далее)

Чтобы добавить адрес, куда будут приходить хуки:

1. Заходим в редактирование квиза из личного кабинета;

2. Заходим во вкладку «Интеграции» и выбираем Webhooks;

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


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

{
"raw": [
{
"q": "ab6c5412-5c7f-489d-8d79-173ce632930e",
"a": "3f0bb0ea-fc31-4b49-86b5-337ca0cf86da"
},
{
"q": "d337ecb3-b903-4664-94c1-16acf2c2e3bb",
"a": "f3d4933b-6af3-48a9-a836-0173bbbf6415"
}
],
"answers": [
{
"q": "Какая сумма Вашей задолженности перед кредитными организациями в рублях?*",
"a": "Более 1 000 000 руб."
},
{
"q": "Срок просрочки по кредитам?",
"a": "от 1 до 3 месяцев"
}
],
"contacts": {
"name": "Имя",
"email": "email@email.ru",
"phone": "89851234567"
},
"quiz": {
"id": "600920a2de60d9004900edb9",
"name": "Генератор подарков🌟"
},
"created": "2018-12-19T10:23:25.796Z",
"extra": {
"href": "http://example.com",
"utm": {
"source": "test_source",
"medium": "test_medium",
"name": "test_campaign", // Campaign
"content": "test_content",
"term": "test_term"
},
"cookies": {
"roistat_visit": "95852",
"roistat_marker": "example.com",
"roistat_marker_old": "example.com",
"roistat_call_tracking": "1",
"roistat_emailtracking_email": "null",
"_ga": "GA1.3.2016698540.1531763909"
},
"discount": 3,
"discountType": "melting",
"discountCurrency": "₽",
"currency": "RUB",
"currencySymbol": "₽",
"notify": "now",
"ab": "A", (если включено A/B тестирование)
"timezone": 5,
"lang": "ru",
"referrer": "http://example.com"
"ip": "111.11.111.111"
}
"result": {
"id": "OBq5B3FYI6",
"title": "Заголовок результата",
"cost": "1500",
"minCost": null,
"maxCost": null
}
}


Код PHP, чтобы получить данные о новой заявке:

$data = json_decode(file_get_contents('php://input'), true);

$answers = $data['answers'];
$phone = $data['contacts']['phone'];
$email = $data['contacts']['email'];
$name = $data['contacts']['name'];
$createdDate = strtotime($data['created']);
$utm = $data['extra']['utm'];
$rawAnswers = $data['raw'];

// Do anything

http_response_code(200);
exit;


Образец кода для получения вопроса/ответа по отдельности:

$i = 0;
$arr = array();
foreach($answers as $key=>$value){
$arr[$i][$key] = $value;
$i++;
}

//-------------Первый ВОПРОС------------------------ //
$question1 = $arr[0][0]["q"]; // Вопрос №1
$answer1 = $arr[0][0]["a"]; // Ответ на вопрос №1

//-------------Второй ВОПРОС------------------------ //
$question2 = $arr[1][1]["q"]; // Вопрос №2
$answer2 = $arr[1][1]["a"]; // Ответ на вопрос №2

//-------------Третий ВОПРОС------------------------ //
$question3 = $arr[2][2]["q"]; // Вопрос №3
$answer3 = $arr[2][2]["a"]; // Ответ на вопрос №3
👆 На этом пока всё