Notification¶
Send a notification via Email, Slack, Microsoft Teams, Discord, or Pushover.
This node provides a unified interface for sending notifications across multiple services, making it easy to alert yourself or your team when a pipeline completes, encounters an error, or reaches any other significant event. Email requires SMTP server configuration (server address, port, username, password, and sender address). Common providers include Gmail, Outlook/Office365, and Yahoo Mail. For Gmail with 2-factor authentication, you'll need to generate an app-specific password. Slack, Teams, and Discord use webhook URLs, which are the simplest to set up. Simply create an incoming webhook in your workspace/server and paste the URL into the Destination field. No other configuration is needed, though optional parameters are available for customization. Pushover requires a user key and app token from your Pushover account. Pushover offers the most sophisticated priority system, including emergency-priority notifications that require acknowledgment. Note that it is not sufficient to just create a user key; you'll need to create an application to get that app token, too. The node operates synchronously and will wait for the notification to be sent (or timeout). If sending fails, a warning is logged but no exception is raised, ensuring your pipeline continues to run. This node will not send notifications when running in a cloud/restricted context for security reasons. Version 0.1.0
Ports/Properties¶
service¶
Notification service to use. Email requires SMTP configuration in the Email category. Slack, Teams, and Discord only require a webhook URL in the Destination field. Pushover requires user key and app token in the Pushover category.
- verbose name: Service
- default value: Email
- port type: EnumPort
- value type: str (can be None)
destination¶
Service-specific destination for the notification. For Email, specify the recipient email address. For Slack, Teams, and Discord, paste the webhook URL here. For Pushover, leave empty to send to all devices, or specify a device name to target a specific device.
- verbose name: Destination
- default value: None
- port type: StringPort
- value type: str (can be None)
title¶
Subject or title of the notification. For Email, this becomes the email subject line. For webhook-based services (Slack, Teams, Discord), this is displayed as the message title or heading. For Pushover, this is the notification title.
- verbose name: Title
- default value: Notification
- port type: StringPort
- value type: str (can be None)
message¶
Main message body of the notification. This is the primary content that will be sent. For Email with HTML enabled, this can contain HTML markup. For Slack and Discord, basic markdown is supported. For Teams, this becomes the message text.
- verbose name: Message
- default value: Your message here
- port type: StringPort
- value type: str (can be None)
priority¶
Priority level of the notification. The interpretation depends on the service: Email uses priority headers (though often ignored by clients). Slack, Teams, and Discord use visual color coding (gray/blue for Low/Normal, yellow for High, red for Critical). Pushover has full native priority support with different notification behaviors including emergency priority that requires acknowledgment.
- verbose name: Priority
- default value: Normal
- port type: EnumPort
- value type: str (can be None)
timeout¶
Request timeout in seconds. This determines how long to wait for the notification service to respond before giving up. If the timeout is exceeded, a warning will be logged but no exception will be raised.
- verbose name: Timeout
- default value: 15.0
- port type: FloatPort
- value type: float (can be None)
raise_exceptions¶
Whether to raise exceptions for configuration errors. If enabled, missing required fields or other configuration problems will raise a ValueError. If disabled, errors are logged as warnings instead and the node continues without sending the notification. Disabling this can be useful for long-running pipelines where you don't want a misconfigured notification to crash the entire run.
- verbose name: Raise On Config Errors
- default value: True
- port type: BoolPort
- value type: bool (can be None)
smtp_server¶
SMTP server address for sending email. Common examples: 'smtp.gmail.com', 'smtp.office365.com', 'smtp.mail.yahoo.com'. Required when using Email service.
- verbose name: Smtp Server
- default value: None
- port type: StringPort
- value type: str (can be None)
smtp_port¶
SMTP server port. Standard ports are 587 (TLS/STARTTLS), 465 (SSL), or 25 (unencrypted, not recommended). Port 587 with TLS is recommended for most modern email providers.
- verbose name: Smtp Port
- default value: 587
- port type: IntPort
- value type: int (can be None)
smtp_username¶
Username for SMTP authentication. This is typically your full email address. For Gmail, you may need to use an app-specific password rather than your regular password.
- verbose name: Smtp Username
- default value: None
- port type: StringPort
- value type: str (can be None)
smtp_password¶
Password for SMTP authentication. For services like Gmail with 2-factor authentication enabled, you'll need to generate an app-specific password rather than using your regular account password.
- verbose name: Smtp Password
- default value: None
- port type: StringPort
- value type: str (can be None)
from_address¶
Sender email address that will appear in the 'From' field of the email. This is typically the same as the SMTP username, but some servers allow you to specify a different address.
- verbose name: From Address
- default value: None
- port type: StringPort
- value type: str (can be None)
use_tls¶
Use TLS (Transport Layer Security) encryption for the SMTP connection. This is strongly recommended for security and is required by most modern email providers. Disable only if connecting to a local or legacy mail server that doesn't support TLS.
- verbose name: Use Tls
- default value: True
- port type: BoolPort
- value type: bool (can be None)
use_html¶
Whether the message body contains HTML content. If enabled, the message will be sent as HTML and can include formatting, links, images, etc. If disabled, the message is sent as plain text.
- verbose name: Send As Html
- default value: False
- port type: BoolPort
- value type: bool (can be None)
bot_name¶
Override the default bot display name in Slack. If not specified, the webhook's default name will be used. This allows customizing the sender name for different types of notifications.
- verbose name: Bot Display Name
- default value: None
- port type: StringPort
- value type: str (can be None)
bot_icon¶
Override the bot icon in Slack. Can be an emoji (e.g., ':robot_face:', ':bell:') or a URL to an image. If not specified, the webhook's default icon will be used.
- verbose name: Bot Icon
- default value: None
- port type: StringPort
- value type: str (can be None)
channel_override¶
Override the webhook's default channel. Specify a channel name (e.g., '#alerts', '#notifications') or user DM (e.g., '@username'). Note that the bot must have permission to post to the specified channel.
- verbose name: Channel Override
- default value: None
- port type: StringPort
- value type: str (can be None)
summary¶
Summary text for the notification preview in Microsoft Teams. This appears in the notification banner and activity feed. If not specified, the title will be used as the summary.
- verbose name: Summary
- default value: None
- port type: StringPort
- value type: str (can be None)
theme_color¶
Hex color code for the message accent bar in Microsoft Teams (e.g ., 'FF0000' for red, '00FF00' for green, '0000FF' for blue). If not specified, a color will be automatically chosen based on the priority level.
- verbose name: Theme Color
- default value: None
- port type: StringPort
- value type: str (can be None)
avatar_url¶
URL to an image to use as the bot's avatar in Discord. This allows you to customize the appearance of the notification sender. If not specified, Discord's default webhook avatar will be used.
- verbose name: Avatar Url
- default value: None
- port type: StringPort
- value type: str (can be None)
tts¶
Enable text-to-speech for the message in Discord. When enabled, Discord will read the message aloud to users who are online. Use sparingly as this can be disruptive.
- verbose name: Text-To-Speech
- default value: False
- port type: BoolPort
- value type: bool (can be None)
user_key¶
Your Pushover user key (or group key). This is a 30-character identifier found in your Pushover account dashboard. Required when using Pushover service.
- verbose name: User Key
- default value: None
- port type: StringPort
- value type: str (can be None)
app_token¶
Your Pushover application API token. This is a 30-character identifier that you receive when creating an application in your Pushover account. Required when using Pushover service.
- verbose name: App Token
- default value: None
- port type: StringPort
- value type: str (can be None)
sound¶
Pushover notification sound name. If not specified, the user's default sound is used.
- verbose name: Sound
- default value: pushover
- port type: ComboPort
- value type: str (can be None)
url¶
Optional supplementary URL to include with the Pushover notification. This creates a clickable link in the notification. Maximum 512 characters.
- verbose name: Supplementary Url
- default value: None
- port type: StringPort
- value type: str (can be None)
url_title¶
Title for the supplementary URL link. If a URL is provided but no title is specified, the URL itself will be shown as the link text. Maximum 100 characters.
- verbose name: Supp. Url Title
- default value: None
- port type: StringPort
- value type: str (can be None)
retry¶
For emergency-priority (Critical) notifications, how often (in seconds) to retry the notification until it is acknowledged. Must be at least 30 seconds. Only applies when priority is set to Critical.
- verbose name: Retry (Emergency Only)
- default value: 60
- port type: IntPort
- value type: int (can be None)
expire¶
For emergency-priority (Critical) notifications, how long (in seconds) to continue retrying before giving up. Must be at most 10800 seconds (3 hours). Only applies when priority is set to Critical.
- verbose name: Expire (Emergency Only)
- default value: 3600
- port type: IntPort
- value type: int (can be None)
set_breakpoint¶
Set a breakpoint on this node. If this is enabled, your debugger (if one is attached) will trigger a breakpoint.
- verbose name: Set Breakpoint (Debug Only)
- default value: False
- port type: BoolPort
- value type: bool (can be None)
metadata¶
User-definable meta-data associated with the node. Usually reserved for technical purposes.
- verbose name: Metadata
- default value: {}
- port type: DictPort
- value type: dict (can be None)