Skip to 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: 4" \
  -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 → SettingsNotifications
  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: 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:

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: 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


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