> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.duve.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.duve.com/_mcp/server.

The following operators are supported in webhook conditions. Use them in the `op` field.

| Operator | Meaning                          | Example |
|:--------:|:----------------------------------|:--------|
| `=`      | Equals                           | `reservationStatus = confirmed` |
| `!=`     | Not equals                       | `reservationStatus != canceled` |
| `>`      | Greater than                     | `nights > 2` |
| `<`      | Less than                        | `adults < 4` |
| `>=`     | Greater than or equal            | `nights >= 3` |
| `<=`     | Less than or equal               | `adults <= 2` |
| `≤x<`    | Range: inclusive lower, exclusive upper | `hourOfDay ≤x< 18` with `secondValue = 18` |
| `≤x≤`    | Range: inclusive lower and upper | `nights ≤x≤ 5` with `secondValue = 5` |
| `∃`      | Exists / present (non-empty)     | `guestEmail ∃` |
| `!∃`     | Not exists / empty               | `guestEmail !∃` |
| `in`     | In list                          | `country in ["US", "GB"]` |
| `!in`    | Not in list                      | `marketingSource !in ["facebook"]` |

Notes:
- Range operators require both `value` (lower bound) and `secondValue` (upper bound).
- For list operators (`in`, `!in`), set `value` to an array.
- Some condition types accept only specific operators (e.g., booleans typically use `=` / `!=`).