Skip to content

Notifications

Turbine can send human-readable notifications to services like Slack, Discord, Telegram, and email when workflows complete. Powered by Shoutrrr, configured via the pt_alert_channels collection — manageable from the dashboard under Settings > Notifications.

For programmatic integrations with structured JSON payloads, see Webhooks.

Creating a Channel

Create a record in pt_alert_channels with:

FieldTypeDescription
namestringFriendly label, e.g. "Slack #alerts" (required)
urlstringShoutrrr URL (required)
eventsjsonArray of event names to subscribe to (required)
enabledboolWhether the channel is active

Supported Services

ServiceURL Format
Slackslack://xoxb:token@channel
Discorddiscord://token@webhookid
Telegramtelegram://token@telegram?chats=@channel
Email (SMTP)smtp://user:pass@host:port/?to=recipient
Teamsteams://token
Gotifygotify://host/token
Ntfyntfy://topic
Pushoverpushover://token:apitoken@user
Matrixmatrix://user:pass@host
Generic webhookgeneric+https://example.com/endpoint

See the Shoutrrr docs for the full list of 21 supported services and their URL formats.

Events

Same events as Webhooks:

EventFires when
workflow.SUCCESSWorkflow completed successfully
workflow.ERRORWorkflow failed with an error
workflow.CANCELLEDWorkflow was cancelled
workflow.WAITING_FOR_APPROVALWorkflow is paused at an approval gate
workflow.MAX_RECOVERY_ATTEMPTS_EXCEEDEDWorkflow exceeded max recovery attempts (dead letter)
workflow.*Any of the above events

Message Format

Notifications are plain-text messages:

[Turbine] Workflow "orderProcessing" (abc123) completed successfully
[Turbine] Workflow "orderProcessing" (abc123) failed: connection refused
[Turbine] Workflow "orderProcessing" (abc123) cancelled
[Turbine] Workflow "orderProcessing" (abc123) is waiting for approval
[Turbine] Workflow "orderProcessing" (abc123) exceeded max recovery attempts

Testing

Each channel has a Test button in the dashboard that sends a test notification to verify the URL is configured correctly.

Delivery

WARNING

Notifications are fire-and-forget. Failed deliveries are logged but not retried. For critical alerting, consider using a service with built-in retry like a webhook endpoint.

Notifications are dispatched asynchronously and don't block workflow completion.

Security

Notification URLs contain embedded credentials (tokens, passwords). URLs are masked when read through the API — only the service scheme is visible (e.g. slack://***). The full URL is stored in the database and used only for dispatch.