Slack Notifications
Send Godwit Sync run summaries to Slack
Point --notify at a Slack incoming webhook to post a run summary the moment a scheduled sync or backup finishes or fails.
Create a Slack incoming webhook
Slack's Incoming Webhooks app turns a URL into a channel post. Godwit Sync needs only the URL it gives you.
- In Slack, create a Slack app (or reuse an existing one) from your Slack apps dashboard and select the workspace to install it in. (Slack's legacy App Directory "Incoming Webhooks" app still works if your workspace has it, but Slack now recommends this app-based flow for new integrations.)
- Activate incoming webhooks, then click "Add New Webhook to Workspace".
- Pick the channel that should receive run summaries and authorize the app.
- Copy the generated webhook URL (https://hooks.slack.com/services/...).
Point Godwit Sync at the webhook
--notify accepts any HTTP or HTTPS endpoint. Slack's incoming webhooks accept Godwit Sync's payload directly, since it already carries a top-level text field.
godwit sync \
--source ./data \
--destination s3://backups/nightly \
--notify https://hooks.slack.com/services/T000/B000/XXXXXXXXXXXXsource:
url: ./data
destination:
url: s3://backups/nightly
hooks:
notify:
- https://hooks.slack.com/services/T000/B000/XXXXXXXXXXXXCombine --notify with a scheduled job so unattended runs post to Slack without anyone watching a terminal.
What lands in the channel
Slack renders the payload's top-level text field as the message body and ignores the structured fields alongside it.
Godwit run `nightly-backup` completed: 142 objects (5.0 GiB) transferred in 47s, 0 failuresGodwit run `nightly-backup` failed: 12 objects (1.1 GiB) transferred in 9s, 3 failures: context deadline exceededThe exact error text after the second colon comes from whatever failed; the format around it is fixed.