Telegraft

Интеграция

Freshdesk и контакт, у которого нет адреса почты

Интеграция с Freshdesk превращает разговор в Telegram в заявку и передаёт ответы агента обратно клиенту. Freshdesk требует чем-то опознать контакт, а у пользователя Telegram нет почты — поэтому уникальный внешний идентификатор на каждого и есть та деталь, ради которой вся конструкция держится.

Freshdesk — интеграция: доступ, лимиты и доступность

Модель авторизации
Базовая аутентификация
Лимит частоты
Поминутно на аккаунт, зависит от тарифа
Доступность в Заливе
Региональных ограничений нет; регион дата-центра фиксируется при создании аккаунта
Поток данных
5 переходов, через воркер

As of 2025-10-01, Telegram Bot API 13.4

Зачем нужна эта интеграция

Freshdesk встречается в компаниях Залива, которым нужен был хелпдеск без веса корпоративного, и его API это отражает: понятные объекты, предсказуемое поведение и заметно меньше накопившихся за годы понятий, которые надо выучить. Для интеграции с Telegram это правда помогает, потому что интересная работа здесь всё равно в ретрансляции, а не в самой платформе.

Проектное решение тут ровно одно и касается оно опознания контакта. Freshdesk хочет адрес почты или номер телефона, а у пользователя Telegram надёжно нет ни того ни другого. Рабочий подход — уникальный внешний идентификатор, выведенный из идентификатора пользователя Telegram: он даёт устойчивый контакт, не заставляя выдумывать почтовый адрес, с которого потом посыплются отбойники, и не требуя от клиента почту до того, как ему вообще помогли.

Второе решение — как переводить статусы. Статусы Freshdesk что-то значат для команды поддержки и ничего не значат для клиента, поэтому пересылать их дословно — значит писать человеку «ваша заявка теперь Pending», что читается как отписка. Соответствие между внутренним статусом и тем, что говорят клиенту, стоит продумать явно: пропускать статус насквозь по умолчанию хуже, чем не говорить ничего.

Как на самом деле движутся данные

Клиент в чатеTelegramэскалацияВоркер ботавнешний идентификаторКартаконтактов в D1создание заявкиFreshdeskответ приходит через webhookВоркер бота
Внешний идентификатор даёт устойчивый контакт в Freshdesk для пользователя Telegram, у которого нет почты, и избавляет от выдуманного адреса, с которого пошли бы отбойники.

Freshdesk использует базовую аутентификацию HTTP, где именем пользователя выступает ключ API, и этот ключ лежит секретом воркера. Ключ принадлежит учётной записи агента, поэтому берётся отдельный служебный агент, а не живой сотрудник: тогда история заявок правильно относит автоматические действия к интеграции и переживает смену людей в команде.

Модель доступа: HTTP Basic

Их лимиты и что они означают для вас

Лимиты частоты считаются поминутно на аккаунт и зависят от тарифа.

Минутное окно грубее секундного, поэтому всплеск оно проглатывает, а длительную ретрансляцию — нет. Очередь рассчитывают под устойчивую скорость, а не под пик.

Контакт опознают по почте, телефону или уникальному внешнему идентификатору.

Для пользователей Telegram правильный выбор — внешний идентификатор. Выдуманный почтовый адрес даёт контакт, который выглядит заполненным и отбивает каждое автоматическое уведомление.

Статусы заявок настраиваются, и их смысл определяет ваша собственная команда.

Переслать клиенту сырой статус — значит не сказать ничего полезного. Соответствие между внутренним статусом и словами для клиента — осознанное решение о тексте.

Размер вложений ограничен и на заявку, и на отдельную заметку.

Одна фотография, переданная из Telegram, укладывается с запасом. Пачка снимков, которой клиент документирует проблему, может и не уложиться, и бот об этом говорит вслух, а не отваливается молча.

Как это ломается и что происходит потом

Используется выдуманная почта, и автоматические уведомления начинают отбиваться.

Внешний идентификатор снимает проблему целиком. Это самое частое срезание угла при работе с Freshdesk, а последствия приходят предупреждениями о доставляемости, которые никто не связывает с ботом.

Ответы агента возвращаются в заявку через бота по кругу.

Заметки, созданные ботом, помечаются и игнорируются на обратном пути. Та же петля, что и у любой двусторонней ретрансляции, и то же лечение в одну строку.

Приватная заметка уходит клиенту.

Границу пересекают только публичные ответы. Агент пишет приватную заметку в расчёте на приватность, поэтому проверка явная, а не выведенная из оформления.

Статус заявки меняется на тот, который клиент поймёт неправильно.

Слова для клиента берутся из таблицы соответствий, а не пропускаются насквозь. Для команды Pending означает «ждём ответа клиента», а для клиента — «про меня забыли».

Доступность в ОАЭ и остальных странах Залива

Весь мир

Региональных ограничений нет. Регион дата-центра выбирается при создании аккаунта, и его стоит подтвердить там, где важно, где именно лежат данные.

Небольшие и средние команды поддержки

Тот случай, ради которого это и делается, и там же окупается более простая модель объектов по сравнению с тяжёлым хелпдеском.

Действующие клиенты Freshdesk

Единственный случай, когда выбор верный. Заводить хелпдеск ради интеграции с ним — неправильный порядок действий.

Бесплатный и младшие тарифы

Доступ к API и лимиты частоты различаются. Подтвердите их до оценки работ, потому что лимиты формируют устройство ретрансляции.

Когда эту интеграцию делать не нужно

  • Ваша команда ещё не работает в Freshdesk. Интеграция полезная, но хелпдеск ради неё заводить не стоит.
  • Вам нужно автоматическое закрытие заявок. Закрытие — это суждение, а его автоматизация даёт метрики решения, которым никто не верит.
  • У вас некому принимать эскалации. Заявка, которую никто не читает, хуже честного сообщения о том, что вы уже не работаете.
  • У вас несколько обращений в день. Отдельная тема в форуме Telegram закрывает это бесплатно.

На чём это работает

КомпонентВерсияЗачем
Cloudflare WorkerscurrentСоздание заявок, ретрансляция ответов и обработка входящих webhook.
Cloudflare D1currentКарта контактов, связки с заявками и состояние перевода статусов.
Zod4.4Проверка полезной нагрузки webhook и ответов внешнего API.
grammY1.45Разговор с клиентом и передача обращения живому агенту.

Вопросы, которые возникают при оценке

Как завести контакт для человека, у которого нет почты?

Через уникальный внешний идентификатор, выведенный из идентификатора пользователя Telegram. Выдуманная почта даёт контакт, который выглядит заполненным, а потом отбивает каждое автоматическое уведомление, и предупреждения о доставляемости редко связывают обратно с ботом.

Надо ли пересылать клиенту статус заявки Freshdesk?

Только через таблицу соответствий. Для команды поддержки Pending означает «ждём ответа клиента», а для клиента — «про меня забыли», поэтому пропускать сырой статус насквозь хуже, чем не говорить ничего.

Чем это отличается от связки с Zendesk?

Модель объектов проще и накопившихся понятий меньше, поэтому интеграция делается быстрее. У Zendesk глубже автоматизация и отчётность. Если вы уже работаете в одном из них, вопрос снят; если ни в одном — это не повод внедрять ни тот ни другой.

Что удерживает приватные заметки от попадания к клиенту?

Наружу уходят только публичные ответы, и проверка на это явная, а не выведенная из оформления. Агент пишет приватную заметку в расчёте на то, что она останется приватной, и это допущение надо обеспечивать, а не надеяться на него.

Может ли клиент прислать в заявку фотографии?

Да, в пределах ограничений Freshdesk на размер вложений. Один снимок с телефона укладывается с запасом; пачка, которой документируют проблему, может и не уложиться, и бот об этом скажет, а не выбросит часть молча.

Под какой учётной записью должна работать интеграция?

Под отдельным служебным агентом. Ключ API живого сотрудника относит автоматические действия к нему лично и перестаёт работать в день его ухода — обычно в самый неудобный момент.

Что почитать дальше