🚀 New! Kestra raises $3 million to grow Learn more

Webhook Webhook

type: "io.kestra.core.models.triggers.types.Webhook"

Trigger a flow from a webhook

Webhook trigger allows you to create a unique URL that you can use to trigger a Kestra flow execution based on a presence of events in another application such as GitHub or Amazon EventBridge. In order to use that URL, you have to add a secret key that will secure your webhook URL.

The URL will then follow the following format: https://{your_hostname}/api/v1/executions/webhook/{namespace}/{flowId}/{key}. Replace the templated values accordingly to your workflow setup.

The webhook URL accepts GET, POST and PUT requests.

You can access the request body and headers sent by another application using the following template variables:

  • null
  • null.

The webhook response will be one of the following HTTP status codes:

  • 404 if the namespace, flow or webhook key is not found
  • 200 if the webhook triggers an execution
  • 204 if the webhook cannot trigger an execution due to a lack of matching event conditions sent by other application.

A Webhook trigger can have conditions but it didn't support conditions of type MultipleCondition.


Add a webhook trigger to the current flow with the key 4wjtkzwVGBM9yKnjm3yv8r, the webhook will be available at the URI /api/v1/executions/webhook/{namespace}/{flowId}/4wjtkzwVGBM9yKnjm3yv8r.

  - id: webhook
    type: io.kestra.core.models.triggers.types.Webhook
    key: 4wjtkzwVGBM9yKnjm3yv8r

Add a trigger matching specific webhook event condition. The flow will be executed only if the condition is met.`.

  - id: webhook
    type: io.kestra.core.models.triggers.types.Webhook
    key: 4wjtkzwVGBM9yKnjm3yv8r
      - type: io.kestra.core.models.conditions.types.VariableCondition
        expression: "{{ trigger.body.hello == 'world' }}"



  • Type: string
  • Dynamic: ✔️
  • Required: ✔️
  • Max length: 256

The unique key that will be part of the url

The key is used for generating the url of the webhook.


  • Type: array
  • SubType: Condition
  • Dynamic:
  • Required:

List of Conditions in order to limit the flow trigger.



  • Type: object

The full body for the webhook request

We try to deserialize the incoming request as json (array or object). If we can't the full body as string will be available


  • Type: object
  • SubType: array

The headers for the webhook request


  • Type: object
  • SubType: array

The parameters for the webhook request