Repository navigation
feat: add Slack webhook as a contact type - #55
Merged
Merged
Conversation
Add Twilio-based SMS notifications alongside existing email alerts. Contacts now have a type (email or sms) and alerts are dispatched to the appropriate channel when incidents are opened. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Updates to Preview Branch (feature/sms-alerting) ↗︎
Tasks are run on every commit but only new migration files are pushed.
View logs for this Workflow Run ↗︎. |
Replace SMS/Twilio approach with Slack incoming webhooks. When SLACK_WEBHOOK_URL is set, incidents are posted to Slack alongside email alerts. Optional SLACK_MENTION env var for @-mentions. No database changes needed — Slack is a global notification channel configured via environment variables, not per-contact. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contacts can now be email or Slack. Slack contacts store a webhook URL and receive incident alerts via Slack with @channel mentions. No env vars needed — webhook URLs are managed through the settings UI. - Migration adds type and webhook_url columns to contacts - Settings page has email/slack selector with conditional input - Check runner partitions contacts by type, sends to both channels - Removes twilio dependency; Slack uses plain fetch Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Use "Site status alert: new incident" instead of @channel so users can add it to Slack keyword notifications. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Log Supabase errors on contact insert to diagnose staging failures. E2e tests now verify both email and Slack contacts appear in the list with correct type badges, and that both types can be removed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Branch DBs that applied the earlier SMS migration have a phone column and type CHECK for 'sms'. This migration renames phone -> webhook_url and updates the constraint to 'slack'. Idempotent for production. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Only keep the clean slack contacts migration for production. Branch DB can be reset to pick up the correct schema. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Slack contacts now require a label (e.g. "#alerts") that displays in the contact list instead of generic "Slack webhook" text. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
After submitting a Slack contact, the select visually reset but React state stayed as "slack", leaving the wrong inputs visible. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
jasoncrawford
enabled auto-merge
February 24, 2026 05:57
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
@channelmention, alongside email alertsfetchCloses #53
Changes
typeandwebhook_urlcolumns to contacts, makesemailnullableAddContactFormclient component with type selectorsendIncidentSlacksends to webhook URLs with@channel+ incident linkTest plan
🤖 Generated with Claude Code