Camunda PublishMessage

Camunda PublishMessage

Certified

Publish a correlation message to a Camunda cluster

Publishes a message that Camunda correlates against message subscriptions of running process instances, or buffers for its time to live when nothing is waiting for it yet. Leave correlationKey unset for a message that starts a process instance through a message start event.

yaml
type: io.kestra.plugin.camunda.PublishMessage

Publish a payment confirmation for one order and log the message key.

yaml
id: publish_camunda_message
namespace: company.team

tasks:
  - id: publish_message
    type: io.kestra.plugin.camunda.PublishMessage
    restAddress: "{{ secret('CAMUNDA_REST_ADDRESS') }}"
    clientId: "{{ secret('CAMUNDA_CLIENT_ID') }}"
    clientSecret: "{{ secret('CAMUNDA_CLIENT_SECRET') }}"
    authorizationServerUrl: "{{ secret('CAMUNDA_AUTH_SERVER_URL') }}"
    audience: "{{ secret('CAMUNDA_AUDIENCE') }}"
    messageName: payment-received
    correlationKey: order-123
    variables:
      amount: 99.99

  - id: log_result
    type: io.kestra.plugin.core.log.Log
    message: "Published message with key {{ outputs.publish_message.messageKey }}"

Publish a message that starts a new process instance, with deduplication over 10 minutes.

yaml
id: start_camunda_process_by_message
namespace: company.team

tasks:
  - id: publish_message
    type: io.kestra.plugin.camunda.PublishMessage
    restAddress: http://localhost:8080
    messageName: order-created
    messageId: "{{ execution.id }}"
    timeToLive: PT10M
    variables:
      orderId: ORD-123
Properties

Name of the message

Must match the message name of the BPMN message subscription.

OAuth2 audience

Required for OAuth2 against a self-managed cluster. The audience claim the identity provider must issue the token for, commonly zeebe-api. Derived from the cluster for Camunda SaaS, so leave it unset there.

OAuth2 token endpoint

Required for OAuth2 against a self-managed cluster, for example http://localhost: 18080/auth/realms/camunda-platform/protocol/openid-connect/token.

OAuth2 client ID

Set together with clientSecret and either authorizationServerUrl (self-managed) or clusterId (SaaS).

OAuth2 client secret

Set together with clientId.

Camunda SaaS cluster ID

Switches the client to SaaS mode, where restAddress and grpcAddress are derived from the cluster ID and region.

Correlation key of the message

Matched against the correlation key of waiting subscriptions. Leave unset to publish a message without a correlation key, as used by message start events.

gRPC gateway address of the Camunda cluster

For a self-managed cluster, for example http://localhost: 26500. Setting it without restAddress sends this task's commands over gRPC instead of REST.

Unique ID used to deduplicate the message

Camunda rejects a second message with the same name, correlation key and ID while the first one is still buffered.

Password for Basic authentication

Must be set together with username.

Camunda SaaS region

For example bru-2. Only used with clusterId.

REST API base URL of the Camunda cluster

For a self-managed cluster, the orchestration cluster address, for example http://localhost: 8080. Commands use the REST API unless only grpcAddress is set.

Camunda tenant ID

Camunda's own multi-tenancy identifier, unrelated to the Kestra tenant the flow runs in. Applied to every command this task sends. Defaults to <default>, which is the only tenant on a cluster that does not have multi-tenancy enabled.

How long Camunda buffers the message when no subscription matches yet

ISO-8601 duration. Defaults to the client default of one hour. PT0S discards the message when nothing is waiting for it.

Possible Values
RESTGRPC

Which API to send commands over

Defaults to gRPC on Camunda SaaS, and on a self-managed cluster to the API implied by whichever address is set, falling back to REST when both or neither are. SaaS defaults to gRPC because a default free-tier cluster answers 404 Not Found on the REST base the client derives, while gRPC succeeds with the same credentials. Set REST to opt back in if your cluster serves it.

Username for Basic authentication

Must be set together with password. Mutually exclusive with the OAuth2 properties.

Variables to merge into the correlated process instance

Key assigned to the published message

Tenant the message belongs to