For the complete documentation index, see llms.txt.
Skip to main content
Version: 8.8

Amazon EventBridge Webhook connector

Use the Amazon EventBridge Webhook connector to start a process instance or continue a running one when an event arrives from Amazon EventBridge.

About this connector​

The Amazon EventBridge Webhook connector is an inbound connector that exposes a webhook URL. Amazon EventBridge sends events to this URL through an API destination, and the connector triggers your process. For example, use it to start a process instance when an EventBridge rule detects a new shipment.

You can use the connector with the following BPMN elements:

  • Start event
  • Message start event
  • Intermediate catch event
  • Boundary event
  • Receive task

To send events to Amazon EventBridge from a process, use the Amazon EventBridge connector.

Prerequisites​

To use the Amazon EventBridge Webhook connector, you need an Amazon EventBridge setup that can send events to the webhook URL of the connector. See configuring Amazon EventBridge for an example.

Create an Amazon EventBridge Webhook connector task​

You can apply a connector to a task or event via the append menu. For example:

  • From the canvas: Select an element and click the Change element icon to change an existing element, or use the append feature to add a new element to the diagram.
  • From the properties panel: Navigate to the Template section and click Select.
  • From the side palette: Click the Create element icon.

change element

After you have applied a connector to your element, follow the configuration steps or see using connectors to learn more.

For the modeling steps of each BPMN element, see using inbound connectors.

Configuration​

Properties differ by BPMN element. Unless noted otherwise, a property is available for all elements.

Webhook configuration​

PropertyTypeRequiredDescriptionExample
Webhook methodDropdownYesThe HTTP method of the webhook: Any, Get, Post, Put, or Delete. Select Any if the method doesn't matter. The default is Any.
Webhook IDStringYesThe ID (path) of the webhook. It's part of the webhook URL. By default, it's pre-filled with a random value. See activating the connector.

Authorization​

PropertyTypeRequiredDescriptionExample
Authorization typeDropdownYesThe authorization type: None, JWT, Basic, or API key. The default is None.

Select the authorization type based on your security requirements and fill in the corresponding properties.

None​

No authentication is required. Anyone can trigger the webhook without credentials.

JWT​

PropertyTypeRequiredDescriptionExample
JWK URLStringNoThe well-known URL of the JSON Web Key (JWK) Set that contains the public keys used to verify the JWT signature. Learn more about JWK.
IssuerStringYesThe expected value of the JWT iss claim.
AudienceStringYesThe expected value of the JWT aud claim.
JWT role property expressionStringNoAn expression to extract the roles from the JWT. The roles are checked against Required roles.=if admin = true then ["admin"] else roles
Required rolesStringNoA list of roles to test the JWT roles against. If provided, the webhook is triggered only if the JWT contains at least one of the required roles.["admin"]

Basic​

PropertyTypeRequiredDescriptionExample
UsernameStringYesThe username to authenticate the webhook.
PasswordStringYesThe password for the username.

API key​

PropertyTypeRequiredDescriptionExample
API keyStringYesThe API key that must be provided in the request to authenticate the webhook.
API key locatorStringYesA FEEL expression that extracts the API key from the request. It's evaluated in the connector runtime. The default is =request.headers.apikey.=split(request.headers.authorization, " ")[2] or request.headers.mycustomapikey

Activation​

PropertyTypeRequiredDescriptionExample
ConditionStringNoThe condition under which the connector triggers, evaluated against the incoming event. Leave empty to catch all events. Learn more about the activation condition.=(get value(request.body, "detail-type")="MyEvent" and request.body.detail.status="received")

For example, given an incoming Amazon EventBridge event with the following body:

{
"version": "0",
"id": "6d3d35b7-5bf2-43ec-9e55-5cfb27ad31b4",
"detail-type": "MyEvent",
"source": "custom.application",
"account": "123456789012",
"time": "2023-07-25T12:34:56Z",
"region": "us-west-2",
"resources": [],
"detail": {
"shipment": "123456789",
"status": "received"
}
}

the example condition triggers the connector only when the detail-type is MyEvent and the status is received.

PropertyTypeRequiredDescriptionExample
Message ID expressionStringNoAn expression to extract the unique identifier of a message from the incoming event. Not available for the start event. Learn more about the message ID expression.= request.body.detail.transactionId

Correlation​

Correlation applies to the message start event, intermediate catch event, boundary event, and receive task. It isn't available for the start event. Learn more about correlation.

PropertyTypeRequiredDescriptionExample
Correlation requiredDropdownYes (message start event only)Indicates whether correlation is required: Correlation not required or Correlation required. Needed for event-based subprocess message start events. The default is Correlation not required.
Correlation key (process)StringYes, for all elements except the start event; for the message start event, if correlation is requiredA FEEL expression that sets up the correlation key from process variables. Corresponds to the Correlation key property of a regular message catch event.=myCorrelationKey
Correlation key (payload)StringYes, for all elements except the start event; for the message start event, if correlation is requiredA FEEL expression that extracts the correlation key from the incoming event payload. It's evaluated in the connector runtime.=request.body.detail.shipment

For example, to correlate by the shipment property in the detail of the event above, set Correlation key (process) to =myCorrelationKey, where myCorrelationKey is a process variable, and Correlation key (payload) to =request.body.detail.shipment.

Output mapping​

PropertyTypeRequiredDescriptionExample
Result variableStringNoThe name of the variable that stores the result of the connector, for example myEventPayload.
Result expressionStringNoA FEEL expression that maps the inbound payload to process variables.

Learn more about response mapping.

For example, given an event payload with detail containing customer_id and order_total, the following Result expression extracts them as the process variables customerId and orderTotal:

= {
customerId: request.body.detail.customer_id,
orderTotal: request.body.detail.order_total
}

Activate the connector by deploying your diagram​

After you deploy the diagram, the webhook is active and ready to receive events. The webhook URL follows this pattern:

http(s)://<base URL>/webhooks/<webhook ID>

  • <base URL> is the URL of the connectors component deployment. In Camunda 8 SaaS, it typically contains your region Id and cluster Id, found in your client credentials under the API tab within your cluster.
  • <webhook ID> is the Webhook ID you configured.

If you change the connector configuration, redeploy the diagram for the changes to take effect.

When you select the element, a Webhooks tab appears in the properties panel. It shows the webhook URL for every cluster where you deployed the diagram.

note

The Webhooks tab is only supported in Web Modeler as part of the Camunda 8 SaaS offering. You can still use the connector in Desktop Modeler or with Camunda 8 Self-Managed, but webhook URLs are not displayed in Modeler.

Example of configuring Amazon EventBridge​

To send events from Amazon EventBridge to the webhook, follow these steps:

  1. Go to the AWS Management Console.
  2. Set the required permissions for EventBridge at EventBridge permissions.
  3. Open Amazon EventBridge.
  4. Select Integration > API Destination.
  5. Switch to the Connection tab.
  6. Create a new connection with the required authorization type (basic, API key, OAuth).
  7. Create a new API destination with the following information:
    • Select the previously created connection.
    • Choose the appropriate HTTP method.
    • Specify the API destination endpoint, which is the webhook URL generated after you deploy the BPMN diagram.
  8. Create a new event bus by following the Amazon EventBridge documentation.
  9. Create a rule that uses the API destination you created. See the Amazon EventBridge documentation for guidance.

Troubleshooting​

Learn more about handling errors and failing jobs in using connectors and about inbound connector behavior in using inbound connectors.

Further resources​