Skip to Content

Встраивания

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

Нужен пузырёк чата, а не форма? У онлайн-чата свой загрузчик (chat.js) и свой фрагмент кода — см. Онлайн-чат.

Встроить можно три формы:

ФормаЧто делаетТребуется
waitlistСобирает записи в список ожиданияСписок ожидания включён
contactОткрывает переписку во входящих проектаЛичные сообщения Pro
betaПубличная запись в одну бета-программуБета включена, программа активна с публичной записью

Как добавить встраивание

Фрагмент кода для каждой формы генерируется в консоли — скопируйте его и вставьте на свою страницу туда, где должна появиться форма:

  • Список ожидания — раздел Список ожидания проекта, под карточкой настроек
  • Обратная связь — страница Настройки проекта, раздел Встроить форму обратной связи
  • Бета — страница бета-программы, раздел Встраивание

Фрагмент выглядит так:

<script src="https://acme.supdesk.app/embed.js" data-supdesk="contact" data-title="Написать в Acme" data-height="520" async></script> <noscript> <iframe src="https://acme.supdesk.app/embed/contact" width="100%" height="520" style="border:0" title="Написать в Acme"></iframe> </noscript>

Скрипт вставляет форму там, где стоит тег, и меняет её высоту вслед за содержимым — например, когда появляются ошибки проверки или когда после отправки форма сворачивается в короткое подтверждение. Блок <noscript> — это обычный iframe, поэтому форма работает и у посетителей с отключённым JavaScript.

Всё отдаётся с вашего собственного домена портала. Если у вас есть собственный домен, консоль выдаёт фрагменты на нём; иначе используется ваш поддомен *.supdesk.app.

Собственные домены и корневые домены

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

Следить стоит за фрагментом, скопированным до добавления собственного домена. Запросы к вашему прежнему источнику перенаправляются на собственный домен, и загрузчик принимает это перенаправление, только если у них общий корневой домен — например, поддомен портала feedback.apibot.dev и собственный домен www.apibot.dev живут оба на apibot.dev. Если ваш собственный домен находится на другой корневой зоне, перенаправление между доменами не сработает: скопируйте фрагмент из консоли заново, когда собственный домен станет активным.

Атрибуты

АтрибутОбязательныйОписание
data-supdeskдаКакую форму встроить: waitlist, contact или beta
data-programтолько для бетыСлаг бета-программы
data-titleнетДоступное название фрейма. По умолчанию SupDesk form
data-heightнетНачальная высота в пикселях до первой подстройки. По умолчанию 360
data-refнетРеферальный код списка ожидания, которому засчитать запись

На одной странице можно разместить несколько встраиваний — дайте каждому свой тег <script>.

Content Security Policy

Если ваш сайт отправляет заголовок Content-Security-Policy, разрешите источник вашего портала в двух директивах, иначе браузер заблокирует встраивание:

script-src https://acme.supdesk.app; frame-src https://acme.supdesk.app;

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

Защита от спама

Встроенные формы используют ту же защиту, что и портал: у них есть ограничение частоты на посетителя и на проект, а если для проекта настроен Turnstile, проверка появляется и внутри встраивания.

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

Приватность и вход

Встроенные формы никогда не читают и не записывают сессию портала — браузеры по своему устройству не отправляют такие cookie во фрейм на чужой странице. Вместо этого каждое встраивание работает начиная с email: посетитель указывает адрес и получает ссылку письмом.

Из этого следует одна особенность, о которой стоит знать, размещая встраивание: посетитель завершает сценарий в обычной вкладке браузера, а не внутри вашей страницы.

  • Список ожидания — запись фиксируется сразу; в письме приходят позиция и персональная реферальная ссылка
  • Бета — в письме приходит ссылка подтверждения, которая записывает участника
  • Обратная связь — сообщение сразу попадает в ваши входящие; письмо служит подтверждением и позволяет прочитать ваши ответы

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

Что видят посетители

Встраивание показывает только саму форму — без шапки, подвала и навигации портала. Оно наследует фирменный цвет проекта, поэтому ваш акцентный цвет подхватывается без какой-либо работы со стилями.

Встроенные страницы не индексируются поисковыми системами; каноническими и индексируемыми версиями остаются публичные страницы портала.

Старый фрагмент списка ожидания

До появления скрипта-загрузчика встраивание списка ожидания было простым iframe на /waitlist/embed:

<iframe src="https://acme.supdesk.app/waitlist/embed" width="100%" height="360" style="border:0" title="Список ожидания"></iframe>

Он продолжает работать — менять ничего не нужно. Переход на текущий фрагмент даёт автоматическую подстройку высоты; фиксированная height старого iframe — его единственный реальный недостаток.

Last updated on