Message Tags¶
Tags help you categorize, filter, and organize your notifications.
What are Tags?¶
Tags are labels you attach to messages to organize and filter them. Think of them like hashtags in social media.
Examples:
- server-01, server-02 - Identify which server sent the alert
- production, staging, development - Environment
- critical, warning, info - Severity level
- database, api, frontend - Component
- deploy, backup, monitoring - Activity type
Adding Tags¶
Via HTTP Headers¶
Use the X-Tags header with comma-separated values:
curl -d "Deployment completed" \
-H "X-Tags: deploy,production,success" \
https://app.notifer.io/deployments
Multiple tags:
curl -d "Database connection pool exhausted" \
-H "X-Title: Database Warning" \
-H "X-Priority: 4" \
-H "X-Tags: database,warning,prod-db-01,connection-pool" \
https://app.notifer.io/alerts
Via Web App¶
When publishing from the dashboard:
- Click "Publish"
- Enter your message
- In the "Tags" field, enter comma-separated tags
- Click "Send"
Via API¶
curl -X POST https://app.notifer.io/my-topic \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: text/plain" \
-H "X-Tags: tag1,tag2,tag3" \
-d "Message with tags"
Tag Naming Rules¶
Valid Tags¶
- ✅ Lowercase letters:
production - ✅ Numbers:
server01,v2.1.0 - ✅ Hyphens:
prod-web-01 - ✅ Underscores:
backup_completed - ✅ Mix:
deploy-prod-v2
Invalid Tags¶
- ❌ Spaces:
my tag→ Usemy-taginstead - ❌ Special characters:
server@01→ Useserver-01 - ❌ Unicode:
🚀deploy→ Usedeploy
Note: Tags are automatically converted to lowercase.
Filtering by Tags¶
In Mobile App¶
Filter messages by tags:
- Open topic
- Tap "Filter" icon
- Select tags to filter by
- Only messages with selected tags will show
Filter Logic: - Any tag (OR): Show if message has ANY of the selected tags - All tags (AND): Show if message has ALL of the selected tags
In Web Dashboard¶
- Go to topic page
- Click tag pills below the search bar
- Messages filter automatically
Via API¶
Search messages by tags:
curl "https://app.notifer.io/api/messages?tags=production,critical" \
-H "Authorization: Bearer YOUR_TOKEN"
Via SSE¶
Subscribe only to messages with specific tags:
Tag-Based Subscriptions¶
Mobile Notification Filtering¶
In the mobile app, you can configure per-topic tag filters:
- Open topic → Settings → Notifications
- Under "Tag Filter", enter tags (comma-separated)
- Save
Behavior: - Empty: Receive all messages (default) - Tags specified: Only receive messages with those tags
Example:
- ✅ Message with tags[production, critical] → Push sent
- ✅ Message with tags [production, warning] → Push sent (has "production")
- ❌ Message with tags [staging, critical] → No push (missing "production")
Common Tag Patterns¶
1. Environment Tags¶
Separate production from staging/dev:
# Production
curl -d "Deploy v2.1.0 succeeded" \
-H "X-Tags: production,deploy,success" \
https://app.notifer.io/deployments
# Staging
curl -d "Deploy v2.1.0 succeeded" \
-H "X-Tags: staging,deploy,success" \
https://app.notifer.io/deployments
Filter in app: Only show production tags for on-call phone.
2. Server/Service Tags¶
Identify which service sent the alert:
curl -d "CPU usage: 95%" \
-H "X-Tags: server,cpu,prod-web-01" \
https://app.notifer.io/monitoring
curl -d "Memory usage: 92%" \
-H "X-Tags: server,memory,prod-api-03" \
https://app.notifer.io/monitoring
Filter in app: Show only prod-web-01 to debug that specific server.
3. Severity Tags¶
Categorize by severity:
curl -d "Disk usage at 85%" \
-H "X-Tags: warning,disk,prod-db-01" \
-H "X-Priority: 4" \
https://app.notifer.io/alerts
curl -d "Disk usage at 98%" \
-H "X-Tags: critical,disk,prod-db-01" \
-H "X-Priority: 5" \
https://app.notifer.io/alerts
4. Activity Type Tags¶
Group by what happened:
# Deployments
curl -d "..." -H "X-Tags: deploy,production" ...
# Backups
curl -d "..." -H "X-Tags: backup,database" ...
# User events
curl -d "..." -H "X-Tags: user,signup" ...
# Monitoring
curl -d "..." -H "X-Tags: monitoring,health-check" ...
5. Component Tags¶
Identify which part of the system:
curl -d "API response time: 2.5s" \
-H "X-Tags: api,performance,latency" \
https://app.notifer.io/monitoring
curl -d "Database query timeout" \
-H "X-Tags: database,timeout,query" \
https://app.notifer.io/errors
curl -d "Frontend build failed" \
-H "X-Tags: frontend,build,error" \
https://app.notifer.io/ci
Advanced Tag Strategies¶
Hierarchical Tags¶
Use prefixes for hierarchy:
# Environment prefix
env:production
env:staging
env:development
# Service prefix
service:api
service:frontend
service:database
# Alert level prefix
alert:critical
alert:warning
alert:info
Example:
curl -d "API service down" \
-H "X-Tags: env:production,service:api,alert:critical" \
https://app.notifer.io/alerts
Version Tags¶
Track deployments by version:
curl -d "Deploy completed" \
-H "X-Tags: deploy,production,v2.1.0" \
https://app.notifer.io/deployments
Search for all v2.1.0 deployments later.
Team Tags¶
Route notifications by team:
curl -d "Frontend build failed" \
-H "X-Tags: frontend,team:web,build-error" \
https://app.notifer.io/ci
Time-based Tags¶
Add temporal context:
curl -d "Weekly backup completed" \
-H "X-Tags: backup,weekly,sunday,automated" \
https://app.notifer.io/backups
Tag Limits¶
- Max tags per message: 10 tags
- Max tag length: 50 characters
- Total tag string length: 200 characters
Exceeding limits will result in truncation or validation error.
Tags in Message History¶
View All Tags¶
See all tags used in a topic:
Response:
Tag Statistics¶
Get message counts by tag:
Response:
Best Practices¶
1. Be Consistent¶
Define a tagging schema:
# team-tagging-guide.yaml
environments:
- production
- staging
- development
services:
- api
- frontend
- database
- worker
severity:
- critical
- warning
- info
activity:
- deploy
- backup
- monitoring
- user-event
Share this with your team!
2. Don't Over-Tag¶
❌ Too many tags:
curl -d "Deploy succeeded" \
-H "X-Tags: deploy,production,success,api,v2.1.0,automated,ci,github-actions,main-branch,release" \
...
# 10 tags - hard to filter effectively
✅ Focused tags:
curl -d "Deploy succeeded" \
-H "X-Tags: deploy,production,success,v2.1.0" \
...
# 4 tags - clear and useful
3. Use Tags + Priority Together¶
Tags for filtering, priority for urgency:
# Critical production alert
curl -d "Database down" \
-H "X-Priority: 5" \
-H "X-Tags: production,database,critical" \
https://app.notifer.io/alerts
# Info staging deploy
curl -d "Deploy succeeded" \
-H "X-Priority: 2" \
-H "X-Tags: staging,deploy,success" \
https://app.notifer.io/deploys
4. Document Your Tags¶
Create a TAGS.md in your repo:
# Notification Tags
## Environments
- `production` - Production environment
- `staging` - Staging environment
- `development` - Dev environment
## Services
- `api` - Backend API
- `frontend` - Web frontend
- `database` - PostgreSQL database
## Severity
- `critical` - Requires immediate action
- `warning` - Attention needed
- `info` - Informational only
Real-World Examples¶
DevOps Monitoring¶
# CPU alert
curl -d "CPU usage: 95% on prod-web-01" \
-H "X-Priority: 4" \
-H "X-Tags: monitoring,cpu,prod-web-01,warning" \
https://app.notifer.io/monitoring
# Disk space
curl -d "Disk usage: 92% on prod-db-01" \
-H "X-Priority: 5" \
-H "X-Tags: monitoring,disk,prod-db-01,critical" \
https://app.notifer.io/monitoring
# Deployment
curl -d "Deploy v2.1.0 completed in 3m 45s" \
-H "X-Priority: 3" \
-H "X-Tags: deploy,production,success,v2.1.0" \
https://app.notifer.io/deployments
E-commerce Application¶
# New order
curl -d "New order #12345 from john@example.com" \
-H "X-Tags: order,new,high-value" \
https://app.notifer.io/orders
# Payment failed
curl -d "Payment failed for order #12346" \
-H "X-Priority: 4" \
-H "X-Tags: payment,failed,order-12346" \
https://app.notifer.io/payments
# Inventory low
curl -d "Product 'MacBook Pro' low stock: 3 remaining" \
-H "X-Priority: 3" \
-H "X-Tags: inventory,low-stock,macbook-pro" \
https://app.notifer.io/inventory
CI/CD Pipeline¶
# Build started
curl -d "Build #456 started for commit abc123" \
-H "X-Tags: ci,build,started,main" \
https://app.notifer.io/ci
# Tests failed
curl -d "5 tests failed in build #456" \
-H "X-Priority: 4" \
-H "X-Tags: ci,test,failed,build-456" \
https://app.notifer.io/ci
# Deploy completed
curl -d "Build #456 deployed to production" \
-H "X-Priority: 3" \
-H "X-Tags: ci,deploy,production,success,build-456" \
https://app.notifer.io/ci
API Response¶
Tags are included in the message response:
{
"id": "uuid",
"topic": "monitoring",
"message": "CPU usage: 95%",
"title": "High CPU Alert",
"priority": 4,
"tags": ["monitoring", "cpu", "prod-web-01", "warning"],
"timestamp": "2025-11-22T10:30:00Z"
}
Next Steps¶
- Priority - Message priority levels
- Markdown - Rich text formatting
- Mobile App - Configure tag-based filtering
- Search - Search messages by tags
Pro Tip: Start simple with 3-4 tags, then expand as you discover which filters you actually use! 🏷️