Telegraft

Интеграция

Calendly, когда правила расписания уже живут в другом месте

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

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

Модель доступа
OAuth 2.0
Кто владеет правилами
Доступностью, буферами и маршрутизацией владеет Calendly — тонкого управления API не даёт
Доступность в Заливе
Без региональных ограничений; доступ к API определяется тарифом
Поток данных
5 переходов, всё через воркер

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

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

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

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

Честное ограничение здесь одно: это не запись в Telegram. Человек уходит из чата, проходит веб-форму и возвращается, и на каждом таком переходе теряется какая-то доля людей. Для деловой встречи с мотивированным собеседником потеря невелика, а сэкономленная сложность значительна. Для розничного клиента, записывающегося на стрижку, размен неудачный: сценарий целиком внутри чата конвертирует заметно лучше.

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

Лид в перепискеTelegramквалификацияВоркер ботассылка с подстановкойСтраницаCalendlyподписанный вебхукВоркер ботапривязка к лидуЗапись в D1
Ссылка на запись несёт в себе то, что бот уже знает, поэтому имя и почту у человека не спрашивают во второй раз.

Персональный токен доступа, если интеграция обслуживает одну организацию, или OAuth, если бот работает с несколькими аккаунтами Calendly. Токен лежит в секретах воркера. Подписки на вебхуки создаются через API, а их ключ подписи проверяется на каждой доставке: непроверяющий эндпоинт примет и выдуманное событие о бронировании.

Модель доступа: OAuth 2.0

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

Calendly владеет доступностью, буферами, сроками предупреждения и маршрутизацией, и API не даёт тонкого управления ими.

Это передача, а не движок бронирования. Там, где требование звучит как правила записи под контролем бота, Calendly — неподходящий компонент.

Подписки на вебхуки создаются через API и привязаны к пользователю или к организации.

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

Параметры предзаполнения подставляют данные в форму записи, но не отменяют саму форму.

Человек всё равно заполняет форму, а подстановка снижает трение, а не убирает шаг. Подавать это как запись в одно касание — значит обещать больше, чем происходит.

Лимиты частоты обращений к API считаются на токен и невелики.

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

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

Человек записался, а бот больше ни разу об этом не вспомнил.

Отсутствующая или просроченная подписка на вебхук. Её проверяют при запуске, потому что симптом неотличим от потерявшего интерес собеседника.

У человека спрашивают то, что бот уже знал.

Параметры предзаполнения не были переданы. Мелочь, которая читается как две несговорившиеся системы, — собственно, это они и есть.

Отмена происходит в Calendly, а бот по-прежнему ждёт встречу.

Подписка оформляется и на отмену, и на перенос, а не только на создание. Обработка одного лишь события записи оставляет бота уверенно заблуждающимся.

Значительная доля подготовленных людей так и не доводит запись до конца.

Передача стоит вам конверсии. Это измеримо, и там, где потеря существенна, ответ — сценарий записи внутри чата, а не более удачная ссылка.

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

Весь мир

Региональных ограничений нет. Доступ к API зависит от тарифа, а вебхуки требуют платного плана.

Запись на деловые встречи

Сильный сценарий. Мотивированный собеседник теряет немного на короткой веб-форме, а сэкономленная сложность вполне реальна.

Запись розничных клиентов

Плохо подходит. Каждый выход из переписки стоит доведённых до конца записей, а сценарий внутри чата конвертирует ощутимо лучше.

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

Вебхуков нет, значит бот не может узнать, что именно забронировали. А это убирает бóльшую часть смысла интегрироваться вообще.

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

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

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

КомпонентВерсияЗачем
Cloudflare WorkerscurrentСборка ссылок, проверка подписи вебхуков и контроль подписок.
Cloudflare D1currentБрони, привязанные к лидам, и учёт доведённых до конца передач.
Zod4.4Проверка содержимого вебхука уже после сверки подписи.
grammY1.45Квалификация, передача и разговор после неё.

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

Это запись внутри Telegram?

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

Почему бы не собрать правила расписания прямо в боте?

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

Почему бот иногда не знает, что встречу назначили?

Подписка на вебхук отсутствует или просрочена. Её проверяют при запуске именно потому, что симптом — тишина после передачи — неотличим от человека, который просто потерял интерес.

Нужен ли нам платный тариф Calendly?

Ради вебхуков — да. Без них бот не узнаёт, что забронировали, и интеграция сводится к отправке ссылки, которую бот отправит и вовсе без всякой интеграции.

Что происходит, если встречу отменяют?

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

Как понять, что передача обходится нам дорого?

Измерить её. Считается доля подготовленных людей, доводящих запись до конца, и там, где потеря существенна, честная рекомендация — заменить передачу сценарием внутри чата, а не продолжать улучшать ссылку.

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