Email Notification¶
v2¶
Class: EmailNotificationBlockV2 (there are multiple versions of this block)
Source: inference.core.workflows.core_steps.sinks.email_notification.v2.EmailNotificationBlockV2
Warning: This block has multiple versions. Please refer to the specific version for details. You can learn more about how versions work here: Versioning
The Email Notification block allows users to send email notifications as part of a workflow.
How This Block Works¶
Email Provider Options¶
This block supports two email delivery methods via a dropdown selector:
- Roboflow Managed API Key (Default) - No SMTP configuration needed. Emails are sent through Roboflow's proxy service:
- Simplified setup - just provide subject, message, and recipient
- Secure - your workflow API key is used for authentication
-
No SMTP server required
-
Custom SMTP - Use your own SMTP server:
- Full control over email delivery
- Requires SMTP server configuration (host, port, credentials)
- Supports CC and BCC recipients
Customizable Email Content¶
-
Subject: Set the subject field to define the subject line of the email.
-
Message: Use the message field to write the body content of the email. Message can be parametrised with data generated during workflow run. See Dynamic Parameters section.
-
Recipients (To, CC, BCC): Define who will receive the email using
receiver_email,cc_receiver_email, andbcc_receiver_emailproperties. You can input a single email or a list.
Dynamic Parameters¶
Content of the message can be parametrised with Workflow execution outcomes. Take a look at the example message using dynamic parameters:
message = "This is example notification. Predicted classes: {{ $parameters.predicted_classes }}"
Message parameters are delivered by Workflows Execution Engine by setting proper data selectors in
message_parameters field, for example:
message_parameters = {
"predicted_classes": "$steps.model.predictions"
}
Selecting data is not the only option - data may be processed in the block. In the example below we wish to
extract names of predicted classes. We can apply transformation for each parameter by setting
message_parameters_operations:
message_parameters_operations = {
"predictions": [
{"type": "DetectionsPropertyExtract", "property_name": "class_name"}
]
}
As a result, in the e-mail that will be sent, you can expect:
This is example notification. Predicted classes: ["class_a", "class_b"].
Using Custom SMTP Server¶
To use your own SMTP server, select "Custom SMTP" from the email_provider dropdown and configure
the following parameters:
-
smtp_server- hostname of the SMTP server to use -
sender_email- e-mail account to be used as sender -
sender_email_password- password for sender e-mail account -
smtp_port- port of SMTP service - defaults to465
Block enforces SSL over SMTP.
Typical scenario for using custom SMTP server involves sending e-mail through Google SMTP server. Take a look at Google tutorial to configure the block properly.
GMAIL password will not work if 2-step verification is turned on
GMAIL users choosing custom SMTP server as e-mail service provider must configure application password to avoid problems with 2-step verification protected account. Beware that application password must be kept protected - we recommend sending the password in Workflow input and providing it each time by the caller, avoiding storing it in Workflow definition.
Cooldown¶
The block accepts cooldown_seconds (which defaults to 5 seconds) to prevent unintended bursts of
notifications. Please adjust it according to your needs, setting 0 indicate no cooldown.
During cooldown period, consecutive runs of the step will cause throttling_status output to be set True
and no notification will be sent.
Cooldown limitations
Current implementation of cooldown is limited to video processing - using this block in context of a
Workflow that is run behind HTTP service (Roboflow Hosted API, Dedicated Deployment or self-hosted
inference server) will have no effect for processing HTTP requests.
Attachments¶
You may specify attachment files to be sent with your e-mail. Attachments can be generated in runtime by dedicated blocks or from image outputs.
Supported attachment types: - CSV/Text files: From blocks like CSV Formatter - Images: Any image output from visualization blocks (automatically converted to JPEG) - Binary data: Any bytes output from compatible blocks
To include attachments, provide the attachment filename as the key and reference the block output:
attachments = {
"report.csv": "$steps.csv_formatter.csv_content",
"detection.jpg": "$steps.bounding_box_visualization.image"
}
Note: Image attachments are automatically converted to JPEG format. If the filename doesn't
include a .jpg or .jpeg extension, it will be added automatically.
Async execution¶
Configure the fire_and_forget property. Set it to True if you want the email to be sent in the background, allowing the
Workflow to proceed without waiting on e-mail to be sent. In this case you will not be able to rely on
error_status output which will always be set to False, so we recommend setting the fire_and_forget=False for
debugging purposes.
Disabling notifications based on runtime parameter¶
Sometimes it would be convenient to manually disable the e-mail notifier block. This is possible
setting disable_sink flag to hold reference to Workflow input. with such setup, caller would be
able to disable the sink when needed sending agreed input parameter.
Common Use Cases¶
- Use this block to [purpose based on block type]
Connecting to Other Blocks¶
The outputs from this block can be connected to other blocks in your workflow.
Type identifier¶
Use the following identifier in step "type" field: roboflow_core/email_notification@v2to add the block as
as step in your workflow.
Properties¶
| Name | Type | Description | Refs |
|---|---|---|---|
name |
str |
Enter a unique identifier for this step.. | ❌ |
email_provider |
str |
Choose email delivery method: use Roboflow's managed service or configure your own SMTP server.. | ❌ |
subject |
str |
Subject of the message.. | ❌ |
receiver_email |
Union[List[str], str] |
Destination e-mail address.. | ✅ |
message |
str |
Content of the message to be send.. | ❌ |
message_parameters |
Dict[str, Union[bool, float, int, str]] |
Data to be used inside the message.. | ✅ |
message_parameters_operations |
Dict[str, List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]] |
Preprocessing operations to be performed on message parameters.. | ❌ |
sender_email |
str |
E-mail to be used to send the message.. | ✅ |
smtp_server |
str |
Custom SMTP server to be used.. | ✅ |
sender_email_password |
str |
Sender e-mail password be used when authenticating to SMTP server.. | ✅ |
cc_receiver_email |
Optional[List[str], str] |
CC e-mail address.. | ✅ |
bcc_receiver_email |
Optional[List[str], str] |
BCC e-mail address.. | ✅ |
smtp_port |
int |
SMTP server port.. | ❌ |
fire_and_forget |
bool |
Boolean flag to run the block asynchronously (True) for faster workflows or synchronously (False) for debugging and error handling.. | ✅ |
disable_sink |
bool |
Boolean flag to disable block execution.. | ✅ |
cooldown_seconds |
int |
Number of seconds until a follow-up notification can be sent. . | ✅ |
The Refs column marks possibility to parametrise the property with dynamic values available
in workflow runtime. See Bindings for more info.
Available Connections¶
Compatible Blocks
Check what blocks you can connect to Email Notification in version v2.
- inputs:
Anthropic Claude,Qwen3-VL,Camera Focus,CLIP Embedding Model,Text Display,CSV Formatter,Segment Anything 2 Model,Rate Limiter,Dynamic Crop,Relative Static Crop,Continue If,SAM 3,Qwen2.5-VL,Camera Focus,Mask Visualization,SIFT,VLM As Classifier,Path Deviation,Detections Combine,Background Color Visualization,PTZ Tracking (ONVIF).md),Polygon Visualization,Moondream2,Stitch OCR Detections,Size Measurement,Line Counter,SIFT Comparison,Byte Tracker,Detections List Roll-Up,OpenAI,Identify Outliers,Single-Label Classification Model,Crop Visualization,Keypoint Visualization,Icon Visualization,Multi-Label Classification Model,Llama 3.2 Vision,Gaze Detection,OpenAI,Image Contours,VLM As Classifier,Stitch Images,Anthropic Claude,Distance Measurement,OpenAI,SmolVLM2,Triangle Visualization,Detections Classes Replacement,Expression,Background Subtraction,EasyOCR,Reference Path Visualization,Instance Segmentation Model,Line Counter Visualization,Slack Notification,Time in Zone,Line Counter,Detection Event Log,Google Gemini,JSON Parser,Mask Area Measurement,Image Convert Grayscale,Stability AI Image Generation,Pixel Color Count,Seg Preview,Delta Filter,Time in Zone,OpenAI,Detections Merge,Stability AI Outpainting,Buffer,Webhook Sink,Image Threshold,Anthropic Claude,Instance Segmentation Model,Object Detection Model,Perception Encoder Embedding Model,Perspective Correction,Cache Set,SAM 3,First Non Empty Or Default,Detection Offset,Clip Comparison,Clip Comparison,Halo Visualization,Image Blur,Email Notification,Contrast Equalization,Object Detection Model,Blur Visualization,Detections Stabilizer,VLM As Detector,Roboflow Dataset Upload,Dimension Collapse,Corner Visualization,Classification Label Visualization,Multi-Label Classification Model,Trace Visualization,Keypoint Detection Model,Stitch OCR Detections,YOLO-World Model,Bounding Rectangle,Barcode Detection,Local File Sink,Florence-2 Model,Ellipse Visualization,Pixelate Visualization,Roboflow Custom Metadata,Single-Label Classification Model,Identify Changes,LMM,SAM 3,Environment Secrets Store,Circle Visualization,Dot Visualization,Twilio SMS Notification,SIFT Comparison,Byte Tracker,Velocity,Absolute Static Crop,Dominant Color,Morphological Transformation,Template Matching,Overlap Filter,Property Definition,Dynamic Zone,Google Gemini,Polygon Visualization,Google Vision OCR,Color Visualization,LMM For Classification,Email Notification,Cosine Similarity,VLM As Detector,Bounding Box Visualization,Model Comparison Visualization,Grid Visualization,OCR Model,Detections Consensus,Halo Visualization,Data Aggregator,Stability AI Inpainting,Image Slicer,Florence-2 Model,Heatmap Visualization,Polygon Zone Visualization,Image Slicer,Detections Filter,Google Gemini,Label Visualization,Depth Estimation,Image Preprocessing,Cache Get,Detections Stitch,Time in Zone,QR Code Detection,CogVLM,Byte Tracker,Camera Calibration,Path Deviation,Detections Transformation,QR Code Generator,Motion Detection,Keypoint Detection Model,Model Monitoring Inference Aggregator,Twilio SMS/MMS Notification,Roboflow Dataset Upload - outputs:
Anthropic Claude,CLIP Embedding Model,Text Display,Segment Anything 2 Model,Dynamic Crop,SAM 3,Mask Visualization,Path Deviation,Background Color Visualization,PTZ Tracking (ONVIF).md),Polygon Visualization,Moondream2,Stitch OCR Detections,Size Measurement,Line Counter,SIFT Comparison,OpenAI,Single-Label Classification Model,Crop Visualization,Keypoint Visualization,Icon Visualization,Multi-Label Classification Model,Llama 3.2 Vision,Gaze Detection,OpenAI,Anthropic Claude,Distance Measurement,OpenAI,Triangle Visualization,Detections Classes Replacement,Reference Path Visualization,Instance Segmentation Model,Line Counter Visualization,Slack Notification,Time in Zone,Line Counter,Google Gemini,Stability AI Image Generation,Pixel Color Count,Seg Preview,Time in Zone,OpenAI,Object Detection Model,Stability AI Outpainting,Webhook Sink,Image Threshold,Instance Segmentation Model,Anthropic Claude,Perception Encoder Embedding Model,Perspective Correction,Cache Set,SAM 3,Clip Comparison,Halo Visualization,Image Blur,Email Notification,Contrast Equalization,Object Detection Model,Blur Visualization,Roboflow Dataset Upload,Corner Visualization,Classification Label Visualization,Keypoint Detection Model,Trace Visualization,Multi-Label Classification Model,Stitch OCR Detections,YOLO-World Model,Local File Sink,Florence-2 Model,Ellipse Visualization,Pixelate Visualization,Roboflow Custom Metadata,Single-Label Classification Model,LMM,SAM 3,Circle Visualization,Dot Visualization,Twilio SMS Notification,Template Matching,Morphological Transformation,Google Gemini,Dynamic Zone,Polygon Visualization,Google Vision OCR,Color Visualization,LMM For Classification,Email Notification,Bounding Box Visualization,Model Comparison Visualization,Halo Visualization,Detections Consensus,Stability AI Inpainting,Florence-2 Model,Heatmap Visualization,Polygon Zone Visualization,Label Visualization,Google Gemini,Depth Estimation,Image Preprocessing,Cache Get,Detections Stitch,Time in Zone,CogVLM,Camera Calibration,Path Deviation,QR Code Generator,Motion Detection,Keypoint Detection Model,Twilio SMS/MMS Notification,Model Monitoring Inference Aggregator,Roboflow Dataset Upload
Input and Output Bindings¶
The available connections depend on its binding kinds. Check what binding kinds
Email Notification in version v2 has.
Bindings
-
input
receiver_email(Union[string,list_of_values]): Destination e-mail address..message_parameters(*): Data to be used inside the message..sender_email(string): E-mail to be used to send the message..smtp_server(string): Custom SMTP server to be used..sender_email_password(Union[string,secret]): Sender e-mail password be used when authenticating to SMTP server..cc_receiver_email(Union[string,list_of_values]): CC e-mail address..bcc_receiver_email(Union[string,list_of_values]): BCC e-mail address..attachments(Union[string,image,bytes]): Attachments.fire_and_forget(boolean): Boolean flag to run the block asynchronously (True) for faster workflows or synchronously (False) for debugging and error handling..disable_sink(boolean): Boolean flag to disable block execution..cooldown_seconds(integer): Number of seconds until a follow-up notification can be sent. .
-
output
Example JSON definition of step Email Notification in version v2
{
"name": "<your_step_name_here>",
"type": "roboflow_core/email_notification@v2",
"email_provider": "Roboflow Managed API Key",
"subject": "Workflow alert",
"receiver_email": "receiver@gmail.com",
"message": "During last 5 minutes detected {{ $parameters.num_instances }} instances",
"message_parameters": {
"predictions": "$steps.model.predictions",
"reference": "$inputs.reference_class_names"
},
"message_parameters_operations": {
"predictions": [
{
"property_name": "class_name",
"type": "DetectionsPropertyExtract"
}
]
},
"sender_email": "sender@gmail.com",
"smtp_server": "$inputs.smtp_server",
"sender_email_password": "$inputs.email_password",
"cc_receiver_email": "cc-receiver@gmail.com",
"bcc_receiver_email": "bcc-receiver@gmail.com",
"smtp_port": 465,
"attachments": {
"report.cvs": "$steps.csv_formatter.csv_content"
},
"fire_and_forget": "$inputs.fire_and_forget",
"disable_sink": false,
"cooldown_seconds": "$inputs.cooldown_seconds"
}
v1¶
Class: EmailNotificationBlockV1 (there are multiple versions of this block)
Source: inference.core.workflows.core_steps.sinks.email_notification.v1.EmailNotificationBlockV1
Warning: This block has multiple versions. Please refer to the specific version for details. You can learn more about how versions work here: Versioning
Send email notifications via SMTP server with customizable subject, message content with dynamic workflow data parameters, recipient lists (To, CC, BCC), file attachments, cooldown throttling, and optional async background execution for alerting, reporting, and communication workflows.
How This Block Works¶
This block sends email notifications through an SMTP server, integrating workflow execution results into email content. The block:
- Checks if the sink is disabled via
disable_sinkflag (if disabled, returns immediately without sending) - Validates cooldown period (if enabled, throttles notifications within
cooldown_secondsof the last sent email, returning throttling status) - Formats the email message by processing dynamic parameters (replaces placeholders like
{{ $parameters.parameter_name }}with actual workflow data frommessage_parameters) - Applies optional UQL operations to transform parameter values before insertion (e.g., extract class names from detections, calculate metrics, filter data) using
message_parameters_operations - Constructs email recipients lists from
receiver_email(required),cc_receiver_email, andbcc_receiver_email(supports single email addresses or lists) - Processes attachments by retrieving content from referenced workflow step outputs and encoding them as email attachments
- Establishes SSL-secured SMTP connection to the configured server (authentication using sender email and password)
- Sends the email synchronously or asynchronously based on
fire_and_forgetsetting: - Synchronous mode (
fire_and_forget=False): Waits for email send completion, returns actual error status for debugging - Asynchronous mode (
fire_and_forget=True): Sends email in background task, workflow continues immediately, error status always False - Returns status outputs indicating success, throttling, or errors
The block supports dynamic message content through parameter placeholders that are replaced with workflow data at runtime. Message parameters can be raw workflow outputs or transformed using UQL operations (e.g., extract properties, calculate counts, filter values). Attachments are sourced from other workflow blocks that produce string or binary content (e.g., CSV Formatter for reports, image outputs for screenshots). Cooldown prevents notification spam by enforcing minimum time between sends, though this only applies to video processing workflows (not HTTP request contexts).
Requirements¶
SMTP Server Configuration: Requires access to an SMTP server with the following configuration:
- smtp_server: Hostname of the SMTP server (e.g., smtp.gmail.com for Google)
- sender_email: Email address to use as the sender
- sender_email_password: Password for the sender email account (or application-specific password for Gmail with 2FA)
- smtp_port: SMTP port (defaults to 465 for SSL)
Gmail Users with 2FA: If using Gmail with 2-step verification enabled, you must use an application-specific password instead of your regular Gmail password. Application passwords should be kept secure and provided via workflow inputs rather than stored in workflow definitions.
Cooldown Limitations: The cooldown mechanism (cooldown_seconds) only applies to video processing workflows. For HTTP request contexts (Roboflow Hosted API, Dedicated Deployment, or self-hosted servers), cooldown has no effect since each request is independent.
Common Use Cases¶
- Alert Notifications: Send email alerts when specific conditions are detected (e.g., alert security team when unauthorized objects detected, notify operators when anomaly detected, send alerts when detection counts exceed thresholds), enabling real-time monitoring and incident response
- Workflow Execution Reports: Generate and email periodic or event-driven reports with workflow results (e.g., daily summary reports with detection statistics, batch processing completion notifications, performance metrics summaries), enabling automated reporting and documentation
- Detection Summaries: Send email summaries of detection results with aggregated statistics (e.g., email lists of detected objects, send counts and classifications, include detection confidence summaries), enabling stakeholders to stay informed about workflow outputs
- Error and Status Notifications: Notify administrators about workflow execution status and errors (e.g., send alerts when workflows fail, notify about processing completion, report system health issues), enabling monitoring and debugging for production deployments
- Data Export Notifications: Email generated data exports and reports (e.g., attach CSV reports from CSV Formatter, send exported detection data, include formatted analytics summaries), enabling automated data distribution and archival
- Multi-Recipient Updates: Send notifications to multiple stakeholders simultaneously using CC/BCC (e.g., notify team members about detections, send updates to multiple departments, distribute reports with CC for visibility), enabling efficient multi-party communication
Connecting to Other Blocks¶
This block receives data from workflow steps and sends email notifications:
- After detection or analysis blocks (e.g., Object Detection, Instance Segmentation, Classification) to send alerts or summaries when objects are detected, classifications are made, or thresholds are exceeded, enabling real-time notification workflows
- After data processing blocks (e.g., Expression, Property Definition, Detections Filter) to include computed metrics, transformed data, or filtered results in email notifications, enabling customized reporting with processed data
- After formatter blocks (e.g., CSV Formatter) to attach formatted reports and exports to emails, enabling automated distribution of structured data and analytics
- In conditional workflows (e.g., Continue If) to send notifications only when specific conditions are met, enabling event-driven alerting and reporting
- After aggregation blocks (e.g., Data Aggregator) to email periodic analytics summaries and statistical reports, enabling scheduled reporting and trend analysis
- In monitoring workflows to send status updates, error notifications, or health check reports, enabling automated system monitoring and incident management
Type identifier¶
Use the following identifier in step "type" field: roboflow_core/email_notification@v1to add the block as
as step in your workflow.
Properties¶
| Name | Type | Description | Refs |
|---|---|---|---|
name |
str |
Enter a unique identifier for this step.. | ❌ |
subject |
str |
Email subject line for the notification. This is the text that appears in the email header and recipient's inbox subject field. Can include static text describing the notification purpose (e.g., 'Workflow Alert', 'Detection Summary', 'Daily Report').. | ❌ |
sender_email |
str |
Email address to use as the sender of the notification. This email account must have access to the configured SMTP server and the password provided in sender_email_password. For Gmail with 2FA enabled, this should be the Gmail address that has an application-specific password configured.. | ✅ |
receiver_email |
Union[List[str], str] |
Primary recipient email address(es) for the notification. Required field - at least one recipient must be specified. Can be a single email address string or a list of email addresses for multiple recipients. Recipients will see their email addresses in the 'To' field of the received email.. | ✅ |
message |
str |
Email body content (plain text). Supports dynamic parameters using placeholder syntax: {{ $parameters.parameter_name }}. Placeholders are replaced with values from message_parameters at runtime. Message can be multi-line text. Example: 'Detected {{ $parameters.num_objects }} objects. Classes: {{ $parameters.classes }}.'. | ❌ |
message_parameters |
Dict[str, Union[bool, float, int, str]] |
Dictionary mapping parameter names (used in message placeholders) to workflow data sources. Keys are parameter names referenced in message as {{ $parameters.key }}, values are selectors to workflow step outputs or direct values. These values are substituted into message placeholders at runtime. Can optionally use message_parameters_operations to transform parameter values before substitution.. | ✅ |
message_parameters_operations |
Dict[str, List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]] |
Optional dictionary mapping parameter names (from message_parameters) to UQL operation chains that transform parameter values before inserting them into the message. Operations are applied in sequence (e.g., extract class names from detections, calculate counts, filter values). Keys must match parameter names in message_parameters. Leave empty or omit parameters that don't need transformation.. | ❌ |
cc_receiver_email |
Optional[List[str], str] |
Optional CC (Carbon Copy) recipient email address(es). Can be a single email address string or a list of email addresses. CC recipients receive a copy of the email and can see each other's addresses. Use for recipients who should be informed but don't need to take action.. | ✅ |
bcc_receiver_email |
Optional[List[str], str] |
Optional BCC (Blind Carbon Copy) recipient email address(es). Can be a single email address string or a list of email addresses. BCC recipients receive a copy of the email but their addresses are hidden from other recipients. Use for recipients who should receive the notification privately.. | ✅ |
smtp_server |
str |
SMTP server hostname to use for sending emails. Common examples: 'smtp.gmail.com' for Gmail, 'smtp.outlook.com' for Outlook, or your organization's SMTP server hostname. The block enforces SSL/TLS encryption for SMTP connections. Ensure the server supports SSL on the specified port.. | ✅ |
sender_email_password |
str |
Password for the sender email account to authenticate with the SMTP server. For Gmail with 2-step verification enabled, use an application-specific password instead of the regular Gmail password. This field is marked as private for security. Recommended to provide via workflow inputs rather than storing in workflow definitions. For Roboflow-hosted services, can use SECRET_KIND selectors for secure credential management.. | ✅ |
smtp_port |
int |
SMTP server port number. Defaults to 465 (standard SSL port for SMTP). Common alternatives: 587 for TLS (not supported - this block enforces SSL), 25 for unencrypted (not recommended). Ensure the port supports SSL encryption as required by this block.. | ❌ |
fire_and_forget |
bool |
Execution mode: True for asynchronous background sending (workflow continues immediately, error_status always False, faster execution), False for synchronous sending (waits for email completion, returns actual error status for debugging). Set to False during development and debugging to catch email sending errors. Set to True in production for faster workflow execution when email delivery timing is not critical.. | ✅ |
disable_sink |
bool |
Flag to disable email sending at runtime. When True, the block skips sending email and returns a disabled message. Useful for conditional notification control via workflow inputs (e.g., allow callers to disable notifications for testing, enable/disable based on configuration). Set via workflow inputs for runtime control.. | ✅ |
cooldown_seconds |
int |
Minimum seconds between consecutive email notifications to prevent notification spam. Defaults to 5 seconds. Set to 0 to disable cooldown (no throttling). During cooldown period, the block returns throttling_status=True and skips sending. Note: Cooldown only applies to video processing workflows, not HTTP request contexts (Roboflow Hosted API, Dedicated Deployment, or self-hosted servers where each request is independent).. | ✅ |
The Refs column marks possibility to parametrise the property with dynamic values available
in workflow runtime. See Bindings for more info.
Available Connections¶
Compatible Blocks
Check what blocks you can connect to Email Notification in version v1.
- inputs:
Anthropic Claude,Qwen3-VL,Camera Focus,CLIP Embedding Model,Text Display,CSV Formatter,Segment Anything 2 Model,Rate Limiter,Dynamic Crop,Relative Static Crop,Continue If,SAM 3,Qwen2.5-VL,Camera Focus,Mask Visualization,SIFT,VLM As Classifier,Path Deviation,Detections Combine,Background Color Visualization,PTZ Tracking (ONVIF).md),Polygon Visualization,Moondream2,Stitch OCR Detections,Size Measurement,Line Counter,SIFT Comparison,Byte Tracker,Detections List Roll-Up,OpenAI,Identify Outliers,Single-Label Classification Model,Crop Visualization,Keypoint Visualization,Icon Visualization,Multi-Label Classification Model,Llama 3.2 Vision,Gaze Detection,OpenAI,Image Contours,VLM As Classifier,Stitch Images,Anthropic Claude,Distance Measurement,OpenAI,SmolVLM2,Triangle Visualization,Detections Classes Replacement,Expression,Background Subtraction,EasyOCR,Reference Path Visualization,Instance Segmentation Model,Line Counter Visualization,Slack Notification,Time in Zone,Line Counter,Detection Event Log,Google Gemini,JSON Parser,Mask Area Measurement,Image Convert Grayscale,Stability AI Image Generation,Pixel Color Count,Seg Preview,Delta Filter,Time in Zone,OpenAI,Detections Merge,Stability AI Outpainting,Buffer,Webhook Sink,Image Threshold,Anthropic Claude,Instance Segmentation Model,Object Detection Model,Perception Encoder Embedding Model,Perspective Correction,Cache Set,SAM 3,First Non Empty Or Default,Detection Offset,Clip Comparison,Clip Comparison,Halo Visualization,Image Blur,Email Notification,Contrast Equalization,Object Detection Model,Blur Visualization,Detections Stabilizer,VLM As Detector,Roboflow Dataset Upload,Dimension Collapse,Corner Visualization,Classification Label Visualization,Multi-Label Classification Model,Trace Visualization,Keypoint Detection Model,Stitch OCR Detections,YOLO-World Model,Bounding Rectangle,Barcode Detection,Local File Sink,Florence-2 Model,Ellipse Visualization,Pixelate Visualization,Roboflow Custom Metadata,Single-Label Classification Model,Identify Changes,LMM,SAM 3,Environment Secrets Store,Circle Visualization,Dot Visualization,Twilio SMS Notification,SIFT Comparison,Byte Tracker,Velocity,Absolute Static Crop,Dominant Color,Morphological Transformation,Template Matching,Overlap Filter,Property Definition,Google Gemini,Dynamic Zone,Polygon Visualization,Google Vision OCR,Color Visualization,LMM For Classification,Email Notification,Cosine Similarity,VLM As Detector,Bounding Box Visualization,Model Comparison Visualization,Grid Visualization,OCR Model,Detections Consensus,Halo Visualization,Data Aggregator,Stability AI Inpainting,Image Slicer,Florence-2 Model,Heatmap Visualization,Polygon Zone Visualization,Image Slicer,Detections Filter,Google Gemini,Label Visualization,Depth Estimation,Image Preprocessing,Cache Get,Detections Stitch,Time in Zone,QR Code Detection,CogVLM,Byte Tracker,Camera Calibration,Path Deviation,Detections Transformation,QR Code Generator,Motion Detection,Keypoint Detection Model,Model Monitoring Inference Aggregator,Twilio SMS/MMS Notification,Roboflow Dataset Upload - outputs:
Anthropic Claude,CLIP Embedding Model,Text Display,Segment Anything 2 Model,Dynamic Crop,SAM 3,Mask Visualization,Path Deviation,Background Color Visualization,PTZ Tracking (ONVIF).md),Polygon Visualization,Moondream2,Stitch OCR Detections,Size Measurement,Line Counter,SIFT Comparison,OpenAI,Single-Label Classification Model,Crop Visualization,Keypoint Visualization,Icon Visualization,Multi-Label Classification Model,Llama 3.2 Vision,Gaze Detection,OpenAI,Anthropic Claude,Distance Measurement,OpenAI,Triangle Visualization,Detections Classes Replacement,Reference Path Visualization,Instance Segmentation Model,Line Counter Visualization,Slack Notification,Time in Zone,Line Counter,Google Gemini,Stability AI Image Generation,Pixel Color Count,Seg Preview,Time in Zone,OpenAI,Object Detection Model,Stability AI Outpainting,Webhook Sink,Image Threshold,Instance Segmentation Model,Anthropic Claude,Perception Encoder Embedding Model,Perspective Correction,Cache Set,SAM 3,Clip Comparison,Halo Visualization,Image Blur,Email Notification,Contrast Equalization,Object Detection Model,Blur Visualization,Roboflow Dataset Upload,Corner Visualization,Classification Label Visualization,Keypoint Detection Model,Trace Visualization,Multi-Label Classification Model,Stitch OCR Detections,YOLO-World Model,Local File Sink,Florence-2 Model,Ellipse Visualization,Pixelate Visualization,Roboflow Custom Metadata,Single-Label Classification Model,LMM,SAM 3,Circle Visualization,Dot Visualization,Twilio SMS Notification,Template Matching,Morphological Transformation,Google Gemini,Dynamic Zone,Polygon Visualization,Google Vision OCR,Color Visualization,LMM For Classification,Email Notification,Bounding Box Visualization,Model Comparison Visualization,Halo Visualization,Detections Consensus,Stability AI Inpainting,Florence-2 Model,Heatmap Visualization,Polygon Zone Visualization,Label Visualization,Google Gemini,Depth Estimation,Image Preprocessing,Cache Get,Detections Stitch,Time in Zone,CogVLM,Camera Calibration,Path Deviation,QR Code Generator,Motion Detection,Keypoint Detection Model,Twilio SMS/MMS Notification,Model Monitoring Inference Aggregator,Roboflow Dataset Upload
Input and Output Bindings¶
The available connections depend on its binding kinds. Check what binding kinds
Email Notification in version v1 has.
Bindings
-
input
sender_email(string): Email address to use as the sender of the notification. This email account must have access to the configured SMTP server and the password provided in sender_email_password. For Gmail with 2FA enabled, this should be the Gmail address that has an application-specific password configured..receiver_email(Union[string,list_of_values]): Primary recipient email address(es) for the notification. Required field - at least one recipient must be specified. Can be a single email address string or a list of email addresses for multiple recipients. Recipients will see their email addresses in the 'To' field of the received email..message_parameters(*): Dictionary mapping parameter names (used in message placeholders) to workflow data sources. Keys are parameter names referenced in message as {{ $parameters.key }}, values are selectors to workflow step outputs or direct values. These values are substituted into message placeholders at runtime. Can optionally use message_parameters_operations to transform parameter values before substitution..cc_receiver_email(Union[string,list_of_values]): Optional CC (Carbon Copy) recipient email address(es). Can be a single email address string or a list of email addresses. CC recipients receive a copy of the email and can see each other's addresses. Use for recipients who should be informed but don't need to take action..bcc_receiver_email(Union[string,list_of_values]): Optional BCC (Blind Carbon Copy) recipient email address(es). Can be a single email address string or a list of email addresses. BCC recipients receive a copy of the email but their addresses are hidden from other recipients. Use for recipients who should receive the notification privately..attachments(Union[string,bytes]): Optional dictionary mapping attachment filenames to workflow step outputs that provide file content. Keys are the attachment filenames (e.g., 'report.csv', 'summary.pdf'), values are selectors to blocks that output string or binary content (e.g., CSV Formatter outputs, image data, generated reports). Attachments are encoded and attached to the email. Leave empty if no attachments are needed..smtp_server(string): SMTP server hostname to use for sending emails. Common examples: 'smtp.gmail.com' for Gmail, 'smtp.outlook.com' for Outlook, or your organization's SMTP server hostname. The block enforces SSL/TLS encryption for SMTP connections. Ensure the server supports SSL on the specified port..sender_email_password(Union[string,secret]): Password for the sender email account to authenticate with the SMTP server. For Gmail with 2-step verification enabled, use an application-specific password instead of the regular Gmail password. This field is marked as private for security. Recommended to provide via workflow inputs rather than storing in workflow definitions. For Roboflow-hosted services, can use SECRET_KIND selectors for secure credential management..fire_and_forget(boolean): Execution mode: True for asynchronous background sending (workflow continues immediately, error_status always False, faster execution), False for synchronous sending (waits for email completion, returns actual error status for debugging). Set to False during development and debugging to catch email sending errors. Set to True in production for faster workflow execution when email delivery timing is not critical..disable_sink(boolean): Flag to disable email sending at runtime. When True, the block skips sending email and returns a disabled message. Useful for conditional notification control via workflow inputs (e.g., allow callers to disable notifications for testing, enable/disable based on configuration). Set via workflow inputs for runtime control..cooldown_seconds(integer): Minimum seconds between consecutive email notifications to prevent notification spam. Defaults to 5 seconds. Set to 0 to disable cooldown (no throttling). During cooldown period, the block returns throttling_status=True and skips sending. Note: Cooldown only applies to video processing workflows, not HTTP request contexts (Roboflow Hosted API, Dedicated Deployment, or self-hosted servers where each request is independent)..
-
output
Example JSON definition of step Email Notification in version v1
{
"name": "<your_step_name_here>",
"type": "roboflow_core/email_notification@v1",
"subject": "Workflow alert",
"sender_email": "sender@gmail.com",
"receiver_email": "receiver@gmail.com",
"message": "During last 5 minutes detected {{ $parameters.num_instances }} instances",
"message_parameters": {
"predictions": "$steps.model.predictions",
"reference": "$inputs.reference_class_names"
},
"message_parameters_operations": {
"predictions": [
{
"property_name": "class_name",
"type": "DetectionsPropertyExtract"
}
]
},
"cc_receiver_email": "cc-receiver@gmail.com",
"bcc_receiver_email": "bcc-receiver@gmail.com",
"attachments": {
"report.cvs": "$steps.csv_formatter.csv_content"
},
"smtp_server": "$inputs.smtp_server",
"sender_email_password": "$inputs.email_password",
"smtp_port": 465,
"fire_and_forget": "$inputs.fire_and_forget",
"disable_sink": false,
"cooldown_seconds": "$inputs.cooldown_seconds"
}