Discord DiscordExecution

Discord DiscordExecution

Certified

Send a Discord message with the execution information

The message will include a link to the execution page in the UI along with the execution ID, namespace, flow name, the start date, duration, and the final status of the execution. If failed, then the task that led to the failure is specified.

Use this notification task only in a flow that has a Flow trigger. Don't use this notification task in errors tasks. Instead, for errors tasks, use the DiscordIncomingWebhook task.

yaml
type: io.kestra.plugin.discord.DiscordExecution

Send a Discord notification on a failed flow execution.

yaml
id: failure_alert
namespace: company.team

tasks:
  - id: send_alert
    type: io.kestra.plugin.discord.DiscordExecution
    url: "{{ secret('DISCORD_WEBHOOK') }}" # format: https://hooks.discord.com/services/xzy/xyz/xyz
    username: "MyUsername"
    embedList:
        - title: "Discord Notification"
          color:
              - 255
              - 255
              - 255
    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
Properties
Min length1

Webhook URL, which should be taken from the Discord integrations tab

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

Webhook avatar URL

Message content

Custom fields

Added as fields of the notification embed, after the customMessage field if it is set. Discord allows at most 25 fields per embed, so if there are more entries, the last field says how many were omitted. Discord also limits a message to 6000 characters in total, so all fields share a budget of 4000 characters and long names and values are shortened.

Custom message to be added on notification

Adds an embed to the discord notification body

Definitions
authorNamestring

Message author name

colorarray
SubTypeinteger

RGB color of text

Example: [255, 255, 255]

descriptionstring

Message description

footerstring

Footer text

thumbnailstring

Thumbnail URL

titlestring

Title

websiteUrlstring

Website URL, link title with given URL

Default{{ execution.id }}

The execution id to use

Default is the current execution, change it to {{ trigger.executionId }} if you use this task with a Flow trigger to use the original execution.

Options

The options to set to customize the HTTP client

Definitions
connectTimeoutstring

The time allowed to establish a connection to the server before failing

connectionPoolIdleTimeoutstring
DefaultPT0S

The time an idle connection can remain in the client's connection pool before being closed

defaultCharsetstring
DefaultUTF-8

The default charset for the request

headersobject

HTTP headers

HTTP headers to include in the request

maxContentLengthintegerstring
Default10485760

The maximum content length of the response

readIdleTimeoutstring
DefaultPT5M

The time allowed for a read connection to remain idle before closing it

readTimeoutstring
DefaultPT10S

The maximum time allowed for reading data from the server before failing

Discord message payload

Map of variables to use for the message template

Webhook username