Для чего нужен 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