Twilio Messaging TwilioExecution

Twilio Messaging TwilioExecution

Certified

Send execution summary via Twilio

Uses the bundled template to send execution status, flow metadata, and a UI link through Twilio Notify. Intended for Flow-triggered alerts; for errors handlers, use TwilioAlert instead.

yaml
type: io.kestra.plugin.twilio.notify.TwilioExecution

Send a Twilio notification on a failed flow execution.

yaml
id: failure_alert
namespace: company.team

tasks:
  - id: send_alert
    type: io.kestra.plugin.twilio.notify.TwilioExecution
    url: "{{ secret('TWILIO_NOTIFICATION_URL') }}" # format: https://notify.twilio.com/v1/Services/ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Notifications
    accountSID: "{{ secret('TWILIO_ACCOUNT_SID') }}"
    authToken: "{{ secret('TWILIO_AUTH_TOKEN') }}"
    identity: 0000001
    executionId: "{{trigger.executionId}}"

triggers:
  - id: failed_prod_workflows
    type: io.kestra.plugin.core.trigger.Flow
    conditions:
      - type: io.kestra.plugin.core.condition.ExecutionStatus
        in:
          - FAILED
          - WARNING
      - type: io.kestra.plugin.core.condition.ExecutionNamespace
        namespace: prod
        prefix: true
Installation

Our standard Docker images already include this plugin. If you use a -slim image or another setup, install it with the following command:

kestractl plugins get io.kestra.plugin:plugin-twilio --compatible-for $KESTRA_VERSION

For kestractl, use your Kestra version with --compatible-for, or specify an exact plugin version.

For Kestra CLI, replace LATEST with a specific version or version range to pin the plugin version.

Properties
Min length1

Twilio Account SID

Used with authToken for HTTP basic authentication

Min length1

Twilio Auth Token

Secret token paired with the Account SID; store as a secret

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150

Notification body override

Optional string merged into the payload as Body; rendered with flow variables

Custom fields

Key-value pairs appended to the notification body, one key: value line each

Custom message

Optional message appended to the notification body after the execution summary

Default{{ execution.id }}

Execution ID

Defaults to the current execution ID using an expression

Recipient identity

Notify identity used to target specific devices when provided

Options

Optional HTTP client overrides for timeouts, charset, and headers

Definitions
connectTimeoutstring

Connect timeout

Time allowed to establish the HTTP connection before failing

connectionPoolIdleTimeoutstring
DefaultPT0S

Connection pool idle timeout

Deprecated, this option has no effect: Kestra's HTTP client does not support a connection pool idle timeout.

defaultCharsetstring
DefaultUTF-8

Default request charset

Charset applied to requests when not specified; defaults to UTF-8

headersobject

HTTP headers

HTTP headers to include in the request

maxContentLengthintegerstring
Default10485760

Max response size

Deprecated, this option has no effect: Kestra's HTTP client does not limit the response size.

readIdleTimeoutstring
DefaultPT5M

Read idle timeout

How long a read connection may stay idle before closing; defaults to 5m

readTimeoutstring
DefaultPT10S

Read timeout

Deprecated, this option has no effect: Kestra's HTTP client has no separate read timeout. Use readIdleTimeout instead.

Notify payload body

Raw JSON payload sent to Twilio; overrides templated fields when provided

Recipient tag

Notify tag used to target user groups

Template variables

Key-value map rendered before applying the message template