Hook Formit. enKod + MODX
Всем привет!
Поступила задача на интеграцию форм с enkod.io/. Меньше слов — делаем.
У нас есть:
— Ссылка на документацию: openapi.enkod.io/
— API ключ от клиента
— API POST запрос для передачи/обновления данных о контакте в enKod — api.enkod.ru/v1/person/
1) Создаем сниппет sendEnKode
2) В него вставляем код:
4. Переходим к форме, которую будем интегрировать. В поле с указанием хуков добавляем наш новый хук:
6. Сообщаем клиенту о готовности
Возможно, кому-то пригодится и сэкономит время!
Спасибо за внимание!
Поступила задача на интеграцию форм с enkod.io/. Меньше слов — делаем.
У нас есть:
— Ссылка на документацию: openapi.enkod.io/
— API ключ от клиента
— API POST запрос для передачи/обновления данных о контакте в enKod — api.enkod.ru/v1/person/
{
"firstName": "Иван",
"email": "example@email.com",
"phone": "79009009090",
"mainChannel": "email",
"method": "addAndUpdate",
"groups": [
"contacts"
]
}
1) Создаем сниппет sendEnKode
2) В него вставляем код:
<?php
$url = "https://api.enkod.ru/v1/person/";
$values = $hook->getValues();
// Проставляем соответствие полей Formit с названиями полей в enKod
$fields = [
"firstName" => $values["name"],
"email" => $values["email"],
"phone" => $values["phone"],
"mainChannel" => "email",
"method" => "addAndUpdate",
"groups" => ["contacts"],
];
$modx->log(modX::LOG_LEVEL_ERROR, print_r($fields, 1)); // Для дебага
try {
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 5,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => $modx->toJSON($fields),
CURLOPT_HTTPHEADER => [
"cache-control: false",
"Content-Type: application/json",
"apiKey: XXXXXXXXXXXXX", // Указываем API key от клиента
],
]);
$response = curl_exec($curl);
$modx->log(modX::LOG_LEVEL_INFO, $response); //Для дебага
} catch (Exception $e) {
$modx->log(modX::LOG_LEVEL_ERROR, $e); // Для дебага
}
return true;
3. Сохраняем4. Переходим к форме, которую будем интегрировать. В поле с указанием хуков добавляем наш новый хук:
{'!AjaxForm' | snippet:[
'form' => '@FILE chunks/forms/lead_form.tpl',
'snippet' => 'FormIt',
'hooks' => 'rcv3,sendEnKode,email,sendlead',
.....
]}
5. Тестируем6. Сообщаем клиенту о готовности
Возможно, кому-то пригодится и сэкономит время!
Спасибо за внимание!
Поблагодарить автора
Отправить деньги
Комментарии: 4
Может всё же стоило парой слов описать что же такое enKod? Ведь клиент не всегда формулирует задачу, используя название конкретного сервиса, а так хоть будет понятно для чего такая интеграция нужна.
По их промо-сайту еле-еле можно разобрать что такое это enKod вообще, но кажется я смог:
Короче enKod это сервис работы с клиентской базой для сайтов и магазинов из двух частей:
1. Подписчики и рассылки
1.1 Функционал Email и Push/SMS сообщений (типа SendPulse и аналогов) для рассылок.
1.2 Ну и инструментарий для пополнения и сегментации баз, включая JS-трекер активности вроде Яндекс.Метрики
2. Виджеты для сайта
2.1 Всплывающие окна подпишись и получи нечто, для пополнения базы клиентов из п.1.1
2.2 Товарные рекомендации типа расстановка ссылок для блока «вам также может быть интересно» в корзине интернет-магазина или где-то ещё на сайте, видимо на основе данных, собираемых функционалом из п.1.2
P.S. Я там не работаю, просто сам недолюбливаю мутные лендинго-подобные сайты (как у enKod) где вместо подробностей вам предлагают записаться на демонстрацию к продажнику от которого наверняка потом придется телефон в реку выбрасывать чтобы не доставал ;-)
Так-то в кейсах у них вся инфа есть, но чтобы её добыть надо прям изучать их несколько… Прямо чувствуешь на этом сайте себя тунцом каким-то, который заглатывает наживку, маркетологи сказали бы что очень такой «цепкий сайтец» с хорошей грубиной просмотра… но мне от пребывания на таких как-то не по себе ¯\_(ツ)_/¯ Хоть сервис по итогу для своей ЦА интересный… но какие тарифы вам на сайте даже примерно не намекнут, запишитесь на демо… ага...
Короче enKod это сервис работы с клиентской базой для сайтов и магазинов из двух частей:
1. Подписчики и рассылки
1.1 Функционал Email и Push/SMS сообщений (типа SendPulse и аналогов) для рассылок.
1.2 Ну и инструментарий для пополнения и сегментации баз, включая JS-трекер активности вроде Яндекс.Метрики
2. Виджеты для сайта
2.1 Всплывающие окна подпишись и получи нечто, для пополнения базы клиентов из п.1.1
2.2 Товарные рекомендации типа расстановка ссылок для блока «вам также может быть интересно» в корзине интернет-магазина или где-то ещё на сайте, видимо на основе данных, собираемых функционалом из п.1.2
P.S. Я там не работаю, просто сам недолюбливаю мутные лендинго-подобные сайты (как у enKod) где вместо подробностей вам предлагают записаться на демонстрацию к продажнику от которого наверняка потом придется телефон в реку выбрасывать чтобы не доставал ;-)
Так-то в кейсах у них вся инфа есть, но чтобы её добыть надо прям изучать их несколько… Прямо чувствуешь на этом сайте себя тунцом каким-то, который заглатывает наживку, маркетологи сказали бы что очень такой «цепкий сайтец» с хорошей грубиной просмотра… но мне от пребывания на таких как-то не по себе ¯\_(ツ)_/¯ Хоть сервис по итогу для своей ЦА интересный… но какие тарифы вам на сайте даже примерно не намекнут, запишитесь на демо… ага...
Чуть не забыл, за пример интеграции @Иван Бочкарев респект конечно!
Вместо портянки курла с которой еще и запросто можно ошибиться лучше использовать встроенный http client в MODX
modx.pro/howto/18715
modx.pro/howto/18715
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.