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 alertproduction,staging,development- Environmentcritical,warning,info- Severity leveldatabase,api,frontend- Componentdeploy,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: 2" \
-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:
# Not supported directly in SSE
# Use API filtering or client-side filtering
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:
Tags: production,critical
- ✅ 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: 2" \
https://app.notifer.io/alerts
curl -d "Disk usage at 98%" \
-H "X-Tags: critical,disk,prod-db-01" \
-H "X-Priority: 1" \
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: 5 tags
- Max tag length: 32 characters
Exceeding limits will result in a validation error.
Tags in Message History
View All Tags
See all tags used in a topic:
curl "https://app.notifer.io/api/topics/my-topic/tags" \
-H "Authorization: Bearer YOUR_TOKEN"
Response:
[
"production",
"staging",
"deploy",
"success",
"error",
"server-01",
"server-02"
]
Tag Statistics
Get message counts by tag:
curl "https://app.notifer.io/api/topics/my-topic/tag-stats" \
-H "Authorization: Bearer YOUR_TOKEN"
Response:
{
"production": 145,
"staging": 67,
"deploy": 89,
"success": 76,
"error": 13
}
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: 1" \
-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: 2" \
-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: 1" \
-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: 2" \
-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: 2" \
-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": 2,
"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
Pro Tip: Start simple with 3-4 tags, then expand as you discover which filters you actually use! 🏷️