Airflow Summit 2025 is coming October 07-09. Register now to secure your spot!

Creating a Notifier

The BaseNotifier is an abstract class that provides a basic structure for sending notifications in Airflow using the various on_*__callback. It is intended for providers to extend and customize for their specific needs.

To extend the BaseNotifier class, you will need to create a new class that inherits from it. In this new class, you should override the notify method with your own implementation that sends the notification. The notify method takes in a single parameter, the Airflow context, which contains information about the current task and execution.

You can also set the template_fields attribute to specify which attributes should be rendered as templates.

Here’s an example of how you can create a Notifier class:

from airflow.sdk import BaseNotifier
from my_provider import async_send_message, send_message


class MyNotifier(BaseNotifier):
    template_fields = ("message",)

    def __init__(self, message: str):
        self.message = message

    def notify(self, context: Context) -> None:
        # Send notification here. For example:
        title = f"Task {context['task_instance'].task_id} failed"
        send_message(title, self.message)

    async def async_notify(self, context: Context) -> None:
        # Only required if your Notifier is going to support asynchronous code. For example:
        title = f"Task {context['task_instance'].task_id} failed"
        await async_send_message(title, self.message)

For a list of community-managed notifiers, see Notifications.

Using Notifiers

For using Notifiers in event-based Dag callbacks, see Callbacks.

Was this entry helpful?