/send-sms
Send SMS or WhatsApp messages. Use when: deploying marketing messages via Twilio or Brevo with compliance checks.
$ npx -y skills add indranilbanerjee/digital-marketing-pro --skill send-sms --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/send-sms
Context preview
The summary Claude sees to decide when to auto-load this skill.
Send SMS or WhatsApp messages. Use when: deploying marketing messages via Twilio or Brevo with compliance checks.
SKILL.md
send-sms.SKILL.mdname: send-sms
description: "Send SMS or WhatsApp messages. Use when: deploying marketing messages via Twilio or Brevo with compliance checks."
disable-model-invocation: false
argument-hint: "[message-type]"
/digital-marketing-pro:send-sms
Purpose
Send an SMS or WhatsApp marketing message via Twilio or Brevo with mandatory compliance checks, consent verification, quiet hours enforcement, and delivery tracking. SMS and WhatsApp are high-impact, high-risk channels — messages reach personal devices instantly with near-100% open rates, which means compliance failures carry significant legal and reputational consequences. This command enforces every required safeguard before any message leaves the system: TCPA consent for US recipients, GDPR consent for EU, CASL for Canada, opt-out mechanism presence, quiet hours respect, and message length compliance. No message is sent without passing all gates and receiving explicit user approval.
Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system. 2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run. 3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run. 4. Record the approval with `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"risk_level":"<tier>","summary":"..."}'` **before** executing, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action mark-executed --id {approval_id}` after the platform confirms success.
Input Required
The user must provide (or will be prompted for):
- **Message content**: The SMS or WhatsApp message body — must include a clear opt-out mechanism (e.g., "Reply STOP to unsubscribe") for regulatory compliance. WhatsApp messages may include rich media (image, document, video, or location) and must use pre-approved message templates for business-initiated conversations per Meta's policy
- **Recipient(s)**: Phone number(s) in E.164 format (+1XXXXXXXXXX), a named contact list from the brand's audience data, or a segment reference. For bulk sends, provide a CSV file path or list identifier. Each recipient must have documented consent on file
- **Channel**: `sms` or `whatsapp` — determines message length limits (160 chars SMS; WhatsApp: 1,024 chars for template bodies, 4,096 for free-form session messages), media support (text-only SMS vs. rich media WhatsApp), template requirements, and platform-specific compliance rules
- **Sender ID (optional)**: The sender phone number, short code, or alphanumeric sender ID to use — must be registered and verified on the platform. If omitted, uses the brand's default sender configured in the messaging MCP. Alphanumeric sender IDs are not supported in all countries
- **Send time**: `immediate` for instant delivery or a scheduled date and time with timezone (ISO 8601 format). Scheduling must respect quiet hours — no sends between 9pm and 8am in the recipient's local time zone
- **Campaign name (optional)**: For tracking and attribution — links this send to a campaign in the brand's analytics and performance reporting. If omitted, auto-generated from message content and date
- **Personalization fields (optional)**: Dynamic fields to merge into the message — first name, order number, appointment time, loyalty points, or custom variables. Each field requires a fallback default for recipients with missing data (e.g., "Valued Customer" for missing first name)
- **WhatsApp template ID (optional)**: For WhatsApp business-initiated messages, the pre-approved template identifier with variable mappings. Required by Meta for messages sent outside the 24-hour customer service window
- **Priority (optional)**: `normal` (standard delivery queue) or `urgent` (priority delivery for time-sensitive messages like appointment reminders or security alerts). Urgent sends skip scheduling optimization but still enforce all compliance checks
Process
1. **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Apply brand voice, compliance rules for target markets (`skills/context-engine/compliance-rules.md`), and industry context. Also check for guidelines at `~/.claude-marketing/brands/{slug}/guidelines/_manifest.json` — if present, load restrictions. Check for agency SOPs at `~/.claude-marketing/sops/`. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults. 2. **Verify consent compliance**: Check that all recipients have documented opt-in consent for the selected channel. Apply jurisdiction-specific rules — TCPA express written consent for US recipients, GDPR explicit consent with recorded lawful basis for EU, CASL express or implied consent with expiration tracking for Canada. Flag any recipients missing required consent and exclude them from the send with a per-recipient compliance report. 3. **Enforce quiet hours**: Determine each recipient's timezone from phone number country code and area code where deterministic, or from stored audience profile data. Block any immediate sends where the recipient's local time falls between 9pm and 8am. For scheduled sends, verify the scheduled time respects quiet hours in all recipient timezones. Flag conflicts and suggest the nearest compliant send window. 4. **Validate opt-out mechanism**: Scan the message body for a compliant opt-out instruction — "Reply STOP to unsubscribe" or jurisdiction-appropriate equivalent. For WhatsApp, verify the opt-out flow is configured in the business account settings. If missing or non-compliant, reject the send and require the user to add opt-out language before proceeding. 5. **Chec
Read more
name: send-sms description: "Send SMS or WhatsApp messages. Use when: deploying marketing messages via Twilio or Brevo with compliance checks." disable-model-invocation: false argument-hint: "[message-type]"
/digital-marketing-pro:send-sms
Purpose
Send an SMS or WhatsApp marketing message via Twilio or Brevo with mandatory compliance checks, consent verification, quiet hours enforcement, and delivery tracking. SMS and WhatsApp are high-impact, high-risk channels — messages reach personal devices instantly with near-100% open rates, which means compliance failures carry significant legal and reputational consequences. This command enforces every required safeguard before any message leaves the system: TCPA consent for US recipients, GDPR consent for EU, CASL for Canada, opt-out mechanism presence, quiet hours respect, and message length compliance. No message is sent without passing all gates and receiving explicit user approval.
Execution gate (MANDATORY — cannot be skipped)
1. Present the full preview — recipients / spend / changes / compliance — as an **Execution Summary** before touching any live system. 2. The user must type `yes` (or an equivalent explicit approval). ANY other input — ambiguous, implied, partial, or absent approval — cancels the run. 3. Never proceed on ambiguous input. Never auto-retry a failed execution; a failure needs human review before any re-run. 4. Record the approval with `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"risk_level":"<tier>","summary":"..."}'` **before** executing, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action mark-executed --id {approval_id}` after the platform confirms success.
Input Required
The user must provide (or will be prompted for):
- **Message content**: The SMS or WhatsApp message body — must include a clear opt-out mechanism (e.g., "Reply STOP to unsubscribe") for regulatory compliance. WhatsApp messages may include rich media (image, document, video, or location) and must use pre-approved message templates for business-initiated conversations per Meta's policy
- **Recipient(s)**: Phone number(s) in E.164 format (+1XXXXXXXXXX), a named contact list from the brand's audience data, or a segment reference. For bulk sends, provide a CSV file path or list identifier. Each recipient must have documented consent on file
- **Channel**: `sms` or `whatsapp` — determines message length limits (160 chars SMS; WhatsApp: 1,024 chars for template bodies, 4,096 for free-form session messages), media support (text-only SMS vs. rich media WhatsApp), template requirements, and platform-specific compliance rules
- **Sender ID (optional)**: The sender phone number, short code, or alphanumeric sender ID to use — must be registered and verified on the platform. If omitted, uses the brand's default sender configured in the messaging MCP. Alphanumeric sender IDs are not supported in all countries
- **Send time**: `immediate` for instant delivery or a scheduled date and time with timezone (ISO 8601 format). Scheduling must respect quiet hours — no sends between 9pm and 8am in the recipient's local time zone
- **Campaign name (optional)**: For tracking and attribution — links this send to a campaign in the brand's analytics and performance reporting. If omitted, auto-generated from message content and date
- **Personalization fields (optional)**: Dynamic fields to merge into the message — first name, order number, appointment time, loyalty points, or custom variables. Each field requires a fallback default for recipients with missing data (e.g., "Valued Customer" for missing first name)
- **WhatsApp template ID (optional)**: For WhatsApp business-initiated messages, the pre-approved template identifier with variable mappings. Required by Meta for messages sent outside the 24-hour customer service window
- **Priority (optional)**: `normal` (standard delivery queue) or `urgent` (priority delivery for time-sensitive messages like appointment reminders or security alerts). Urgent sends skip scheduling optimization but still enforce all compliance checks
Process
1. **Load brand context**: Read `~/.claude-marketing/brands/_active-brand.json` for the active slug, then load `~/.claude-marketing/brands/{slug}/profile.json`. Apply brand voice, compliance rules for target markets (`skills/context-engine/compliance-rules.md`), and industry context. Also check for guidelines at `~/.claude-marketing/brands/{slug}/guidelines/_manifest.json` — if present, load restrictions. Check for agency SOPs at `~/.claude-marketing/sops/`. If no brand exists, ask: "Set up a brand first (/digital-marketing-pro:brand-setup)?" — or proceed with defaults. 2. **Verify consent compliance**: Check that all recipients have documented opt-in consent for the selected channel. Apply jurisdiction-specific rules — TCPA express written consent for US recipients, GDPR explicit consent with recorded lawful basis for EU, CASL express or implied consent with expiration tracking for Canada. Flag any recipients missing required consent and exclude them from the send with a per-recipient compliance report. 3. **Enforce quiet hours**: Determine each recipient's timezone from phone number country code and area code where deterministic, or from stored audience profile data. Block any immediate sends where the recipient's local time falls between 9pm and 8am. For scheduled sends, verify the scheduled time respects quiet hours in all recipient timezones. Flag conflicts and suggest the nearest compliant send window. 4. **Validate opt-out mechanism**: Scan the message body for a compliant opt-out instruction — "Reply STOP to unsubscribe" or jurisdiction-appropriate equivalent. For WhatsApp, verify the opt-out flow is configured in the business account settings. If missing or non-compliant, reject the send and require the user to add opt-out language before proceeding. 5. **Chec
Your agency just signed a 50-brand client. The previous agency left no playbook. Three brands are bleeding budget, two have stale positioning, one is launching in a regulated jurisdiction next month. Where do you start?
Other skills on digital-marketing-pro.
- /ab-test-plan
Design A/B and multivariate tests. Use when: sample size calculation, testing hypothesis, CRO experimentation.
Open skill - /ad-creative
Generate platform-specific ad copy. Use when: Google RSA, Meta, LinkedIn, TikTok ad variations with quality scoring.
Open skill - /add-integration
Add MCP server integrations. Use when: connecting a custom tool, API, or service to the plugin via .mcp.json.
Open skill - /aeo-audit
Audit AI search visibility. Use when: checking brand presence in ChatGPT, Perplexity, AI Overviews, Gemini.
Open skill - /aeo-geo
Optimize AI engine visibility. Use when: AEO/GEO strategy, citation optimization, entity consistency across AI platforms.
Open skill - /agency-dashboard
Portfolio-level agency dashboard aggregating health metrics across all client brands — campaign status, budget pacing, KPI attainment, team utilization. Use when reviewing cross-brand portfolio health, preparing for agency leadership standups, or getting a single-view snapshot
Open skill

