Main Site โ†—

notification-system

by OneKeyHQ2.3k476GitHub

Documents OneKey push notification system across platforms. Use when implementing notification features, handling notification clicks, configuring backend payloads, or understanding cold start navigation. Notification, push, toast, JPush, WebSocket.

Unlock Deep Analysis

Use AI to visualize the workflow and generate a realistic output preview for this skill.

Powered by Fastest LLM

Target Audience

Mobile developers implementing cross-platform push notifications in React Native/TypeScript apps, particularly those using JPush or similar services

8/10Security

Low security risk, safe to use

9
Clarity
8
Practicality
9
Quality
8
Maintainability
7
Innovation
Development
Compatible Agents
Claude Code
Claude Code
~/.claude/skills/
Codex CLI
Codex CLI
~/.codex/skills/
Gemini CLI
Gemini CLI
~/.gemini/skills/
O
OpenCode
~/.opencode/skills/
O
OpenClaw
~/.openclaw/skills/
GitHub Copilot
GitHub Copilot
~/.copilot/skills/
Cursor
Cursor
~/.cursor/skills/
W
Windsurf
~/.codeium/windsurf/skills/
C
Cline
~/.cline/skills/
R
Roo Code
~/.roo/skills/
K
Kiro
~/.kiro/skills/
J
Junie
~/.junie/skills/
A
Augment Code
~/.augment/skills/
W
Warp
~/.warp/skills/
G
Goose
~/.config/goose/skills/
SKILL.md

Notification System Agent

Centralized outbound notification management for all channels (WhatsApp, Telegram, email).

Architecture

notification-system/
โ”œโ”€โ”€ SKILL.md              # This file
โ”œโ”€โ”€ templates/            # Message templates by channel & type
โ”‚   โ”œโ”€โ”€ whatsapp/         # WhatsApp templates
โ”‚   โ”œโ”€โ”€ telegram/         # Telegram templates
โ”‚   โ””โ”€โ”€ email/            # Email templates
โ”œโ”€โ”€ queue/                # Pending notification queue
โ”œโ”€โ”€ logs/                 # Delivery logs
โ”œโ”€โ”€ rate-limiters.json    # Rate limit configuration
โ””โ”€โ”€ config/               # Channel configs

Supported Channels

ChannelConfigRate Limits
WhatsAppchannels.whatsapp60 msg/min, 1000/day
Telegramchannels.telegram30 msg/sec, 20 msg/min
Email (Outlook)office365-connector30 msg/hour, 300/day

Rate Limiting

Default limits per channel:

  • WhatsApp: 1 message/second (safety), burst of 5
  • Telegram: 30 messages/second hard limit from API
  • Email: 60 emails/hour to prevent spam flags

Rate limit config: notification-system/rate-limiters.json

Template Variables

All templates support:

{{recipient}}     - Target name/ID
{{date}}           - Current date
{{time}}           - Current time
{{subject}}        - Message subject
{{body}}           - Message body
{{cta_url}}        - Call-to-action link
{{sender_name}}    - Business/sender name
{{company}}        - Company name

Sending a Notification

WhatsApp

# Via message tool
message send --channel whatsapp --target "+18184389562" --message "Your appointment is confirmed for {{date}}"

Telegram

# Via message tool
message send --channel telegram --target "655641853" --message "System alert: {{subject}}"

Email

# Via outlook skill
outlook send --to "recipient@email.com" --subject "{{subject}}" --body "{{body}}"

Queue System

Notifications are queued in notification-system/queue/pending.json:

{
  "id": "uuid",
  "channel": "whatsapp|telegram|email",
  "target": "recipient-id",
  "template": "template-name",
  "variables": {},
  "scheduled_at": "ISO8601 or null",
  "created_at": "ISO8601",
  "priority": "high|normal|low",
  "status": "pending|sent|failed|delivered",
  "attempts": 0,
  "last_error": null
}

Scheduling

Scheduled notifications stored in notification-system/queue/scheduled.json with cron-like scheduling.

Use cron jobs with notification-system/process-queue.js to process scheduled items.

Delivery Tracking

Logs stored in notification-system/logs/delivery-YYYY-MM-DD.json:

{
  "id": "notification-uuid",
  "timestamp": "ISO8601",
  "channel": "whatsapp",
  "target": "+1...",
  "template": "appointment-confirm",
  "status": "delivered|sent|failed",
  "latency_ms": 450,
  "error": null
}

Template Management

Templates stored in notification-system/templates/{channel}/{type}.md:

templates/
โ”œโ”€โ”€ whatsapp/
โ”‚   โ”œโ”€โ”€ appointment-confirm.md
โ”‚   โ”œโ”€โ”€ appointment-reminder.md
โ”‚   โ”œโ”€โ”€ payment-received.md
โ”‚   โ”œโ”€โ”€ status-update.md
โ”‚   โ”œโ”€โ”€ broadcast-promotion.md
โ”‚   โ””โ”€โ”€ support-acknowledged.md
โ”œโ”€โ”€ telegram/
โ”‚   โ”œโ”€โ”€ system-alert.md
โ”‚   โ”œโ”€โ”€ status-report.md
โ”‚   โ”œโ”€โ”€ daily-brief.md
โ”‚   โ””โ”€โ”€ broadcast.md
โ””โ”€โ”€ email/
    โ”œโ”€โ”€ invoice.md
    โ”œโ”€โ”€ welcome.md
    โ””โ”€โ”€ notification.md

Process Queue

To process pending notifications:

node notification-system/process-queue.js

Status Commands

  • List pending: Get-Content queue/pending.json | ConvertFrom-Json
  • Check rate limits: Get-Content rate-limiters.json
  • View recent logs: Get-Content logs/delivery-$(Get-Date -Format 'yyyy-MM-dd').json

Best Practices

  1. Batch wisely: Group similar notifications, respect quiet hours
  2. Fallback channels: If WhatsApp fails, try Telegram, then email
  3. Deduplicate: Don't send same notification twice within 24h
  4. Opt-out handling: Honor STOP/opt-out requests immediately
  5. Personalize: Use recipient name and relevant variables
  6. Monitor delivery: Check logs for failures and retry

Priority Handling

  • high: System alerts, urgent items โ†’ Skip rate limit queue
  • normal: Standard notifications โ†’ Normal rate limiting
  • low: Marketing, non-urgent โ†’ Strictest rate limiting

Source: https://github.com/OneKeyHQ/app-monorepo#.claude-skills-notification-system

Content curated from original sources, copyright belongs to authors

Grade A
8.3AI Score
Best Practices
Checking...
Try this Skill

User Rating

USER RATING

0UP
0DOWN
Loading files...

WORKS WITH

Claude Code
Claude
Codex CLI
Codex
Gemini CLI
Gemini
O
OpenCode
O
OpenClaw
GitHub Copilot
Copilot
Cursor
Cursor
W
Windsurf
C
Cline
R
Roo
K
Kiro
J
Junie
A
Augment
W
Warp
G
Goose