Перед началом
Убедитесь, что у вас есть:
- Доступ администратора к аккаунту Exely объекта (secure.exely.net.tr или региональная панель Exely).
- Аккаунт Manager или Admin в Misfora для компании, которой принадлежит объект.
- Property ID объекта в Exely — числовой идентификатор, который понадобится позже в Misfora.
Создание API-соединения в Exely
Всё в этой части происходит в панели Exely.
Откройте API Connections
Войдите в панель Exely и откройте API Connections.
Создайте новое соединение
Нажмите + Create connection.
Назовите соединение
Дайте соединению понятное имя, например:
Alanya Hotel
Понятное имя облегчит различение соединений в будущем — особенно если один и тот же объект Exely подключён к нескольким компаниям в Misfora.
Включите доступ PMS API
Убедитесь, что у соединения включён доступ PMS API.
Некоторые API-соединения Exely создаются с ограниченными правами (например, только Content API). В этом случае Misfora сможет пройти аутентификацию, но не сможет читать или обновлять брони — шаг Test connection в Misfora явно об этом сообщит.
Сохраните
Включите соединение
Переключите соединение в положение On. Отключённые соединения не могут пройти аутентификацию в Misfora.
Скопируйте API-данные
Откройте только что созданное соединение и скопируйте:
client_idclient_secret
Оба значения понадобятся в Части B.
Настройка вебхука
Создайте вебхук
В том же API-соединении откройте раздел Webhooks и создайте новый вебхук, указывающий на:
https://misfora.com/reservations/webhook/exely
Этот адрес общий для всех компаний и объектов Misfora — входящие запросы Misfora идентифицирует самостоятельно, отдельный URL вебхука на каждый объект не нужен.
Пока оставьте поле аутентификации пустым
Exely запросит значение для аутентификации (обычно называется API-KEY). Пока оставьте это поле пустым — нужное значение вы сгенерируете в Части B, шаг 19, а затем вернётесь сюда и вставите его в Exely.
Подпишитесь на события бронирования
Подпишите вебхук на все события ниже:
webpms:create_bookingwebpms:update_bookingwebpms:cancel_bookingwebpms:check_in
Названия событий могут немного отличаться между аккаунтами Exely — подпишитесь на все доступные события жизненного цикла брони.
Сохраните
Подключение объекта в Misfora
Всё в этой части происходит в панели Misfora.
Войдите в Misfora
Войдите в панель Misfora компании, которой принадлежит объект.
Откройте настройки Misfora
Откройте Guest Table объекта и нажмите ⚙ Exely на верхней панели.
В панели Misfora Module Settings:
Property
Убедитесь, что редактируете нужный объект, если у компании их несколько.
Часовой пояс объекта
Выберите местный часовой пояс объекта. Exely отправляет время заезда и выезда без указания часового пояса — Misfora использует эту настройку, чтобы корректно пересчитать эти метки времени. При неверно выбранном поясе время бронирований сдвинется на соответствующее смещение UTC.
Автоматическая доподгрузка
Оставьте Automatic backfill включённым. Exely отправляет вебхуки не для каждого обновления брони — например, добавление гостя в существующую бронь не вызывает вебхук. Автоматическая доподгрузка периодически пересинхронизирует брони, чтобы такие изменения всё равно попадали в Misfora.
Введите Property ID
В поле Property ID введите числовой Property ID из Exely.
Это значение не конфиденциально — это просто идентификатор объекта внутри Exely.
Введите данные API
В разделе API Connection вставьте client_id и client_secret из Части A, затем нажмите Save.
Скопируйте секрет вебхука
После сохранения Misfora сгенерирует Exely Webhook Secret. Нажмите Copy, затем вернитесь к вебхуку, который вы создали ранее в Exely (Часть A, шаг 9), и вставьте это значение в поле API-KEY / Authentication.
Этот секрет позволяет Misfora убедиться, что входящие запросы вебхука действительно отправлены вашим аккаунтом Exely. Без него любой, кто узнает URL вебхука, мог бы отправлять поддельные события о бронях.
Вставка секрета вебхука Misfora в поле Key вебхука Exely.
Проверьте соединение
Нажмите Test connection. Вы увидите один из следующих результатов:
client_id и client_secret скопированы верно, что нет лишних пробелов до или после значений, и что API-соединение включено в Exely.
Проверка интеграции
- Импортируйте тестовую бронь. Создайте тестовую бронь в Exely (или используйте существующую), затем либо дождитесь следующей автоматической доподгрузки, либо нажмите ⇩ Pull Bookings from PMS в Misfora для немедленной синхронизации.
- Проверьте импортированные данные. Убедитесь, что бронь появилась в Guest Table с верным именем гостя, датой заезда, датой выезда, размещением и статусом брони.
Если всё выглядит верно — интеграция завершена.
См. как Misfora автоматизирует регистрацию гостей в KBS — что такое KBS, кому она нужна, и как она связана с процессом заселения выше.
Известные ограничения API Exely
Перечисленное ниже — ограничения публичного API Exely, а не самой Misfora. Понимание этих особенностей поможет избежать путаницы в повседневной работе.
Почему имена гостей не обновляются в Exely?
Публичный API Exely не предоставляет метод для обновления имени или фамилии гостя. Единственные связанные с гостем поля, которые сейчас можно обновить — это данные документа (номер, дата выдачи, срок действия, орган выдачи) и страна рождения.
Из-за этого ограничения Misfora никогда не может записать исправленное имя гостя обратно в Exely — имя гостя, хранящееся в Exely, всегда считается источником истины. Если OCR в Misfora распознаёт более точное написание по паспорту, это исправление остаётся только внутри Misfora и автоматически не появится в Exely.
Чтобы исправить имя гостя, обновите его вручную в панели Exely. Это ограничение исходит от API Exely и не может быть обойдено со стороны Misfora.
Можно ли использовать одно соединение Exely для нескольких компаний?
Один и тот же физический объект можно подключить к нескольким компаниям в Misfora, но у каждой интеграции должно быть своё собственное API-соединение Exely, свой client_id, свой client_secret и свой секрет вебхука.
Misfora определяет входящие запросы вебхука по секрету вебхука, а не исходя из предположения, что у каждого объекта только одна интеграция — не используйте одни и те же данные API для нескольких объектов в Misfora.
Почему моя бронь не появляется сразу?
Полезная нагрузка вебхука Exely содержит только идентификатор брони и Property ID — она никогда не содержит имена гостей, контактные данные или данные паспорта. Получив вебхук, Misfora автоматически запрашивает полную бронь через API Exely.
Если Exely временно недоступен в момент получения вебхука, данные брони синхронизируются при следующей автоматической доподгрузке или после ручной операции Pull Bookings from PMS.
Сколько живут OAuth-токены Exely?
Токены доступа OAuth в Exely действительны примерно 30 минут. Misfora обновляет их автоматически в фоне, никаких действий от пользователя не требуется. Если вы работаете с API Exely напрямую, вне Misfora, учитывайте этот срок действия при отладке или тестировании.
Можно ли заселить гостя раньше даты заезда?
Нет. Exely не позволяет заселить бронь раньше запланированной даты заезда. При попытке вернётся ошибка вида:
Planned check-in date has not yet arrived
Actual and planned check-in dates must match
Это ограничение накладывает Exely. Если гость приезжает раньше, бронь останется в состоянии "до заезда" вплоть до запланированной даты заезда.