Skip to main content
Argo CD Notifications continuously monitors applications and provides a flexible way to notify users about important changes in application state through configurable triggers and templates.

Overview

The notification system consists of three main components:
  • Triggers - Define when notifications should be sent
  • Templates - Define the content and format of notifications
  • Services - Define where notifications are delivered (Slack, email, etc.)

Getting Started

1

Install notification catalog

2

Configure notification service

For email notifications:
3

Register service in ConfigMap

4

Subscribe to notifications

Triggers

Triggers define conditions for sending notifications using predicate expressions.

Basic Trigger

Condition Bundles

Multiple conditions with different templates:
Use the ?. operator for optional fields. For example, app.status?.operationState.phase won’t fail if operationState is nil.

Avoid Duplicate Notifications

Use oncePer to send notifications only when a field changes:
For monorepos, use:

Common Triggers

Default Triggers

Set default triggers for services:
Subscribe using defaults:

Templates

Templates define notification content for different services.

Basic Template

Available Variables

object
The Application object containing metadata, spec, and status
object
Context information including:
  • argocdUrl - Argo CD server URL
  • notificationsUrl - Notifications controller URL
object
Repository metadata
string
The notification service type (slack, email, etc.)
string
The notification recipient

Template Functions

Use built-in functions in templates:

Notification Services

Configure delivery channels for notifications.

Slack

Subscribe:

Email

Subscribe:

Microsoft Teams

Webhook

PagerDuty

Opsgenie

Subscriptions

Subscribe applications or projects to notifications:

Application Subscriptions

Project Subscriptions

All applications in the project will inherit these subscriptions.

Namespace-Based Configuration

Allow teams to configure notifications in their own namespaces:

Enable Self-Service Notifications

Team Namespace Configuration

When the same service and trigger are defined at both controller and application level, both notifications will be sent.

Advanced Features

Conditional Subscriptions

Use annotations to conditionally enable notifications:

Custom Annotations in Triggers

Grafana Annotations

Automatically create Grafana annotations:

Troubleshooting

Check Notification Controller Logs

Test Notifications

Common Issues

  • Verify trigger condition matches application state
  • Check service configuration and credentials
  • Ensure subscription annotation is correct
  • Review controller logs for errors
  • Use oncePer field in trigger configuration
  • Check for overlapping trigger conditions
  • Verify both global and namespace configs
  • Validate template syntax
  • Use ?. for optional fields
  • Test templates with argocd admin command

Best Practices

Use the catalog

Start with built-in triggers and templates from the catalog

Avoid notification spam

Use oncePer to prevent duplicate notifications

Secure credentials

Store service credentials in Kubernetes Secrets

Test before deploying

Use argocd admin notifications to test configuration

Enable self-service

Allow teams to configure their own notifications

Monitor the controller

Set up alerts for notification controller errors