Notification Channels & Templates
Svantic delivers notifications through configurable channels — email, Slack, webhook, SMS, and phone. Each channel has its own message format, delivery mechanism, and capabilities. Templates control how messages are rendered for each channel and event type.Channel Types
Slack
Delivers formatted messages to a Slack channel using the Slack API. Supports interactive buttons for approvals directly within Slack. Best for: Real-time alerts, team-visible approval requests, operational notifications. Capabilities: Block Kit formatting, interactive Approve/Deny buttons, threaded replies, severity-coded emoji indicators. Configuration:Webhook
Delivers a signed JSON payload to any HTTP endpoint. Designed for integration with external systems — PagerDuty, Opsgenie, custom automation, ticketing systems. Best for: System-to-system integration, triggering external workflows, audit logging to external SIEM. Capabilities: JSON payload with full event data, HMAC-SHA256 signature for verification, callback_token for resolution, retry with exponential backoff (3 attempts: 1s, 5s, 30s). Configuration:callback_token allows the receiving system to resolve pending requests without Svantic credentials. POST the token back to the resolve_url with a resolution object.
SMS
Delivers short text messages via Twilio SMS. Best for: Urgent approval requests when approvers are away from their desk, critical alerts that need immediate attention. Capabilities: Short-form messages (160 chars for single segment), deep link to dashboard for resolution. Configuration:Phone
Delivers voice notifications via Twilio outbound calls. Uses text-to-speech (TTS) for the message and DTMF (keypad) input for resolution. Best for: Critical escalations when other channels haven’t been resolved, high-stakes approvals requiring verbal confirmation. Capabilities: TTS message delivery, DTMF input collection (press 1 to approve, 2 to deny), retry on no-answer, voicemail detection. Configuration:In-App
Always enabled, not configurable. Every notification appears in the dashboard’s notification bell. Approval requests appear in the Approvals page.Template System
Templates control how each notification is rendered for each channel. The system uses a master + tenant architecture.Architecture
Template Master (built-in defaults) → seeded on first boot → Tenant Templates (per-tenant, in database) → runtime lookup → Template Registry → fallback chain → Rendered NotificationTemplate Master
The template master contains the default templates for every supported combination of event type and channel type. These are shipped with the platform and represent the recommended notification format. On first boot (database seed): The master templates are written to the root tenant’snotification_templates table. These serve as the source of truth for all future tenant creation.
On tenant creation: The root tenant’s templates are copied to the new tenant. The new tenant immediately has a full set of working templates that can be customized independently.
Template Structure
Each template is identified by three keys:
Template content varies by channel:
Template Variables
Templates can reference variables from the notification context:Template Resolution
When a notification needs to be sent, the Template Registry resolves the template using a fallback chain:- Exact match:
(tenant_id, event_type, channel_type)— tenant has a custom template for this specific event and channel - Category fallback:
(tenant_id, event_category.*, channel_type)— tenant has a template for the event category (e.g.,guard.*catches all guard events) - Default fallback:
(tenant_id, *, channel_type)— tenant’s catch-all template for the channel - Master fallback: If no tenant template matches, use the root tenant’s template (the master)
Editing Templates
Dashboard: Navigate to Settings → Channels → Templates. Select an event type and channel to view and edit the template. A preview pane shows the rendered output with sample data. API:Default Event-to-Channel Mappings
Every new tenant receives the following default notification mappings. These determine which channels are notified for which events:
SMS and phone are never enabled by default — they are opt-in per policy because they are intrusive and incur per-message/per-minute costs.
Mappings are managed through policies. Each policy can link to any combination of channels. The table above reflects the built-in policies that ship with every tenant.
Default Templates by Event Type
Approval Required
Alert (Agent Unhealthy, Dispatch Failed, etc.)
Operation Complete
Informational (Agent Registered, Session Started, etc.)
Creating Channels
Dashboard
Navigate to Settings → Channels and click New Channel. Select the channel type, provide a name and configuration, and save.API
Default Channels
Every new tenant is provisioned with four default channels:
The email channel works immediately — no configuration needed beyond the tenant’s admin email address. Other channels require provider credentials before they can deliver.
Linking Channels to Policies
Channels are linked to policies to control which notifications go where:Delivery Tracking
Every notification delivery is tracked:
View delivery history in Settings → Channels → (select channel) → Delivery Log, or via the API:
Testing Channels
Send a test notification through any configured channel:API Reference
Further Reading
- Long-Running Operations — how agents pause and resume
- Approvals Guide — step-by-step approval walkthrough
- Policies Guide — creating rules that trigger notifications
- Slack Integration — detailed Slack setup instructions
