Перейти к содержимому
FormFlow

Публикуйте отправки в канале Microsoft Teams или Discord

Добавьте конечную точку вебхука на вкладке «Доставка» формы, выберите «Сообщение Teams» или «Сообщение в Discord» и вставьте адрес вебхука, которым вы владеете. Это формат полезной нагрузки, а не нативная интеграция с Teams или Discord.

Эта статья переведена машинным способом. Читать оригинал на английском

A dark plate titled 'Post Submissions to a Microsoft Teams or Discord channel', listing a webhook endpoint set to Teams message or Discord message, the Form's name and up to five answers, answers as plain text, and a link to the Submission.

FormFlow может публиковать короткое сообщение в канале Microsoft Teams или Discord каждый раз, когда форма получает отправку. Он делает это через конечную точку вебхука — тот же механизм, что пересылает отправки на любой принадлежащий вам URL; отличается только выбор в поле «Отправлять как». Это не нативная интеграция с Teams или Discord: не нужно устанавливать приложение, и нет выбора канала. Вы вставляете адрес вебхука, а FormFlow отправляет на него сообщение в формате, который ждёт этот сервис. Версия этой настройки для Slack описана в статье Отправка отправок в Slack через вебхук. Форматы для Teams и Discord появились вместе в релизе v1.73.12.

Что понадобится заранее

  • Форма в вашей команде, которую вы можете редактировать.

  • Для Teams: рабочий процесс Teams, созданный из шаблона "Post to a channel when a webhook request is received", с параметром "Who can trigger", установленным в "Anyone". Создайте его в Teams по документации Microsoft; эта статья описывает только сторону FormFlow.

  • Для Discord: URL вебхука из настроек «Интеграции» вашего канала. Каналы форумов и медиаканалы не поддерживаются.

  • Адрес https. FormFlow отказывается от обычного http для конечных точек вебхуков.

Добавьте конечную точку

  1. Откройте форму и перейдите на вкладку «Доставка».

  2. Найдите «Конечные точки вебхуков» и выберите «Добавить конечную точку».

  3. В поле «Отправлять как» выберите «Сообщение Teams» или «Сообщение в Discord». По умолчанию выбрано «FormFlow JSON (с подписью)», поэтому этот выбор и есть вся разница между конечной точкой чата и обычным вебхуком.

  4. Поле URL теперь называется «URL входящего вебхука». Вставьте в него URL рабочего процесса Teams или URL вебхука Discord. При вводе поле маскируется, и вы можете показать его, чтобы проверить, что вставили.

  5. Оставьте «Доставка» включённой. По умолчанию она включена; выключите её, чтобы прекратить доставку на эту конечную точку.

  6. Сохраните форму.

Вспомогательный текст под «Отправлять как» подсказывает, какой адрес вставлять для выбранного формата, и сообщает, что адрес хранится в зашифрованном виде и никогда не отправляется обратно по электронной почте. Свёрнутая строка конечной точки называет формат, а не выводит адрес, поэтому URL не лежит открытым текстом по всей странице.

Отправьте тест

В каждой строке конечной точки есть действие «Отправить тест». Оно публикует одну строку, "FormFlow test — submissions from this form will arrive here.", на адрес из этой строки: в Teams в виде карточки, в Discord в виде сообщения. Если запрос выполнен успешно, вы увидите «Тестовое сообщение доставлено.»; если нет — «Не удалось доставить тестовое сообщение.» с текстом ошибки самого получателя, обрезанным до 300 символов.

Teams принимает запрос до запуска своего рабочего процесса, поэтому «Тестовое сообщение доставлено.» означает, что Teams принял запрос, а не что карточка уже появилась. Проверьте канал после первой тестовой отправки.

Действуют два условия. Сначала сохраните форму: конечную точку, которая ни разу не сохранялась, протестировать нельзя, и действие скажет вам об этом. И каждый человек может отправить 20 тестовых доставок в час, считая неудачные. Тест — это кнопка, а не шлагбаум: конечная точка доставляет отправки независимо от того, нажимали ли вы её.

Что приходит в канал

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

В Teams

  • Карточка, первая строка которой — "New submission — " и название формы.

  • До пяти ответов, по одному в строке, у каждого жирная подпись и значение.

  • Строка вроде "and 3 more fields", если в форме больше пяти ответов.

  • Кнопка View submission, которая открывает отправку в вашей панели.

Каждый ответ, каждая подпись и название формы отправляются обычным текстом. Teams отображал бы markdown в заголовке или в списке фактов, поэтому FormFlow не использует их ни для чего, что ввёл заполнявший форму: он не может добавить в карточку ссылку. Упоминания тоже никогда не отправляются, так что <at> в ответе никого не уведомит. Подписи, значения и название формы обрезаются каждое до 200 символов.

В Discord

  • Первая строка жирным: "New submission — " и название формы.

  • До пяти ответов, по одному в строке, у каждого жирная подпись и значение.

  • Строка курсивом вроде "and 3 more fields", если в форме больше пяти ответов.

  • В конце ссылка View submission, которая открывает отправку в вашей панели.

Символы markdown в ответе экранируются, поэтому заполнявший форму не может создать жирную подпись, заголовок, скрытую ссылку или блок кода. Сообщение просит Discord не разрешать ни одного упоминания, так что ответ с @everyone никого не уведомит, и просит не показывать предпросмотр ссылок. Discord отклоняет сообщения длиннее 2000 символов; FormFlow сокращает ответы до этого предела, поэтому ссылка на отправку сохраняется. Вот текст, который FormFlow отправляет для формы с двумя ответами:

**New submission — Contact form**

**Name:** Ada Lovelace
**Message:** Can you send a quote

[View submission](<link to the Submission in your panel>)

В обоих сервисах пробельные символы внутри значения сворачиваются, поэтому значение всегда занимает одну строку.

Ограничения, о которых стоит знать

  • Только в одну сторону. FormFlow отправляет; ничто из Teams или Discord не возвращается в FormFlow.

  • Не больше пяти ответов, по 200 символов каждый. Чтобы увидеть отправку целиком, используйте ссылку или входящие отправки.

  • Teams и Discord игнорируют подпись. Каждый формат вебхука подписывается, но ни один из этих сервисов её не проверяет, поэтому для таких конечных точек нет секрета подписи, который можно скопировать.

  • Отправки, которые FormFlow относит к спаму, не пересылаются. На конечную точку вебхука попадают только принятые отправки, не являющиеся спамом.

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

  • Каналы форумов и медиаканалы Discord не поддерживаются.

  • Адрес — это учётные данные. Любой, у кого есть URL рабочего процесса Teams или вебхука Discord, может публиковать в этом канале. Обращайтесь с ним как с паролем и создайте новый в Teams или Discord, если он утёк.

Что это не решает

Это не выбирает ваш канал и не управляет за вас Teams или Discord: вставленный адрес определяет, куда попадают сообщения, а настраивается он в самом сервисе. Это не делает чат вашим почтовым ящиком; чтение, поиск и экспорт отправок остаются в FormFlow. И сообщение не является копией данных. Если вам нужны все поля в виде структурированных данных, добавьте вторую конечную точку с форматом по умолчанию FormFlow JSON, как описано в статье Отправка отправок на вебхук и повтор того, что получатель пропустил.

Направьте вашу первую форму на FormFlow.

Не нужно создавать бэкенд и размещать фронтенд.

Начать бесплатно