# Utility nodes

### Delay

The **Delay** node pauses the flow for a set amount of time before continuing.

1. Add a Delay node.
2. Set the duration (seconds, minutes, hours, or days).
3. Connect it between two other nodes.

Use Delay for things like "wait 30 minutes after order shipped, then send a tracking reminder."

### Wait for Reply

The **Wait for Reply** node pauses the flow until the customer responds. It supports:

* **Response type validation** — text, number, email, phone, URL, image, address. The flow validates the customer's reply matches the expected type.
* **Retry attempts** — if the reply fails validation, the flow can ask again up to a configurable number of times.
* **Expiry** — if the customer doesn't reply within a set time, the flow takes the **Timeout** path.

Use Wait for Reply to collect data from the customer mid-flow (e.g. "What's your order number?")

### Search Conversation (Utility)

The **Search Conversation** utility node looks up an existing Ticket by:

* Conversation ID
* Email address
* Phone number

It branches on whether a match is found. Use it when an Incoming Webhook trigger receives data and you need to find the corresponding Conversation.

### Randomizer (Utility)

The **Randomizer** node splits flow traffic across multiple paths by percentage weight. Useful for A/B testing different messages or flows.

1. Add a Randomizer node.
2. Configure two or more paths, each with a weight (e.g. 50% / 50%, or 70% / 20% / 10%).
3. Connect each path to a downstream branch.

Each contact taking the flow is routed to one of the paths based on the weights.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.zaapi.com/flow-builder/utility-nodes.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
