N8n TriggerWorkflow

N8n TriggerWorkflow

Certified

Call n8n webhook from Kestra

Invokes an n8n workflow via its webhook URL using Kestra's HTTP client. Default behavior waits for the webhook response and parses JSON when the Content-Type includes application/json; other payloads are returned as text. Non-200 responses fail the task.

yaml
type: io.kestra.plugin.n8n.TriggerWorkflow

Simple Trigger Workflow

yaml
id: n8n_webhook_trigger
namespace: company.team

tasks:
  - id: trigger_workflow
    type: io.kestra.plugin.n8n.TriggerWorkflow
    method: POST
    uri: "{{ secret('N8N_WEBHOOK_URL') }}"

Trigger Workflow With Basic Auth

yaml
id: n8n_webhook_trigger_with_auth
namespace: company.team

tasks:
  - id: trigger_workflow
    type: io.kestra.plugin.n8n.TriggerWorkflow
    options:
      auth:
        type: BASIC
        username: "{{ secret('N8N_WEBHOOK_USERNAME') }}"
        password: "{{ secret('N8N_WEBHOOK_PASSWORD') }}"
    method: POST
    uri: "{{ secret('N8N_WEBHOOK_URL') }}"

Trigger Workflow With Body

yaml
id: n8n_webhook_trigger_with_body
namespace: company.team

tasks:
  - id: trigger_workflow
    type: io.kestra.plugin.n8n.TriggerWorkflow
    body:
      keyOne: valueOne
    method: POST
    uri: "{{ secret('N8N_WEBHOOK_URL') }}"

Send file payload from storage

yaml
id: n8n_webhook_trigger_with_file
namespace: company.team

tasks:
  - id: trigger_workflow
    type: io.kestra.plugin.n8n.TriggerWorkflow
    method: POST
    uri: "{{ secret('N8N_WEBHOOK_URL') }}"
    from: kestra:///data/uploads/report.pdf
    contentType: BINARY

GET webhook with headers and params

yaml
id: n8n_webhook_trigger_with_headers
namespace: company.team

tasks:
  - id: trigger_workflow
    type: io.kestra.plugin.n8n.TriggerWorkflow
    method: GET
    uri: "{{ secret('N8N_WEBHOOK_URL') }}"
    wait: false
    queryParameters:
      source: kestra
      runId: "{{ run.id }}"
    headers:
      X-Request-ID: "{{ taskrun.id }}"
      X-Api-Key: "{{ secret('N8N_API_KEY') }}"
Properties
Possible Values
GETPOSTPUTDELETEPATCH

HTTP method

Request method sent to the webhook. Must match the method configured on the n8n webhook; supports DELETE, GET, PATCH, POST, and PUT.

n8n webhook URL

Webhook endpoint from the target n8n workflow. Use the Test URL during development and switch to the Production URL for live runs.

Request body

JSON-compatible data to send in the body. Ignored if from is set. Maximum payload size 16 MB.

DefaultBINARY
Possible Values
TEXTJSONXMLBINARY

Content type

Format used for the request body. Default is BINARY for file sends; select JSON, XML, or TEXT when sending structured or textual payloads.

File source URI

Kestra storage URI for the request body. Use instead of body when sending binaries or large content; mutually exclusive with body.

HTTP headers

Custom headers for authentication, content negotiation, or metadata forwarded to n8n.

HTTP client configuration

Definitions
allowFailedbooleanstring
Defaultfalse

If true, allow a failed response code (response code >= 400)

allowedResponseCodesarray
SubTypeinteger

List of response code allowed for this request

auth

The authentication to use.

type*Requiredobject
passwordstring

The password for HTTP basic authentication.

usernamestring

The username for HTTP basic authentication.

type*Requiredobject
tokenstring

The token for bearer token authentication.

type*Requiredobject
passwordstring

The password for HTTP Digest authentication.

usernamestring

The username for HTTP Digest authentication.

basicAuthPasswordDeprecatedstring

The password for HTTP basic authentication. Deprecated, use auth property with a BasicAuthConfiguration instance instead.

basicAuthUserDeprecatedstring

The username for HTTP basic authentication. Deprecated, use auth property with a BasicAuthConfiguration instance instead.

connectTimeoutDeprecatedstring
Formatduration

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

connectionPoolIdleTimeoutDeprecatedstring
Formatduration

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.

enabledTcpExtendedKeepAlivebooleanstring
Defaulttrue

Whether to enable TCP Keep-Alive extended socket options (TCP_KEEPIDLE, TCP_KEEPINTERVAL, TCP_KEEPCOUNT).

Set to false when running on Windows workers, as these extended socket options are not supported by the Windows JDK and will cause connection failures.

followRedirectsbooleanstring
Defaulttrue

Whether redirects should be followed automatically.

logLevelDeprecatedstring
Possible Values
ALLTRACEDEBUGINFOWARNERROROFFNOT_SPECIFIED

The log level for the HTTP client.

logsarray
SubTypestring
Possible Values
REQUEST_HEADERSREQUEST_BODYRESPONSE_HEADERSRESPONSE_BODY

The enabled log.

maxContentLengthDeprecatedinteger

The maximum content length of the response.

proxy

The proxy configuration.

addressstring

The address of the proxy server.

passwordstring

The password for proxy authentication.

portintegerstring

The port of the proxy server.

typestring
DefaultDIRECT
Possible Values
DIRECTHTTPSOCKS

The type of proxy to use.

usernamestring

The username for proxy authentication.

proxyAddressDeprecatedstring

The address of the proxy server.

proxyPasswordDeprecatedstring

The password for proxy authentication.

proxyPortDeprecatedinteger

The port of the proxy server.

proxyTypeDeprecatedstring
Possible Values
DIRECTHTTPSOCKS

The type of proxy to use.

proxyUsernameDeprecatedstring

The username for proxy authentication.

readIdleTimeoutDeprecatedstring
Formatduration

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

readTimeoutDeprecatedstring
Formatduration

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

ssl

The SSL request options

insecureTrustAllCertificatesbooleanstring

Whether to disable checking of the remote SSL certificate.

Only applies if no trust store is configured. Note: This makes the SSL connection insecure and should only be used for testing. If you are using a self-signed certificate, set up a trust store instead.

timeout

The timeout configuration.

connectTimeoutstring

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

readIdleTimeoutstring
DefaultPT5M

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

Reference (ref) of the pluginDefaults to apply to this task.

Query parameters

Extra query parameters appended to the webhook URL; available to the n8n workflow as request data.

Defaulttrue

Wait for response

Whether to wait for the n8n response. Defaults to true; respects n8n response mode (immediate, deferred, streaming).