PartyFlow

Концепция: Slash Commands#

PartyFlow поддерживает два типа команд:

  • Встроенные/poll, /remind. Реализованы платформой, работают в любом канале без настройки.
  • Кастомные — регистрируются ботом через REST API. При вызове PartyFlow шлёт HMAC-подписанный POST на callback URL бота и публикует ответ в канал. Полный справочник — reference/slash-commands.md.

Встроенные (available)#

/poll#

/poll "Pizza tonight?" "Margherita" "Pepperoni" "Hawaiian"
  • Сегменты в кавычках: первый — вопрос, остальные — варианты (2–10, пустые/пробельные отбрасываются).
  • Поддерживаются "…", «…», “…”.
  • Регистронезависимая: /POLL, /Poll работают одинаково.
  • После публикации опроса клиент-отправитель автоматически расставляет реакции 1️⃣🔟 на bot-сообщение, чтобы голосовать кликом.

/remind#

/remind me "созвон с dev team" in 30m
/remind me "release meeting" at 09:00
/remind @alice "review PR" in 2h
/remind #general "stand-up reminder" at 10:00
  • Получатель — me (себе), @user (другому участнику этого же канала) или #channel (другому каналу в этом же space).
    • @user берётся из обычной системы упоминаний (как в чате — выберите подсказку из автодополнения).
    • #channel ищется регистронезависимо среди каналов, в которых вы участвуете. Если имя не найдено — команда возвращает ошибку "Канал #<name> не найден или у вас нет к нему доступа.".
  • Время — in <N><m|h|d> (макс 30 дней) или at HH:MM в локальной таймзоне отправителя (берётся из его профиля; если HH:MM уже прошло — переносится на завтра).
  • Confirmation сразу пишется в канал, где вызвана команда. В назначенное время приходит сообщение ⏰ Напоминание: "...":
    • для me и @user — в этом же канале;
    • для #channel — в указанный канал.
  • Для @user-напоминаний целевой пользователь получает push.
  • Лимит 50 активных напоминаний на пользователя в space.

Кастомные (available с 2026-04-19)#

Бот регистрирует команду через POST /api/v1/bots/{bot_id}/commands с полями name, description, usage_hint, callback_url. В ответ получает signing_secret один раз — дальше сохраняет его в secret manager.

Bot registers /deploy → https://ci.example.com/slash/deploy
User: /deploy prod
  • PartyFlow шлёт HMAC-подписанный POST на callback_url с payload'ом {command, command_id, args, text, user_id, conversation_id, thread_id, trigger_id, ...}.
  • Headers: X-PartyFlow-Signature: sha256=<hex>, X-PartyFlow-Timestamp, X-PartyFlow-Trigger-Id, X-PartyFlow-Command, X-PartyFlow-Event: slash_command, X-PartyFlow-Webhook-Version: 1.
  • Бот отвечает JSON с response_type: "ephemeral" (только отправителю) или "in_channel" (всем) в течение 3 секунд.
  • Если операция дольше 3 секунд — бот возвращает пустое тело и досылает результат через POST /api/v1/bot/messages с заголовком X-PartyFlow-Trigger-Id (TTL trigger'а — 5 минут, single-use).
  • Interactive buttons / selects / модальные формы в ответе — см. reference/interactive-components.md.

Ограничения:

  • Имя команды — ^[a-z][a-z0-9_-]{0,31}$, уникально в space.
  • Rate limit: 30 вызовов/мин на пользователя × команду + 300 вызовов/мин на команду глобально.
  • Cap: 25 команд на бота, 100 на space. Встроенные (/poll, /remind) не учитываются.

Полный справочник — reference/slash-commands.md.