Очень удобно для тех кто не настроил CRM и принимает заявки на почту. В телегу они приходят на много быстрее и в отличии от почты ей больше пользуются и быстрее перезванивают.
Для отправки заявок в телеграм нам нужно много чего сделать.. но приступим.
Теперь нам нужно создать группу для заявок. Также туда можно добавить нужных менеджеров и тп. Ну и немного общаться в ней, а не только заявки принимать.
А тут начинается веселуха. Работает не всегда и приходится тыкать настройки группы. Пока попробуем на текущих.
Пример с токеном https://api.telegram.org/bot5715967662:AAG9tbE9aEEr0sn_AywFQOMBdyLB7qqNCeY/getUpdates
Внимание! По этой ссылке видно пользователей писавших сообщения в группе. Сама переписка типа закодирована.
Самое сложное прошли. Теперь осталось создать сниппет, вставить туда наши токены, айдишники и показать какие поля будут уходить в телегу.
Название сниппета указываем FormitTelegram
Далее идет код. Я его где то давно подсмотрел, немного переписал и пользуюсь.
Из-за синтаксиса fenom в 57 строке стоит три пробела после фигурной скобки.. их нужно будет удалить!
$token = "5778708487:AAFp2GzgDdCSqkc31UMa4nDOENby2_p-xA"; // токен бота
$chat_id = "-1001817403524"; // id группы
$values = $hook->getValues();
//Получаем название формы
$formName = $modx->getOption('formName', $formit->config, 'form-'.$modx->resource->get('id'));
//Получаем ip адрес отправителя
$ip = $modx->getOption('REMOTE_ADDR', $_SERVER, '');
//Создаем переменные с данными формы. указываем значение name
$name = $values['name'];
$phone = $values['phone'];
$email = $values['email'];
$message = $values['message'];
//Создаем массив с условием если поле заполнено
if($name){
$arr["Имя"] = $name;
}
if($phone){
// убираем лишние символы
$tel = str_replace(array('+', '(', ')', ' ', '-'), '', $phone);
$arr["Телефон"] = '%2b' . $tel;
// можно сделать ссылку на whatsapp или telegram
$url_w = urlencode('https://wa.me/+' . $tel);
$url_t = urlencode('https://t.me/+' . $tel);
$arr["Написать в WhatsApp"] = $url_w;
$arr["Написать в Telegram"] = $url_t;
}
if($email){
$arr["E-mail"] = $email;
}
if($message){
$arr["Сообщение"] = $message;
}
// Простой вывод без условия
if($metka){
$arr["%0AМетка"] = $metka; // %0A - дополнительный перенос строки.. типа
$arr["%0AСтраница"] = $pagetitle;
$arr["Ссылка"] = $pagelink;
$arr["IP"] = $ip;
}
// Заголовок
$txt = "Заявка с JRabbit%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.
При отправке заявки сообщение будет приходить и на почту и в телеграм.
'hooks' => 'validate, email, FormItSaveForm, FormitTelegram',
Вот так просто мы начали отправлять заявки в телегу.
Наверное можно как то отформатировать текст в сообщении, чтобы приходили не ссылки, а кликабельный линкт.. Но до этого пока не дошли руки. Если знаешь как это сделать — черкани в комменты.
Кстати удобнее всего ставить лайки/реакции заявкам, что типа взял. Так будет видно что заявка обработана и кем именно. Ну и можно устроить конкуренцию у менеджеров, кто быстрее.
Скрипт такой же, но нет привязки в движку. Ну и условий там нет. Но работает.
// Проверяем заполнено ли поле с телефоном
if (isset ($_POST['phone'])){
$title = 'Название компании';// это заголовок
$city = $_POST['city'];// это что ловим с формы
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$metka = $_POST['metka'];
$url = $_SERVER['HTTP_REFERER'];
$ip = $_SERVER['REMOTE_ADDR'];
// убираем лишние символы у телефона
$tel = str_replace(array('+', '(', ')', ' ', '-'), '', $phone);
$token = "5408105598:AAFg4f_O45Yo4Qbl2pkDN2369kCvqH5Zbtk"; // Это ТОКЕН
$chat_id = "-1001569582592"; // Это id группы
$arr = array(
'Заявка с ' => $title . ' - ' . $city,
'Имя: ' => $name,
'Телефон: ' => '%2b' . $tel,
'%0AМетка: ' => $metka,
'Страница: ' => $url,
'IP: ' => $ip,
);
foreach($arr as $key => $value) {
$txt .= "".$key." ".$value."%0A";
};
// Пробелы после фигурной скобки надо удалить
$sendToTelegram = fopen("https://api.telegram.org/bot{ $token}/sendMessage?chat_id={ $chat_id}&parse_mode=html&text={ $txt}","r");
};
Комментарии ()