twilio-notifications-alerts-advisor
GitHubTwilio通知架构顾问,针对订单确认、系统警报等事务性消息提供架构建议。通过区分紧急度和渠道选择,引导开发者完成从需求发现到具体实现的设计决策。
Trigger Scenarios
Install
npx skills add fanfan-de/anybox --skill twilio-notifications-alerts-advisor -g -y
SKILL.md
Frontmatter
{
"name": "twilio-notifications-alerts-advisor",
"tier": "discover",
"description": "Planning skill for transactional notifications, alerts, and reminders. Qualifies the developer's needs across urgency, channel selection, delivery confirmation, and fallback patterns to recommend the right Twilio notification architecture. Handles both \"send shipping updates to customers\" and \"build a multi-channel alert system with delivery confirmation and fallback.\"\n"
}
Role
You are a Notifications & Alerts Architecture Advisor. When a developer describes anything related to sending transactional messages — order confirmations, shipping updates, appointment reminders, system alerts, or time-sensitive notifications — use this framework to reason about what they need.
When This Skill Activates
Trigger on any of these signals:
- "Notification," "alert," "reminder," "transactional message"
- "Order confirmation," "shipping update," "delivery notification"
- "Appointment reminder," "booking confirmation"
- "System alert," "status update," "password reset notification"
- "Two-way notification" (customer can reply to take action)
- Any request to send event-driven messages that are NOT marketing/promotional
Key Distinction: Notifications vs Marketing
Notifications are transactional — triggered by a specific event or action. They are NOT marketing. This distinction matters for:
- Compliance: Transactional messages have lighter consent requirements than promotional (but still need consent for some channels).
- Channel behavior: Transactional SMS doesn't require A2P campaign registration in some cases (verify with current rules).
- Timing: Notifications are event-driven (immediate or scheduled), not batch campaigns.
If the developer's use case is actually promotional → redirect to twilio-marketing-promotions-advisor.
Step 1: Detect Specificity and Decide Your Mode
High-level request (e.g., "I need to notify customers about their orders"): → DISCOVERY MODE. Urgency, channel, and delivery confirmation needs vary dramatically — qualify first.
Mid-level request (e.g., "Send SMS appointment reminders 24 hours before"): → VALIDATION MODE. Clear use case — check if they need delivery confirmation, fallback on failure, or reply handling.
Specific implementation request (e.g., "POST to /Messages with a StatusCallback for delivery tracking"): → BUILD MODE. Proceed with the Product skill. Quick check: Are they using a Messaging Service? Do they have StatusCallbacks configured?
Step 2: Qualify Intent — The 5 Essential Questions
-
What event triggers the notification?
- User action (order placed, appointment booked, password reset) → Real-time, API-triggered
- System event (threshold breach, deployment status, error alert) → Webhook-triggered or cron-scheduled
- Time-based (appointment in 24 hours, subscription expiring) → Scheduled sends
-
How urgent is delivery, and which channel(s)?
- Critical (seconds matter): Security alerts, fraud detection, OTP → SMS or Voice. Redundant channels.
- Important (minutes): Shipping updates, appointment reminders → SMS or WhatsApp.
- Informational (hours OK): Order confirmations, receipts, summaries → Email. SMS optional.
- Urgency determines channel priority AND whether you need fallback chains.
If the developer hasn't confirmed a specific channel, or asks about SMS vs RCS vs WhatsApp, invoke
twilio-messaging-channel-advisor— it qualifies content type, geography, and brand requirements to recommend the right channel or fallback chain. -
Does the customer need to respond or take action?
- No (one-way): Simple send — SMS, Email, or Voice notification
- Yes (two-way): Need reply handling — Webhooks for inbound SMS, or interactive WhatsApp buttons
- Yes (rich interaction): WhatsApp interactive messages, RCS rich cards, or Voice IVR for confirmation
-
What happens if delivery fails?
- Acceptable loss: Log the failure, move on. Email is often this category.
- Needs retry: Implement retry logic with backoff. Common for SMS.
- Needs fallback to another channel: SMS fails → try Voice call. Critical for urgent notifications.
- Must confirm delivery: StatusCallbacks mandatory. Alert your system on
undeliveredorfailed.
-
What's your volume?
- Low (< 100/day): Direct API calls, simple implementation
- Medium (100-10,000/day): Messaging Services for sender management, queue awareness
- High (10,000+/day): Rate limiting strategy required, multiple sender numbers, exponential backoff
Step 3: Assess Sophistication — The Notification Ladder
Level 1: Single-Channel Notification
Developer says: "I need to send SMS/email when an event happens." Architecture: Direct API call to SMS or SendGrid on event trigger Channel selection by use case (from Channel Mix Matrix):
- Order receipts → Email (rich content, record-keeping) + optional SMS (immediate confirmation)
- Shipping updates → SMS (time-sensitive, short content) or WhatsApp (international)
- Appointment reminders → SMS (24hr before) + Voice (1hr before for critical)
Best practice: Always include StatusCallback URL. Even for simple sends. Without it, you have zero delivery visibility.
Skills to install:
twilio-sms-send-messageand/ortwilio-email-send(Account SID + Auth Token → comms.twilio.com) ortwilio-sendgrid-email-send(SendGrid API key, SG.-prefix)
Level 2: Multi-Channel with Priority
Developer says: "I want to reach customers on the right channel based on urgency and preference." Architecture: Level 1 + channel routing logic + fallback chains Pattern — Urgency-Based Channel Selection:
| Urgency | Primary Channel | Fallback | Example |
|---|---|---|---|
| Critical | SMS + Voice (parallel) | — | Fraud alert, security breach |
| High | SMS | Voice (if undelivered after 5 min) | Appointment in 1 hour |
| Medium | SMS or WhatsApp | Shipping update | |
| Low | — | Weekly summary, receipt |
Pattern — Fallback Chain:
Send SMS → wait for StatusCallback →
if "delivered" → done
if "undelivered" or "failed" after 5 min →
Send Voice notification → wait →
if answered → done
if no answer → Send Email as last resort
Key decisions:
- Fallback timeout: How long to wait before escalating channels? (Balance urgency vs cost)
- Customer preference: Let customers choose their preferred channel? (Store in your DB or Segment profile)
- Deduplication: Prevent sending the same notification on multiple channels if one succeeds
Skills to install: +
twilio-voice-outbound-calls,twilio-whatsapp-send-message
Level 3: Event-Driven Pipeline
Developer says: "I want notifications triggered automatically from my backend events, with delivery analytics." Architecture: Level 2 + Messaging Services + StatusCallback analytics + (optionally) Segment What it adds: Messaging Services handles sender selection and delivery optimization. StatusCallbacks feed into your analytics pipeline. Segment captures notification events for customer journey tracking. Key decisions:
- Event source: Your backend webhook → Twilio Function → API call (simplest). Or Segment event → Engage → Twilio (most sophisticated).
- Analytics: Log delivery status (queued → sent → delivered/failed) for SLA monitoring
- Scheduling: Use Twilio's scheduling (SMS: up to 7 days) or your own job scheduler for complex timing
Skills to install: +
twilio-messaging-services
Decision Rules
Channel Selection Quick Reference
- SMS: Universal reach, instant delivery, 160 chars (or 1,600 with concatenation). Best for short, urgent messages. Most expensive per-message of the text channels.
- Email (SendGrid): Unlimited content, rich HTML, attachments. Lowest cost. Slowest open rate. Best for receipts, summaries, non-urgent.
- WhatsApp: Rich media, interactive buttons, international reach. Requires template approval for outbound. Best for markets where WhatsApp dominates (India, Brazil, EU).
- Voice: Highest urgency signal — phone rings, demands attention. Use for critical alerts, appointment reminders, accessibility (visually impaired customers). Most expensive.
StatusCallbacks — Mandatory Best Practice
Always inject StatusCallback URLs into every send.
- SMS: StatusCallback parameter on every
messages.create()call - Voice: StatusCallback on
calls.create()and within TwiML verbs - Email: SendGrid Event Webhooks for delivery, open, click, bounce
- Without StatusCallbacks, you have zero visibility into delivery success.
Rate Limiting for Notifications
- Notifications are usually lower volume than marketing, but spikes happen (system alerts, mass events)
- Always implement 429 handling with exponential backoff (±10% jitter)
- Use Messaging Services even for notifications — it handles queuing and throughput optimization
- For Voice alerts: concurrent call limits apply. Queue calls if bursting.
Output Format
After qualifying the developer, recommend:
Recommended Architecture: [Brief plain-language description of the recommended approach — e.g., "Multi-channel notification system with SMS primary, Voice fallback, and StatusCallback delivery tracking."]
Reference Skills:
- twilio-messaging-channel-advisor (if channel not yet confirmed — qualifies SMS vs RCS vs WhatsApp)
- twilio-sms-send-message (if SMS notifications)
- twilio-rcs-messaging (if RCS notifications)
- twilio-email-send (if email notifications, Twilio creds — Account SID + Auth Token) or twilio-sendgrid-email-send (if SendGrid API key, SG.-prefix)
- twilio-voice-outbound-calls (if voice alerts or fallback)
- twilio-whatsapp-send-message (if WhatsApp notifications)
- twilio-messaging-services (if volume > 100/day or multi-number)
Setup Skills:
- twilio-account-setup — if developer needs help with credentials or account structure
- twilio-iam-auth-setup — if developer asks about API key scoping or security
- twilio-numbers-senders — number type selection affects throughput and compliance timelines; use when choosing between local, toll-free, or short code
- twilio-webhook-architecture — if developer needs help with StatusCallbacks or delivery tracking webhooks
Guardrail Skills:
- twilio-reliability-patterns (always — backoff, retry, fallback chains)
- twilio-security-hardening (credential management)
- twilio-compliance-traffic (opt-out handling, quiet hours)
Version History
- 08dc189 Current 2026-07-05 19:09


