Skip to main content
Flyte can send notifications when a workflow execution reaches a terminal state. Notifications are configured on a launch plan and support three channels:

Email

Send email notifications to one or more addresses.

Slack

Post messages to a Slack channel via email-to-Slack integration.

PagerDuty

Trigger PagerDuty incidents via its email integration.

Notification phases

Notifications can be triggered on any combination of the following workflow execution phases:
PhaseConstantDescription
SUCCEEDEDWorkflowExecutionPhase.SUCCEEDEDWorkflow completed successfully
FAILEDWorkflowExecutionPhase.FAILEDWorkflow terminated with a failure
TIMED_OUTWorkflowExecutionPhase.TIMED_OUTWorkflow exceeded its timeout
ABORTEDWorkflowExecutionPhase.ABORTEDWorkflow was manually aborted

Configuring notifications on a launch plan

Add notifications to a launch plan using the notifications parameter. Each notification specifies the phases it fires on and the recipients.

Email notifications

from flytekit import LaunchPlan, Email
from flytekit.models.core.execution import WorkflowExecutionPhase
from my_project.workflows import my_workflow

email_notification_lp = LaunchPlan.get_or_create(
    workflow=my_workflow,
    name="my_workflow_with_email",
    notifications=[
        Email(
            phases=[
                WorkflowExecutionPhase.SUCCEEDED,
                WorkflowExecutionPhase.FAILED,
            ],
            recipients_email=["[email protected]", "[email protected]"],
        )
    ],
)

Slack notifications

Flyte sends Slack notifications via Slack’s email-to-channel feature. Configure an email address for your Slack channel and use it as the recipient.
from flytekit import LaunchPlan, Slack
from flytekit.models.core.execution import WorkflowExecutionPhase
from my_project.workflows import my_workflow

slack_notification_lp = LaunchPlan.get_or_create(
    workflow=my_workflow,
    name="my_workflow_with_slack",
    notifications=[
        Slack(
            phases=[
                WorkflowExecutionPhase.FAILED,
                WorkflowExecutionPhase.TIMED_OUT,
            ],
            recipients_email=["[email protected]"],
        )
    ],
)

PagerDuty notifications

Flyte sends PagerDuty notifications via PagerDuty’s email integration. Use the service’s integration email address as the recipient.
from flytekit import LaunchPlan, PagerDuty
from flytekit.models.core.execution import WorkflowExecutionPhase
from my_project.workflows import my_workflow

pagerduty_notification_lp = LaunchPlan.get_or_create(
    workflow=my_workflow,
    name="my_workflow_with_pagerduty",
    notifications=[
        PagerDuty(
            phases=[WorkflowExecutionPhase.FAILED],
            recipients_email=["[email protected]"],
        )
    ],
)

Combining multiple notification channels

A single launch plan can include multiple notification objects, each targeting different channels and phases:
from flytekit import LaunchPlan, Email, Slack, PagerDuty
from flytekit.models.core.execution import WorkflowExecutionPhase
from my_project.workflows import my_workflow

multi_notification_lp = LaunchPlan.get_or_create(
    workflow=my_workflow,
    name="my_workflow_all_notifications",
    notifications=[
        Email(
            phases=[WorkflowExecutionPhase.SUCCEEDED],
            recipients_email=["[email protected]"],
        ),
        Slack(
            phases=[
                WorkflowExecutionPhase.FAILED,
                WorkflowExecutionPhase.TIMED_OUT,
            ],
            recipients_email=["[email protected]"],
        ),
        PagerDuty(
            phases=[WorkflowExecutionPhase.FAILED],
            recipients_email=["[email protected]"],
        ),
    ],
)

Admin-level notification configuration

Notifications require a message queue backend to be configured in the Flyte admin deployment. This is a one-time setup performed by your platform administrator. For configuration steps, see the notifications deployment guide.
If you are using a managed Flyte deployment, contact your administrator to confirm that notifications are enabled and which backends are supported.

Notifications vs. alerts

Use Flyte notifications for lightweight, per-execution alerts where you want recipients to know a specific workflow completed or failed. For aggregated metrics, dashboards, or SLO-based alerting, integrate your monitoring stack (Datadog, Prometheus, Grafana) with the Flyte metrics endpoint instead.
Yes. Notifications and schedules are both properties of a launch plan and can be combined. For example, you can schedule a nightly workflow and send an email when it succeeds or fails.
Notifications are evaluated on the top-level workflow execution. Sub-workflow and task-level events do not independently trigger launch plan notifications.

Build docs developers (and LLMs) love