Notifications

Configuring Slack, Discord, webhook, and email notifications for execution events.

Overview

SculptOps can notify your team when executions succeed or fail. Notifications are configured at the organization level and delivered through one or more channels: Slack, Discord, a generic HTTP webhook, and email (SMTP). Each channel has its own on-success / on-failure conditions.

Notification channels

ChannelHow it delivers
SlackIncoming webhook URL
DiscordIncoming webhook URL
Generic webhookAny HTTP endpoint, JSON payload
Email (SMTP)One or more recipient addresses via your SMTP server

Configure channels under Settings → Notifications. For each channel you enable, choose whether it fires on failed runs, successful runs, or both.

SMTP setup

Go to Settings → Notifications → SMTP and fill in your mail server details.

FieldDescription
HostSMTP server hostname
PortUsually 587 (STARTTLS) or 465 (TLS)
Secure (TLS)Enable for port 465
UsernameSMTP auth username
PasswordSMTP auth password (stored encrypted)
From addressSender address, e.g. noreply@yourcompany.com

Click Send test email to verify the configuration before saving.

Common SMTP providers

ProviderHostPortSecure
Gmail (App Password)smtp.gmail.com587false
Gmail (SSL)smtp.gmail.com465true
SendGridsmtp.sendgrid.net587false
Mailgunsmtp.mailgun.org587false
AWS SES (eu-west-1)email-smtp.eu-west-1.amazonaws.com587false
Postmarksmtp.postmarkapp.com587false
Mailhog (local dev)localhost1025false
Tip
For Gmail, you must use an App Password (not your account password) if 2FA is enabled. Generate one at myaccount.google.com → Security → App passwords.

Trigger conditions

Notifications are driven per channel by two toggles:

ConditionWhen it fires
On failureAn execution finishes with a non-zero exit code, is unreachable, or times out
On successAn execution completes successfully (exit code 0)

Enable a channel with only on failure to be alerted about problems without noise from successful runs.

Notification email format

text
Subject: [SculptOps] Deploy app — failed (production)

Playbook:    Deploy app
Inventory:   production
Triggered by: alice@example.com
Started:     2025-01-15 10:31:00 UTC
Duration:    2m 14s
Status:      FAILED (exit code 1)

Last 20 lines of output:
  TASK [restart service] *****
  fatal: [web1]: FAILED! => {"msg": "..."}

View full execution: https://your-instance/executions/exec789