# set_automation_hook

Set or update the trigger and conditions for an automation workflow. Calling this on a workflow that already has a hook
updates it in place; calling it on one with no hook creates one.

<!-- INPUT_BLOCK_START -->

## Input

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `workspaceId` | `string` | Yes | The ID of the workspace |
| `workflowId` | `string` | Yes | The ID of the automation workflow |
| `trigger` | `TriggerConfig` | Yes | Trigger configuration with type and optional timing |
| `conditions` | `ConditionsConfig` | No | Conditions that must be met for the hook to fire - [ConditionsConfig](#conditionsconfig) |

### ConditionsConfig

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `if` | `filterCondition[]` | No | List of conditions to evaluate - [filterCondition](#filtercondition) |
| `booleanOperator` | `BooleanOperator` | No | How to combine multiple conditions - [BooleanOperator](#booleanoperator) |

### filterCondition

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `key` | `Key` | Yes | Condition field to check - [Key](#key) |
| `operator` | `Operator` | Yes | Comparison operator - [Operator](#operator) |
| `value` | `string[]` | No | Values to compare against |

### BooleanOperator

| Value | Description |
| --- | --- |
| `and` | All conditions in `if` must match (logical AND). |
| `or` | At least one condition in `if` must match (logical OR). |

### Key

| Value | Description |
| --- | --- |
| `lead-status-id` | Lead's current status id. |
| `arrival-time` | Planned arrival time-of-day. |
| `booking-channel` | Source channel (e.g. `direct`, `airbnb`, `booking_com`). |
| `booking-status` | Booking status (e.g. `CONFIRMED`, `TENTATIVE`, `CANCELED`). |
| `booking-vetting-status` | Vetting status (e.g. `PASSED`, `PENDING`, `FAILED`). |
| `check-in` | Booking check-in date. |
| `check-out` | Booking check-out date. |
| `date-confirmed` | Datetime the booking was confirmed. |
| `date-created` | Datetime the booking was created. |
| `departure-time` | Planned departure time-of-day. |
| `guest-email` | Lead guest's primary email. |
| `guest-name` | Lead guest's name. |
| `guest-total-price` | Total (gross) booking value. |
| `guests-count` | Number of guests. |
| `is-returning-guest` | Whether the lead guest is a returning guest. |
| `listing-id` | Listing id. |
| `nights-count` | Number of nights. |
| `payment-status` | Payment status (e.g. `SUCCESS`, `DUE`, `OVERDUE`). |
| `postcode` | Postcode of the allocated unit's address. |
| `property-code` | Allocated unit's property code. |

### Operator

| Value | Description |
| --- | --- |
| `is` | Equals one of `value`. |
| `is_not` | Equals none of `value`. Not available for date, number or time-of-day keys. |
| `is_today` | Date is today (no `value`). Date keys only. |
| `is_between` | Inclusive range between the FIRST and LAST entries of `value` — pass exactly two. Date, number and time-of-day keys only. Being inclusive, `is_between: ['2026-07-18', '2026-08-21']` is the equivalent of a strict `> 2026-07-17` AND `< 2026-08-22`; mind the shifted bounds. |
| `is_next_7_days` | Date is within the next 7 days (no `value`). Date keys only. |
| `is_last_7_days` | Date is within the last 7 days (no `value`). Date keys only. |
| `contains` | String contains substring (case-insensitive). String keys only. |
| `does_not_contain` | String does not contain substring (case-insensitive). String keys only. |
| `is_greater_than` | Strictly greater than `value`. Date, number and time-of-day keys only. |
| `is_less_than` | Strictly less than `value`. Date, number and time-of-day keys only. |

<!-- INPUT_BLOCK_END -->

<!-- OUTPUT_BLOCK_START -->

## Output

| Field | Type | Description |
| --- | --- | --- |
| `content` | `ContentItem[]` | Array of content items returned by the tool - [ContentItem](#contentitem) |
| `isError` | `boolean` | Whether the tool execution resulted in an error |

### ContentItem

| Field | Type | Description |
| --- | --- | --- |
| `type` | `'text'` | Content type (currently only 'text' is supported) |
| `text` | `string` | The text content to display |

<!-- OUTPUT_BLOCK_END -->
