---
title: Workflows
description: Dynamic processing of customer journeys and events.
---

# Workflows

Dynamic processing of customer journeys and events.

## [POST /workflows/webhook/{path...}](/api-reference/workflows#tag/workflows/POST/workflows/webhook/{path...})

Trigger workflow via webhook

Trigger a registered workflow via webhook. The wildcard path is matched against registered workflow webhook paths.

If at least one workflow is registered with the matching path, the request body is forwarded to the workflow(s) and a 200 response is returned.

If no workflows match the provided path, a 400 Bad Request is returned.

Authentication: Public

### Path parameters

- `path...` (`string`, required) — The wildcard webhook path to match against registered workflows. Leading slashes in the workflow registration are ignored, so `support/intents/reward/topup` and `/support/intents/reward/topup` are equivalent. This is a greedy path parameter, meaning it captures the entire remainder of the URL path.

### Header parameters

- `X-Idempotency-Key` (`string`, optional, max length 256) — A unique key to ensure idempotency of requests. If a request with the same key has already been processed, the same result will be returned. The key must be unique for each distinct operation. Keys are expired after 24 hours, but we recommend using a new key for each request. Modified requests with the same idempotency keys are rejected with a `409 Conflict` status code.

### Request body (required)

The webhook payload. Can be any valid JSON object. The payload data is passed to the matching workflow(s) which can access and use any properties from it.

Type: `object`

- `propertyName` (`any`, optional) — Any additional properties, passed through as given.

### Responses

#### 200

Webhook successfully delivered to at least one registered workflow.

Type: `object`

- `workflowTasks` (`array of EmbeddedWorkflowTask`, required) — List of workflow tasks that were triggered by this webhook.
  - `workflowTaskId` (`string`, required, example f47ac10b-58cc-4372-a567-0e02b2c3d479) — The unique identifier for the workflow task.
  - `name` (`string`, required, example Process Customer Order) — The name of the workflow that was triggered.
  - `description` (`string`, optional, example Processes new customer orders and initiates fulfillment) — A description of what the workflow task does.
  - `createdAt` (`string`, required, date-time, example 2024-01-15T10:30:00Z) — When the workflow task was created.

#### 400

The request was malformed or invalid.

Type: [Error](/api-reference/models.md#models/Error)

#### 401

Authentication is required to access this resource.

Type: [Error](/api-reference/models.md#models/Error)

#### 403

Access to this resource is forbidden.

Type: [Error](/api-reference/models.md#models/Error)

#### 409

The request conflicts with the current state of the resource.

Type: [Error](/api-reference/models.md#models/Error)

#### 429

Too many requests have been sent in a given amount of time.

Type: [Error](/api-reference/models.md#models/Error)

#### 500

An unexpected error occurred on the server.

Type: [Error](/api-reference/models.md#models/Error)

### Example request

```bash
curl https://apiv2.example.com/api/v2/workflows/webhook/support/intents/reward/topup \
  --request POST \
  --header 'Content-Type: application/json' \
  --data '{}'
```
