How-to Guide for Discord notifications

Introduction

Discord notifier (airflow.providers.discord.notifications.discord.DiscordNotifier) allows users to send messages to a discord channel using the various on_*_callbacks at both the Dag level and Task level

Example Code:

from datetime import datetime
from airflow import DAG
from airflow.providers.standard.operators.bash import BashOperator
from airflow.providers.discord.notifications.embed import Embed, EmbedAuthor, EmbedFooter, EmbedField
from airflow.providers.discord.notifications.discord import DiscordNotifier

with DAG(
    start_date=datetime(2025, 1, 1),
    on_success_callback=[
        DiscordNotifier(
            text="The Dag {{ dag.dag_id }} succeeded",
        )
    ],
):
    BashOperator(
        task_id="mytask",
        on_failure_callback=[
            DiscordNotifier(
                text="The task {{ ti.task_id }} failed",
                embed=Embed(
                    title="Hello ~~people~~ world :wave: The task {{ ti.task_id }} failed",
                    description="You can use [links](https://discord.com) or emojis :smile: 😎\n```\nAnd also code blocks\n```",
                    color=4321431,
                    timestamp="2025-11-23T19:05:15.292Z",
                    url="https://discord.com",
                    author=EmbedAuthor(
                        name="Author",
                        url="https://discord.com",
                        icon_url="https://cdn.discordapp.com/embed/avatars/0.png",
                    ),
                    footer=EmbedFooter(
                        text="Footer text", icon_url="https://cdn.discordapp.com/embed/avatars/0.png"
                    ),
                    fields=[EmbedField(name="Field 1, *lorem* **ipsum**, ~~dolor~~", value="Field value")],
                ),
            )
        ],
        bash_command="fail",
    )

Was this entry helpful?