> ## Documentation Index
> Fetch the complete documentation index at: https://docs.voucherify.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Workflow options and limits

> Review workflow triggers, webhook callouts, statuses, behavior, and limits

Learn about the configuration and behavior of Workflows.

<Info>
  Read [Build workflows](/integrations/build-workflows) to create and publish a workflow.
</Info>

## Triggers

A trigger defines when a workflow starts.

| Trigger | What it matches | What you configure |
| - | - | - |
| **Loyalty transaction** | Point movements, orders paid with points, tier changes, reward purchases, and benefit fulfillment. | Group, event type, and transaction status. |
| **Loyalty activity** | Lifecycle events for programs, members, cards, earning rules, rewards, benefits, and tier structures. | Group and event type. |

<Note>
  Transaction statuses such as `APPROVED`, `PENDING`, and `REJECTED` are trigger filters. They are not separate event types. They determine which transactions start a workflow.
</Note>

You can use more than one loyalty trigger in the same workflow. Triggers can share a group. A broad trigger can sit next to a narrower one.

## Webhook callouts

A webhook callout sends a signed HTTP `POST` request.

The target URL must use `http` or `https`. A webhook callout can include up to 10 custom headers for authentication or routing data.

Voucherify generates the webhook payload automatically. Read [Workflows webhooks](/api-reference/workflows-webhooks) for the payload structure.

To verify signatures, generate a secret in **Project settings** > **Webhooks** and validate the `x-voucherify-signature` header. Read [Webhook authentication](/api-reference/introduction-to-webhooks#authentication) for details.

## Identifiers

Each trigger and webhook callout has an ID. You see it on the canvas and in the settings panel.

The prefix can't be changed.

| Block | Prefix |
| - | - |
| Trigger | `exwftrg_` |
| Webhook callout | `exwfnod_` |

You can edit the suffix. Use 1 to 40 characters: lowercase letters, digits, and underscores. The ID must be unique in that workflow. A new block gets the next number.

## Save, publish, and activate

Saving, publishing, and activation are separate operations.

| Operation | What it does | When to use it |
| - | - | - |
| **Save** | Stores the working copy, including an unfinished draft. Nothing goes live. | When the workflow has a name and every ID is unique and valid. |
| **Publish** | Asks you to confirm, then creates a published version from the saved canvas. A draft or an active workflow starts using that version immediately. An inactive workflow does not start runs until you activate it. | When the canvas is complete and saved. |
| **Active** or **Inactive** | Asks you to confirm, then turns the published workflow on or off. The canvas does not change. | After the first publication. |

## Statuses

A workflow has three statuses: **Draft**, **Active**, and **Inactive**.

| Status | Meaning |
| - | - |
| **Draft** | The workflow has never been published. It does not react to events. |
| **Active** | The workflow is published. Matching events start new runs. |
| **Inactive** | The workflow is published but paused. Matching events do not start new runs. |

## Deactivation and version behavior

The **Versions** list in the designer shows **Current draft** and the latest 100 published versions. Select a published version to view it. The canvas is read-only. **Restore as draft** copies that version into the working copy. Save and publish the copy to make it live.

Voucherify keeps the newest 100 published versions. Older versions are dropped.

Events that occur while a workflow is inactive do not start a run.

Deactivation does not cancel a run that has already started. The run completes every pending action in the published canvas it started with.

Existing runs keep the version they started with when you publish a new version. New runs use the latest published version.

## Limits

Trigger and action limits are separate. A workflow can contain five triggers and five actions.

| Limit | Value |
| - | - |
| Workflows per project | 5 |
| Triggers per workflow | 5 |
| Actions per workflow | 5 |
| Connections per workflow | 10 |
| Custom headers per webhook callout | 10 |
| Published versions kept per workflow | 100 |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.