Skip to main content

Communication (Messaging)

Communication is the multi-channel messaging service for the Shift Platform. It supports transactional messaging through Resend (email), Slack, Telegram, WhatsApp, webhook, and custom providers. Apps register against channels, then send messages through them.

Communication admin dashboard

What It Does

  • Channel Management — Create and manage messaging channels with provider-specific configuration.
  • App Registration — Register applications against channels with target addresses and metadata.
  • Message Sending — Send messages through registered channels with delivery tracking.
  • Delivery History — Track message delivery status across all channels and apps.
  • Provider Drivers — Pluggable driver architecture supporting multiple messaging providers.

Key Concepts

ConceptDescription
ChannelA configured messaging endpoint (e.g., a Slack webhook, a Resend domain).
RegistrationAn app's connection to a channel, including a default target address.
DeliveryA record of a sent message with status (accepted/failed) and provider details.
ProviderThe underlying messaging service (resend, slack, telegram, whatsapp, webhook, custom).

Configuration

SettingValue
Storage Directory.communication/
API Dev Port4007
Web Dev Port4107
Gateway Prefix/api/v1/communication/*

Supported Providers

ProviderChannel TypeConfig Keys
ResendEmailapiKey, fromAddress
SlackWebhookwebhookUrl
TelegramBotbotToken, chatId
WhatsAppAPIapiToken, phoneNumberId
WebhookHTTPurl, headers
CustomAnyProvider-specific

Config values support env:VAR_NAME interpolation for secrets (e.g., "apiKey": "env:RESEND_API_KEY").

Getting Started

Create a channel:

shift-cli communication channels create --name slack-alerts --provider slack \
--config '{"webhookUrl": "env:SLACK_WEBHOOK"}'

Register an app:

shift-cli communication register my-app <channel-id> --target "#alerts"

Send a message:

shift-cli communication send my-app --channel-id <channel-id> --body "Deployment complete"