Очень удобно для тех кто не настроил CRM и принимает заявки на почту. Заявки в телеграм на Modx приходят на много быстрее и в отличии от почты ей больше пользуются и быстрее перезванивают.
Перед тем как сделать отправку заявок в телеграм нам нужно много чего сделать.. но приступим.
Теперь нам нужно создать группу для заявок. Также туда можно добавить нужных менеджеров и тп. Ну и немного общаться в ней, а не только заявки принимать.
А тут начинается веселуха. Работает не всегда и приходится тыкать настройки группы. Пока попробуем на текущих.
Пример с токеном https://api.telegram.org/bot5715967662:AAG9tbE9aEEr0sn_AywFQOMBdyLB7qqNCeY/getUpdates
Внимание! По этой ссылке видно пользователей писавших сообщения в группе. Сама переписка типа закодирована.
Самое сложное прошли. Теперь осталось создать сниппет, вставить туда наши токены, айдишники и показать какие поля будут уходить в телегу. Тут токен и еще пару значений вызываются из TV поля, можно это указать сразу в скрипте.
Название сниппета указываем FormitTelegram
Далее идет код. Я его где то давно подсмотрел, немного переписал и пользуюсь.
getObject('modResource', 2); // Ресурс с полями
$subject = $res->getTVValue('form_subject'); // Заголовок сообщения
$token = $res->getTVValue('send_telegram_token'); // Токен бота
$chat_id = $res->getTVValue('send_telegram_chat'); // ID группы
$values = $hook->getValues();
#Получаем название формы
$formName = $modx->getOption('formName', $formit->config, 'form-'.$modx->resource->get('id'));
#Получаем ip адрес отправителя
$ip = $modx->getOption('REMOTE_ADDR', $_SERVER, '');
#Данные с формы
$name = $values['name'];
$phone = $values['phone'];
$email = $values['email'];
$metka = $values['metka'];
$yacity = $values['yacity'];
$city = $values['city'];
$message = $values['message'];
$pagelink = $values['pagelink'];
$pagetitle = $values['pagetitle'];
$utm_source = $values['utm_source'];
$utm_medium = $values['utm_medium'];
$utm_term = $values['utm_term'];
$original_ref = $values['original_ref'];
#Создаем массив
if($name){
$arr["Имя"] = $name;
}
if($phone){
// можно сделать ссылку на whatsapp или telegram
$tel = str_replace(array('+', '(', ')', ' ', '-'), '', $phone);
$url_w = urlencode('Написать');
$url_t = urlencode('Написать');
$arr["Телефон"] = '%2b' . $tel;
$arr["WhatsApp"] = $url_w;
$arr["Telegram"] = $url_t;
}
if($email){
$arr["E-mail"] = $email;
}
if($city){
$arr["Город"] = $city;
}
if($message){
$arr["Сообщение"] = $message;
}
#Квиз
if ($values['quiz_discont']){
$arr["%0AРезультат Квиз"] = $values['quiz_discont'];
foreach ($values as $key => $val) {
if (preg_match('/quiz_answer(\d+)/', $key, $match)) {
$arr[$values['quiz_question'.$match[1]]] = implode(' ', $values['quiz_answer'.$match[1]]);
}
}
}
if($metka){
$arr["%0AМетка"] = $metka;
$arr["Город по IP"] = $yacity;
$arr["%0AСтраница"] = urlencode('' . $pagetitle . '');
$arr["IP"] = $ip;
}
if($utm_source){
$arr["Источник"] = $utm_source;
}
if($utm_medium){
$arr["Тип рекламы"] = $utm_medium;
}
if($utm_term){
$arr["Ключевое слово"] = $utm_term;
}
if($original_ref){
$arr["Рефер"] = $original_ref;
}
$txt = "" . $subject . "%0A%0A";
/*Цикл по массиву (собираем сообщение) */
foreach($arr as $key => $value) {
$txt .= "".$key.": ".$value."%0A";
}
#Отправляем сообщение
// Внимание!!! из-за синтаксиса fenom тут стоит три пробела после фигурной скобки.. их нужно будет удалить
$fp=fopen("https://api.telegram.org/bot{ $token}/sendMessage?chat_id={ $chat_id}&parse_mode=html&text={ $txt}","r");
#Возвращаем true
return true;
Теперь нужно добавить наш сниппет в вызов AjaxForm или FetchIt.
При отправке заявки сообщение будет приходить и на почту и в телеграм.
'hooks' => 'validate, email, FormItSaveForm, FormitTelegram',
Вот так просто мы начали отправлять заявки в телегу.
Наверное можно как то отформатировать текст в сообщении, чтобы приходили не ссылки, а кликабельный линкт.. Но до этого пока не дошли руки. Если знаешь как это сделать — черкани в комменты.
Кстати удобнее всего ставить лайки/реакции заявкам в группе, что типа взял. Так будет видно что заявка обработана и кем именно. Ну и можно устроить конкуренцию у менеджеров, кто быстрее.
Комментарии ()