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

Slack & Discord

Публикуйте читаемые уведомления из B1 прямо в канал Slack или Discord — новые люди, пожертвования, регистрации в группах, отправки форм, события календаря и многое другое. Нет учетной записи третьей стороны, нет Zap для обслуживания: B1 переформатирует события в сообщения чата и отправляет их на URL вебхука канала сам.

Перед началом

  • Вам нужно разрешение Edit Settings в B1Admin
  • Администратор в вашем рабочем пространстве Slack или сервере Discord для создания Incoming Webhook канала
  • Решите, в какой канал вы хотите уведомления (вы можете использовать один и тот же канал для нескольких типов событий или разделить их по каналам)

Как это работает

B1 имеет встроенный Connector Type для платформ чата. Когда вы создаете вебхук с типом Slack или Discord, движок вебхука все еще делает свою обычную доставку + повторные попытки + подписанный заголовок танец, но тело, которое он отправляет, переформатируется из нормального конверта B1 {event,churchId,data} в маленький {text} (Slack) или {content} (Discord) сообщение, которое ожидают эти сервисы.

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

Slack — пошагово

1. Получите URL Slack Incoming Webhook

  1. Откройте api.slack.com/apps в рабочем пространстве Slack, в которое вы хотите уведомления.
  2. Нажмите Create New App → From scratch, назовите его как-нибудь типа "B1 Notifications", и выберите рабочее пространство.
  3. В левом навигация выберите Incoming Webhooks и переключите Activate Incoming Webhooks в On.
  4. Нажмите Add New Webhook to Workspace, выберите канал (например #donations), затем Allow.
  5. Slack возвращает вас на страницу со свежим Webhook URL, который выглядит как https://hooks.slack.com/services/T0XXXXXXX/B0YYYYYYY/zzz…. Скопируйте его — это единственная информация, которая нужна B1.
Осторожно

Относитесь к URL вебхука Slack как к секрету. Любой, у кого есть он, может публиковать произвольные сообщения в канал. Если вы случайно его открыли, пересоздайте его со страницы приложения Slack (пересоздание просто вращает URL; обновите B1 для совпадения).

2. Подключите его в B1Admin

  1. В B1Admin перейдите в Settings → Developer → Webhooks.
  2. Нажмите New Webhook.
  3. Заполните:
    • Name — что-то читаемое, как "Donations → #donations". Только ваша команда видит это.
    • Connector Type — выберите Slack.
    • Payload URL — вставьте URL Slack из шага 1.
    • Events — отметьте события, которые вы хотите как сообщения. Для канала пожертвований просто donation.created. Для канала #people попробуйте person.created и group.member.added.
  4. Нажмите Save. Появляется диалог "Signing Secret" — вы можете его игнорировать для Slack (Slack не проверяет подписи B1) и закрыть.

3. Протестируйте это

Пересоздайте вебхук из списка и нажмите Send Test Event. В течение секунду или двух сообщение, похожее на

💝 New donation: $50.00

появляется в вашем канале Slack, и новая строка появляется в таблице Recent Deliveries на той же экране со статусом succeeded. Вы закончили.

Discord — пошагово

1. Получите URL Discord Webhook

  1. На вашем сервере Discord, наведите на канал, в который вы хотите уведомления, и нажмите ⚙ gear (Edit Channel).
  2. Откройте Integrations → Webhooks → New Webhook.
  3. Дайте ему имя и (опционально) аватар, затем нажмите Copy Webhook URL — выглядит как https://discord.com/api/webhooks/123…/abc….

2. Подключите его в B1Admin

Идентично потоку Slack выше, кроме установки Connector Type на Discord. Вставьте URL Discord в Payload URL и сохраните.

Совет

Вам не нужно добавлять /slack в конец URL Discord — B1 отправляет Discord-native {content} полезные нагрузки, а не Slack-совместимые. Просто вставьте URL, который дал Discord.

3. Протестируйте это

Та же кнопка Send Test Event — Discord показывает сообщение в выбранном канале и журнал доставки переходит в succeeded.

Как выглядят сообщения

СобытиеПример сообщения
person.created👤 New person added: Jordan Rivera
person.updated👤 Person updated: Jordan Rivera
group.created👥 New group created: Tuesday Bible Study
group.member.added➕ Someone was added to a group
donation.created💝 New donation: $50.00
donation.updated💝 Donation updated: $75.00
attendance.recorded✅ Attendance recorded
form.submission.created📝 New form submission received
event.created📅 New event: Easter Service

Полный список находится в каталоге событий вебхука — любое событие там может быть направлено в Slack/Discord.

Один канал на тему

Вам не нужно помещать каждое событие в одно место. Большинство церквей устанавливают несколько вебхуков:

  • Канал #donations, который слушает только donation.created
  • Канал #new-people для person.created и group.member.added
  • Канал #admin-alerts для низкого объема вещей типа form.submission.created

Нет ограничения на количество вебхуков на церковь. Каждый независим — удаление или отключение одного не влияет на других.

Проверка доставок

Таблица Recent Deliveries редактора вебхука показывает последние 50 попыток. Нажмите строку, чтобы увидеть точную полезную нагрузку, которая была отправлена, и ответ, который вернулся. Для соединителя Slack полезная нагрузка это {"text":"💝 New donation: $50.00"} — не сырой конверт {event,churchId,...} — потому что B1 переформатирует его перед доставкой.

Если что-то не удалось (красный значок failed или exhausted), диалог показывает статус HTTP и тело ответа, чтобы вы могли увидеть ровно то, что Slack или Discord не нравилось — обычно ошибка копирования-вставки в URL.

Устранение неполадок

  • Нет сообщения + статус доставки 400 — обычно Connector Type установлен на Standard, но URL это Slack/Discord один. Slack/Discord отвергают сырой конверт. Переключите выпадающее меню на Slack или Discord и повторно отправьте тест.
  • Вебхук автоматически отключен — после 3 последовательных неудачных доставок B1 отключает вебхук. Исправьте URL (или пересоздайте его на Slack/Discord) и переключите Active обратно.
  • Сообщение пришло, но отсутствует деталь — каждая платформа чата ограничивает размер сообщения. Сообщения B1 это однострочники по дизайну; для более богатых уведомлений используйте Zapier или Make для составления полного сообщения Slack через их действия Slack.

Переключение типов соединителей позже

Вы можете изменить Connector Type на существующем вебхуке — это вступает в силу при следующей доставке. Если вы переключаетесь из Slack в Standard, укажите URL на вашу собственную конечную точку HTTPS и тот же секрет подписи (он был выдан при создании вебхука) начинает проверяться как сырой конверт.

См. также

  • Zapier — для многоэтапных рабочих процессов, вызванных событиями B1
  • Make — визуальный конструктор сценариев
  • Webhooks (справка разработчика) — полный формат полезной нагрузки + подпись, если вы когда-либо направите вебхук на свой собственный сервер