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:
Dynamic Crop,OCR Model,Barcode Detection,Image Blur,Background Subtraction,Google Vision OCR,Environment Secrets Store,Google Gemini,Image Preprocessing,Local File Sink,Object Detection Model,Single-Label Classification Model,Model Monitoring Inference Aggregator,Bounding Box Visualization,Multi-Label Classification Model,Keypoint Detection Model,Camera Focus,Identify Outliers,Dot Visualization,Florence-2 Model,Gaze Detection,Roboflow Dataset Upload,CSV Formatter,Depth Estimation,Polygon Visualization,OpenAI,Line Counter,Detections List Roll-Up,Image Slicer,Rate Limiter,Heatmap Visualization,Google Gemini,Distance Measurement,Line Counter Visualization,Morphological Transformation,Stability AI Image Generation,Keypoint Visualization,Keypoint Detection Model,Background Color Visualization,Label Visualization,QR Code Detection,Polygon Visualization,LMM,CogVLM,Time in Zone,Single-Label Classification Model,Triangle Visualization,Stability AI Outpainting,Mask Visualization,Color Visualization,Detections Combine,Dominant Color,Text Display,Bounding Rectangle,Reference Path Visualization,Llama 3.2 Vision,OpenAI,Clip Comparison,Clip Comparison,Image Threshold,Classification Label Visualization,Polygon Zone Visualization,Delta Filter,Image Contours,VLM As Classifier,Continue If,Roboflow Custom Metadata,LMM For Classification,Dynamic Zone,Velocity,Halo Visualization,Semantic Segmentation Model,Blur Visualization,Path Deviation,Absolute Static Crop,Anthropic Claude,Cosine Similarity,SAM 3,Detections Transformation,Ellipse Visualization,Identify Changes,Crop Visualization,Path Deviation,SIFT Comparison,Trace Visualization,Twilio SMS Notification,Size Measurement,Detections Stabilizer,Stitch Images,Detections Merge,Time in Zone,Motion Detection,Email Notification,OpenAI,SIFT Comparison,Qwen2.5-VL,Seg Preview,Time in Zone,Instance Segmentation Model,Anthropic Claude,Multi-Label Classification Model,Email Notification,Slack Notification,Twilio SMS/MMS Notification,Detections Stitch,VLM As Detector,Camera Focus,Cache Set,Stitch OCR Detections,SAM 3,Perspective Correction,Moondream2,PTZ Tracking (ONVIF),Expression,Qwen3.5-VL,Camera Calibration,Corner Visualization,Icon Visualization,Overlap Filter,Byte Tracker,VLM As Detector,Halo Visualization,JSON Parser,Detection Event Log,Pixelate Visualization,Qwen3-VL,Contrast Equalization,Dimension Collapse,VLM As Classifier,Data Aggregator,Instance Segmentation Model,Detections Classes Replacement,Relative Static Crop,Line Counter,Stitch OCR Detections,Webhook Sink,First Non Empty Or Default,Circle Visualization,Image Convert Grayscale,Grid Visualization,Byte Tracker,Mask Area Measurement,Florence-2 Model,Buffer,SmolVLM2,SAM 3,Perception Encoder Embedding Model,Cache Get,SIFT,YOLO-World Model,Object Detection Model,Byte Tracker,Detections Consensus,Template Matching,Anthropic Claude,Property Definition,Google Gemini,Model Comparison Visualization,Detection Offset,EasyOCR,QR Code Generator,Image Slicer,S3 Sink,CLIP Embedding Model,Stability AI Inpainting,Segment Anything 2 Model,OpenAI,Detections Filter,Pixel Color Count,Roboflow Dataset Upload - outputs:
Dynamic Crop,Image Blur,Google Vision OCR,Google Gemini,Image Preprocessing,Object Detection Model,Local File Sink,Single-Label Classification Model,Model Monitoring Inference Aggregator,Multi-Label Classification Model,Bounding Box Visualization,Keypoint Detection Model,Gaze Detection,Dot Visualization,Florence-2 Model,Roboflow Dataset Upload,Depth Estimation,Polygon Visualization,OpenAI,Line Counter,Line Counter Visualization,Heatmap Visualization,Google Gemini,Stability AI Image Generation,Morphological Transformation,Distance Measurement,Keypoint Visualization,Keypoint Detection Model,Background Color Visualization,Label Visualization,Polygon Visualization,LMM,CogVLM,Time in Zone,Single-Label Classification Model,Triangle Visualization,Stability AI Outpainting,Mask Visualization,Color Visualization,Text Display,Reference Path Visualization,OpenAI,Llama 3.2 Vision,Image Threshold,Clip Comparison,Classification Label Visualization,Polygon Zone Visualization,Roboflow Custom Metadata,Dynamic Zone,LMM For Classification,Halo Visualization,Blur Visualization,Path Deviation,Anthropic Claude,SAM 3,Ellipse Visualization,Crop Visualization,Path Deviation,Trace Visualization,Twilio SMS Notification,Size Measurement,Time in Zone,Motion Detection,Email Notification,SIFT Comparison,OpenAI,Seg Preview,Time in Zone,Instance Segmentation Model,Multi-Label Classification Model,Anthropic Claude,Email Notification,Slack Notification,Twilio SMS/MMS Notification,Detections Stitch,Cache Set,SAM 3,Stitch OCR Detections,Perspective Correction,PTZ Tracking (ONVIF),Moondream2,Icon Visualization,Corner Visualization,Camera Calibration,Halo Visualization,Pixelate Visualization,Contrast Equalization,Instance Segmentation Model,Detections Classes Replacement,Line Counter,Stitch OCR Detections,Webhook Sink,Circle Visualization,Florence-2 Model,SAM 3,Perception Encoder Embedding Model,Cache Get,YOLO-World Model,Template Matching,Object Detection Model,Detections Consensus,Anthropic Claude,Google Gemini,Model Comparison Visualization,QR Code Generator,S3 Sink,CLIP Embedding Model,Stability AI Inpainting,Segment Anything 2 Model,OpenAI,Pixel Color Count,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:
Dynamic Crop,OCR Model,Barcode Detection,Image Blur,Background Subtraction,Google Vision OCR,Environment Secrets Store,Google Gemini,Image Preprocessing,Local File Sink,Object Detection Model,Single-Label Classification Model,Model Monitoring Inference Aggregator,Bounding Box Visualization,Multi-Label Classification Model,Keypoint Detection Model,Camera Focus,Identify Outliers,Dot Visualization,Florence-2 Model,Gaze Detection,Roboflow Dataset Upload,CSV Formatter,Depth Estimation,Polygon Visualization,OpenAI,Line Counter,Detections List Roll-Up,Image Slicer,Rate Limiter,Heatmap Visualization,Google Gemini,Distance Measurement,Line Counter Visualization,Morphological Transformation,Stability AI Image Generation,Keypoint Visualization,Keypoint Detection Model,Background Color Visualization,Label Visualization,QR Code Detection,Polygon Visualization,LMM,CogVLM,Time in Zone,Single-Label Classification Model,Triangle Visualization,Stability AI Outpainting,Mask Visualization,Color Visualization,Detections Combine,Dominant Color,Text Display,Bounding Rectangle,Reference Path Visualization,Llama 3.2 Vision,OpenAI,Clip Comparison,Clip Comparison,Image Threshold,Classification Label Visualization,Polygon Zone Visualization,Delta Filter,Image Contours,VLM As Classifier,Continue If,Roboflow Custom Metadata,LMM For Classification,Dynamic Zone,Velocity,Halo Visualization,Semantic Segmentation Model,Blur Visualization,Path Deviation,Absolute Static Crop,Anthropic Claude,Cosine Similarity,SAM 3,Detections Transformation,Ellipse Visualization,Identify Changes,Crop Visualization,Path Deviation,SIFT Comparison,Trace Visualization,Twilio SMS Notification,Size Measurement,Detections Stabilizer,Stitch Images,Detections Merge,Time in Zone,Motion Detection,Email Notification,OpenAI,SIFT Comparison,Qwen2.5-VL,Seg Preview,Time in Zone,Instance Segmentation Model,Anthropic Claude,Multi-Label Classification Model,Email Notification,Slack Notification,Twilio SMS/MMS Notification,Detections Stitch,VLM As Detector,Camera Focus,Cache Set,Stitch OCR Detections,SAM 3,Perspective Correction,Moondream2,PTZ Tracking (ONVIF),Expression,Qwen3.5-VL,Camera Calibration,Corner Visualization,Icon Visualization,Overlap Filter,Byte Tracker,VLM As Detector,Halo Visualization,JSON Parser,Detection Event Log,Pixelate Visualization,Qwen3-VL,Contrast Equalization,Dimension Collapse,VLM As Classifier,Data Aggregator,Instance Segmentation Model,Detections Classes Replacement,Relative Static Crop,Line Counter,Stitch OCR Detections,Webhook Sink,First Non Empty Or Default,Circle Visualization,Image Convert Grayscale,Grid Visualization,Byte Tracker,Mask Area Measurement,Florence-2 Model,Buffer,SmolVLM2,SAM 3,Perception Encoder Embedding Model,Cache Get,SIFT,YOLO-World Model,Object Detection Model,Byte Tracker,Detections Consensus,Template Matching,Anthropic Claude,Property Definition,Google Gemini,Model Comparison Visualization,Detection Offset,EasyOCR,QR Code Generator,Image Slicer,S3 Sink,CLIP Embedding Model,Stability AI Inpainting,Segment Anything 2 Model,OpenAI,Detections Filter,Pixel Color Count,Roboflow Dataset Upload - outputs:
Dynamic Crop,Image Blur,Google Vision OCR,Google Gemini,Image Preprocessing,Object Detection Model,Local File Sink,Single-Label Classification Model,Model Monitoring Inference Aggregator,Multi-Label Classification Model,Bounding Box Visualization,Keypoint Detection Model,Gaze Detection,Dot Visualization,Florence-2 Model,Roboflow Dataset Upload,Depth Estimation,Polygon Visualization,OpenAI,Line Counter,Line Counter Visualization,Heatmap Visualization,Google Gemini,Stability AI Image Generation,Morphological Transformation,Distance Measurement,Keypoint Visualization,Keypoint Detection Model,Background Color Visualization,Label Visualization,Polygon Visualization,LMM,CogVLM,Time in Zone,Single-Label Classification Model,Triangle Visualization,Stability AI Outpainting,Mask Visualization,Color Visualization,Text Display,Reference Path Visualization,OpenAI,Llama 3.2 Vision,Image Threshold,Clip Comparison,Classification Label Visualization,Polygon Zone Visualization,Roboflow Custom Metadata,Dynamic Zone,LMM For Classification,Halo Visualization,Blur Visualization,Path Deviation,Anthropic Claude,SAM 3,Ellipse Visualization,Crop Visualization,Path Deviation,Trace Visualization,Twilio SMS Notification,Size Measurement,Time in Zone,Motion Detection,Email Notification,SIFT Comparison,OpenAI,Seg Preview,Time in Zone,Instance Segmentation Model,Multi-Label Classification Model,Anthropic Claude,Email Notification,Slack Notification,Twilio SMS/MMS Notification,Detections Stitch,Cache Set,SAM 3,Stitch OCR Detections,Perspective Correction,PTZ Tracking (ONVIF),Moondream2,Icon Visualization,Corner Visualization,Camera Calibration,Halo Visualization,Pixelate Visualization,Contrast Equalization,Instance Segmentation Model,Detections Classes Replacement,Line Counter,Stitch OCR Detections,Webhook Sink,Circle Visualization,Florence-2 Model,SAM 3,Perception Encoder Embedding Model,Cache Get,YOLO-World Model,Template Matching,Object Detection Model,Detections Consensus,Anthropic Claude,Google Gemini,Model Comparison Visualization,QR Code Generator,S3 Sink,CLIP Embedding Model,Stability AI Inpainting,Segment Anything 2 Model,OpenAI,Pixel Color Count,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"
}