send-notification
Send a team notification to Slack or Intercom by urgency tier, approval-gated.
Skill by indranilbanerjee
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/indranilbanerjee-send-notification
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: marketing, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/send-notification
What's inside
- Skill name
send-notification- Description
- Send a team notification to Slack or Intercom by urgency tier, approval-gated. "ping the team that the campaign launched"
- License
- MIT
- Instructions
- 60 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# /digital-marketing-pro:send-notification
> **Script location.** If your host does not set `${CLAUDE_PLUGIN_ROOT}`, the scripts are in this plugin's `scripts/` folder, next to `skills/`. Run them with Python 3.10 or newer: `python`, or `python3` where `python` is not found (macOS, many Linux systems).
## Purpose
Send internal team notifications via Slack or Intercom for campaign status updates, performance alerts, approval requests, or general team communication. This command is strictly for internal team messaging — not customer-facing outreach. It provides structured, urgency-aware notifications that keep marketing teams, stakeholders, and collaborators informed about campaign progress, metric thresholds, and pending approvals without requiring them to check dashboards or wait for scheduled reports. Supports tiered urgency with appropriate formatting and mention behavior to balance keeping teams informed without causing alert fatigue.
## 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. Only after the user types `yes`, record it: `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action create-approval --data '{"type":"send-notification","platform":"<platform>","content_summary":"<one line from the Execution Summary>","risk_level":"<tier>"}'`, then `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action approve --id {approval_id}`. If either command errors, stop and report the error; never work around it with another tool. The record proves the approval step ran for this action; it cannot prove who typed `yes`.
5. Execute. A write sent through `connector_executor.py` needs `--approval-id` and fires only against a matching, unused, unexpired record (see `/digital-marketing-pro:execute-action`). A write through a connected MCP server tool is outside that code check: it relies on this typed `yes` and on your host's permission prompt. Afterwards run `python "${CLAUDE_PLUGIN_ROOT}/scripts/approval-manager.py" --brand {slug} --action mark-executed --id {approval_id} --data '{"execution_result":"success"}'` (or `failure`).
## Input Required
The user must provide (or will be prompted for):
- **Notification content**: The message to send — can be a brief status update ("Q1 campaign launched successfully"), a detailed performance alert with metrics ("Bounce rate spiked to 8.2%, up from 2.1% baseline — investigate immediately"), an approval request with action items ("Budget increase needs sign-off by EOD"), or a campaign milestone announcement. Plain text, markdown-formatted sections, or structured data that will be auto-formatted
- **Channel**: `slack` or `intercom` — must have the corresponding MCP server connected. For Slack, specify the target channel name (e.g., #marketing-updates, #campaign-alerts, #leadership-reports) or a direct message recipient username. For Intercom, specify the conversation ID or team inbox name
- **Urgency level**: `info` (standard notification — clean formatting, no special indicators or mentions), `warning` (highlighted with caution indicator — metrics approaching thresholds, deadlines within 24 hours, or issues requiring attention soon), or `critical` (urgent with @here or @channel mention in Slack, priority flag in Intercom — immediate action required for budget overspend, campaign failure, compliance issue, or service outage)
- **Related context (optional)**: Campaign ID, approval ID, report reference, dashboard link, or metric snapshot to attach to the notification — recipients see the relevant context inline without needing to search for it or open another tool
- **Mentions (optional)**: Specific team members to @mention — by Slack username or Intercom team member name. For critical urgency, @here is auto-included unless explicitly overridden by the user. Multiple mentions supported for cross-functional notifications
- **Follow-up action (optional)**: A specific action the recipient should take — "Approve the Q1 budget by 5pm EST", "Review the campaign report and flag issues", "Investigate the bounce rate spike in the newsletter segment" — rendered as a clear call-to-action block in the notification
- **Thread or conversation (optional)**: For Slack, a thread timestamp to reply within an existing thread rather than posting a new top-level message. For Intercom, a conversation ID to continue an existing conversation. Keeps related updates grouped and reduces channel noise
- **Schedule (optional)**: Send at a specific time instead of immediately — e.g., "9am EST Monday" for start-of-week status updates or "after business hours" for non-urgent recaps. If omitted, sends immediately
- **Attachments (optional)**: File paths or URLs to attach — performance charts, campaign screenshots, report PDFs, or dashboard snapshots. Uploaded via the platform MCP as message attachments
## 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. **Format notification by urgency**: Structure the notification content based on urgency level. For `info`: clean standard message with brand name header and timestamp. For `warning`: highlighted block with caution indicator, metric context with threshold comparison, and deadline if applicable. For `critical`: urgent header with action-required flag, @here/@channel mention (Slack) or highest priority flag (Intercom), red indicator, and response deadline. All levels include the brand name, notification type label, and formatted timestamp.
3. **Attach related context**: If a campaign ID, approval ID, metric snapshot, or dashboard link was provided, resolve it to a human-readable summary — campaign name with current status and key metrics, approval details with pending actions and deadline, or metric values with trend indicators and threshold comparisons. Embed this context directly in the notification body so recipients have full situational awareness without leaving the messaging platform.
4. **Format follow-up action**: If a follow-up action was specified, render it as a distinct call-to-action block — visually separated from the notification body with clear action text, owner (mentioned team member or channel), and deadline if specified. In Slack, use a section block with button-style formatting. In Intercom, use a note with action assignment.
5. **Verify messaging MCP connection**: Check which messaging platform MCP is connected — Slack or Intercom — and confirm it matches the user's target channel. Verify the bot has permission to post to the specified channel or conversation, can use @here/@channel mentions if critical urgency is selected, and can upload attachments if provided. If not connected or permissions are insufficient, guide the user to configure the integration with specific permission scopes needed.
6. **Check alert fatigue**: Query recent notification history for the target channel — count notifications sent in the past 24 hours, with breakdown by urgency level. If more than 5 critical notifications or 15 total notifications have been sent to the same channel in that window, warn the user about potential alert fatigue and suggest consolidating updates or adjusting urgency levels downward.
7. **Create approval gate**: Assess notification risk — `low` for info and warning urgency (standard team communication with no channel-wide disruption), `medium` for critical urgency with @here or @channel mentions (interrupts everyone in the channel). Present the notification preview showing formatted content as it will appear in the target platform, mentions, attachments, and urgency formatting for user confirmation.
8. **Send via MCP**: On approval, deliver the notification through the connected Slack or Intercom MCP. For Slack: post to the specified channel with Block Kit formatting (header blocks, section blocks with fields, context blocks for metadata, and action blocks for CTAs), thread reply if thread timestamp specified, and file uploads for attachments. For Intercom: create or reply to a conversation with priority setting matching urgency, internal note for team-only visibility, and attachment uploads.
9. **Log delivery**: Record the notification event with timestamp, platform, channel or conversation target, urgency level, content summary, mentions included, related context references, attachments sent, and delivery confirmation. Update the channel's notification frequency counter for alert fatigue tracking on subsequent sends.
## Output
A structured delivery confirmation containing:
- **Send confirmation**: Notification ID or message timestamp, platform (Slack or Intercom), target channel or conversation, delivery status (sent, scheduled, failed, or queued), and permalink to the posted message where available
- **Formatted preview**: The notification as it appeared to recipients — showing urgency formatting, header and body sections, mentions highlighted, attached context rendered, call-to-action block, and any attachments listed
- **Urgency classification**: The urgency level applied with platform-specific formatting details — info (standard), warning (highlighted with caution indicator), or critical (urgent with @here/@channel or priority flag) — and channel-wide impact assessment
- **Context attached**: Summary of any campaign, approval, metric, or dashboard context embedded in the notification, with source reference IDs for traceability
- **Mentions delivered**: Confirmation of all @mentions and @here/@channel notifications triggered, with recipient count for channel-wide mentions
- **Delivery timestamp**: Exact time the notification was delivered (or scheduled delivery time) with timezone, for coordination tracking and response time measurement
- **Alert fatigue report**: Notification frequency for the target channel in the past 24 hours — total notifications sent, critical count, warning count, info count, and recommendation to consolidate or reduce urgency if volume is elevated
- **Execution log entry**: Timestamped record for audit trail with full notification metadata, delivery confirmation, alert fatigue metrics, and channel activity trend
## Agents Used
- **execution-coordinator** — Urgency-tiered notification formatting with platform-specific rendering (Slack Block Kit with header, section, context, and action blocks; Intercom priority flags and internal notes), related context resolution and inline embedding from campaign and approval data, follow-up action formatting as call-to-action blocks, approval workflow with risk assessment scaled to urgency level and channel-wide mention impact, alert fatigue monitoring with 24-hour rolling window tracking, MCP delivery execution for Slack and Intercom with thread support and attachment uploads, and execution logging with delivery confirmation and channel activity metricsFrom indranilbanerjee/digital-marketing-pro, MIT.
More from indranilbanerjee/digital-marketing-pro
- 0.674score
competitor-monitor
indranilbanerjee
Monitor competitors over time: baseline sites, pricing and ads by script, flag changes.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
credential-switch
indranilbanerjee
Switch the active credential profile to another client, validating keys first, approval-gated.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
campaign-status
indranilbanerjee
Show status of every tracked campaign: health, spend, executions, pending approvals.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
competitor-analysis
indranilbanerjee
Analyze 2-5 competitors once: positioning, content, SEO, ads, pricing.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
continuous-improvement-loop
indranilbanerjee
Run the Part 12 continuous improvement loop into a quarterly brief for leadership.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
counter-narrative
indranilbanerjee
Build a counter-narrative playbook for a competitor's rebrand, category claim or attack.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
analytics-insights
indranilbanerjee
Design the analytics layer with script-backed benchmarks: KPI trees, report templates, MMM, cookieless.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
budget-tracker
indranilbanerjee
Project ad budget pacing by script from live accounts or given numbers: month-end overspend.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
client-report
indranilbanerjee
Write a white-labeled report for one client from tracked data.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
client-validation-document
indranilbanerjee
Produce the Part 5 client validation document: evidence-cited findings for client decisions.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
creative-testing-framework
indranilbanerjee
Plan a creative testing roadmap with script-computed sample sizes.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
crisis-response
indranilbanerjee
Respond to a breaking PR crisis: severity, holding statement, stakeholder messages, timeline.
SkillAFreshness: A★ 909Claude Code +9
Compare and alternatives
Featured in
Signals
- Stars
- 909
- Forks
- 146
- Open issues
- 0
- Last commit (this folder)
- Oct 11, 2026 (16 days ago)
- Last release
- Jul 29, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Website
- indranil.in
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from indranilbanerjee
- 0.674score
campaign-status
indranilbanerjee
Show status of every tracked campaign: health, spend, executions, pending approvals.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
client-report
indranilbanerjee
Write a white-labeled report for one client from tracked data.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
analytics-insights
indranilbanerjee
Design the analytics layer with script-backed benchmarks: KPI trees, report templates, MMM, cookieless.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
budget-tracker
indranilbanerjee
Project ad budget pacing by script from live accounts or given numbers: month-end overspend.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
creative-testing-framework
indranilbanerjee
Plan a creative testing roadmap with script-computed sample sizes.
SkillAFreshness: A★ 909Claude Code +9 - 0.674score
client-validation-document
indranilbanerjee
Produce the Part 5 client validation document: evidence-cited findings for client decisions.
SkillAFreshness: A★ 909Claude Code +9
Cite this page
send-notification skill. Agent Mart. https://agentmart.dev/skills/indranilbanerjee-send-notification (last updated 2026-10-24)