Skip to content

Twilio SMS/MMS Notification

Class: TwilioSMSNotificationBlockV2

Source: inference.core.workflows.core_steps.sinks.twilio.sms.v2.TwilioSMSNotificationBlockV2

The Twilio SMS/MMS Notification block allows users to send text and multimedia messages as part of a workflow.

SMS Provider Options

This block supports two SMS delivery methods via a dropdown selector:

  1. Roboflow Managed API Key (Default) - No Twilio configuration needed. Messages are sent through Roboflow's proxy service:
  2. Simplified setup - just provide message, recipient, and optional media
  3. Secure - your workflow API key is used for authentication
  4. No Twilio account required
  5. Pricing: US/Canada: 30 messages per credit. International: 10 messages per credit. (SMS and MMS priced the same)

  6. Custom Twilio - Use your own Twilio account:

  7. Full control over message delivery
  8. Requires Twilio credentials (Account SID, Auth Token, Phone Number)
  9. You pay Twilio directly for messaging

Message Content

  • Receiver Number: Phone number to receive the message (must be in E.164 format, e.g., +15551234567)

  • Message: The body content of the SMS/MMS. Message can be parametrised with data generated during workflow run. See Dynamic Parameters section.

  • Media URL (Optional): For MMS messages, provide image URL(s) or image outputs from visualization blocks

Dynamic Parameters

Message content can be parametrised with Workflow execution outcomes. Example:

message = "Alert! Detected {{ $parameters.num_detections }} objects"

Message parameters are set via message_parameters:

message_parameters = {
    "num_detections": "$steps.model.predictions"
}

Transform data using message_parameters_operations:

message_parameters_operations = {
    "predictions": [
        {"type": "DetectionsPropertyExtract", "property_name": "class_name"}
    ]
}

MMS Support

Send images with your message by providing media_url:

  • Image URLs: Provide publicly accessible image URLs as a string or list
  • Workflow Images: Reference image outputs from visualization blocks
  • Base64 Images: Images are automatically converted for transmission

Example:

media_url = "$steps.bounding_box_visualization.image"

Or multiple images:

media_url = ["https://example.com/image1.jpg", "https://example.com/image2.jpg"]

Note: MMS is primarily supported in US/Canada. International MMS availability varies by carrier.

Using Custom Twilio

To use your own Twilio account, select "Custom Twilio" and configure:

  • twilio_account_sid - Your Twilio Account SID from the Twilio Console
  • twilio_auth_token - Your Twilio Auth Token
  • sender_number - Your Twilio phone number (must be in E.164 format)

Cooldown

The block accepts cooldown_seconds (defaults to 5 seconds) to prevent notification bursts. Set 0 for no cooldown.

During cooldown, the throttling_status output is set to True and no message is sent.

Cooldown limitations

Cooldown is limited to video processing. Using this block in HTTP service workflows (Roboflow Hosted API, Dedicated Deployment) has no cooldown effect for HTTP requests.

Async Execution

Set fire_and_forget=True to send messages in the background, allowing the Workflow to proceed.
With async mode, error_status is always False. Set fire_and_forget=False for debugging.

Disabling Notifications

Set disable_sink flag to manually disable the notifier block via Workflow input.

Type identifier

Use the following identifier in step "type" field: roboflow_core/twilio_sms_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..
sms_provider str Choose SMS delivery method: use Roboflow's managed service or configure your own Twilio account..
receiver_number str Phone number to receive the message (E.164 format, e.g., +15551234567).
message str Content of the message to be sent..
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..
media_url Optional[List[str], str] Optional media URL(s) for MMS. Provide publicly accessible image URLs or image outputs from workflow blocks..
twilio_account_sid str Twilio Account SID from the Twilio Console..
twilio_auth_token str Twilio Auth Token from the Twilio Console..
sender_number str Sender phone number (E.164 format, e.g., +15551234567).
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 Twilio SMS/MMS Notification in version v2.

Input and Output Bindings

The available connections depend on its binding kinds. Check what binding kinds Twilio SMS/MMS Notification in version v2 has.

Bindings
  • input

    • receiver_number (string): Phone number to receive the message (E.164 format, e.g., +15551234567).
    • message_parameters (*): Data to be used inside the message..
    • media_url (Union[string, list_of_values, image]): Optional media URL(s) for MMS. Provide publicly accessible image URLs or image outputs from workflow blocks..
    • twilio_account_sid (Union[string, secret]): Twilio Account SID from the Twilio Console..
    • twilio_auth_token (Union[string, secret]): Twilio Auth Token from the Twilio Console..
    • sender_number (string): Sender phone number (E.164 format, e.g., +15551234567).
    • 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

    • error_status (boolean): Boolean flag.
    • throttling_status (boolean): Boolean flag.
    • message (string): String value.
Example JSON definition of step Twilio SMS/MMS Notification in version v2
{
    "name": "<your_step_name_here>",
    "type": "roboflow_core/twilio_sms_notification@v2",
    "sms_provider": "Roboflow Managed API Key",
    "receiver_number": "+15551234567",
    "message": "Alert! Detected {{ $parameters.num_detections }} objects",
    "message_parameters": {
        "num_detections": "$steps.model.predictions",
        "reference": "$inputs.reference_class_names"
    },
    "message_parameters_operations": {
        "predictions": [
            {
                "property_name": "class_name",
                "type": "DetectionsPropertyExtract"
            }
        ]
    },
    "media_url": "$steps.visualization.image",
    "twilio_account_sid": "$inputs.twilio_account_sid",
    "twilio_auth_token": "$inputs.twilio_auth_token",
    "sender_number": "+15551234567",
    "fire_and_forget": "$inputs.fire_and_forget",
    "disable_sink": false,
    "cooldown_seconds": "$inputs.cooldown_seconds"
}