Skip to main content

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: 2" \
-H "X-Tags: database,warning,prod-db-01,connection-pool" \
https://app.notifer.io/alerts

Via Web App​

When publishing from the dashboard:

  1. Click "Publish"
  2. Enter your message
  3. In the "Tags" field, enter comma-separated tags
  4. 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 → Use my-tag instead
  • ❌ Special characters: server@01 → Use server-01
  • ❌ Unicode: 🚀deploy → Use deploy

Note: Tags are automatically converted to lowercase.

Filtering by Tags​

In Mobile App​

Filter messages by tags:

  1. Open topic
  2. Tap "Filter" icon
  3. Select tags to filter by
  4. 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​

  1. Go to topic page
  2. Click tag pills below the search bar
  3. 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:

  1. Open topic → Settings → Notifications
  2. Under "Tag Filter", enter tags (comma-separated)
  3. 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​


Pro Tip: Start simple with 3-4 tags, then expand as you discover which filters you actually use! 🏷️