# How to Use Delay in ZazzyAgent Flows

Automation can sometimes feel unnatural when several messages arrive immediately one after another.

For example:

> Hi!

> Welcome to our business.

> What would you like to do?

> Choose an option.

All four messages arriving instantly can feel like a machine dumping text into the customer's chat.

A **Delay** can create a more natural sequence.

## What is Delay?

A Delay tells ZazzyAgent to wait before continuing to the next step in a flow.

For example:

```text
Message
  ↓
Wait 3 seconds
  ↓
Next Message
```

The current WhatsApp flow troubleshooting documentation also identifies Delay as a flow element whose placement and timing can affect when subsequent messages are sent.

## Why use Delay?

Delay can be useful for:

*   Creating natural pacing
    
*   Separating multiple messages
    
*   Waiting before a follow-up
    
*   Preventing messages from appearing all at once
    
*   Creating short pauses before an action
    

## Example: Welcome sequence

Instead of:

```text
Message 1
Message 2
Message 3
```

use:

```text
Message 1
   ↓
Delay
   ↓
Message 2
   ↓
Delay
   ↓
Message 3
```

The conversation feels more like a person or well-designed assistant communicating step by step.

## How to add a Delay

Open the relevant flow in Flow Builder.

Add a Delay element between the two steps where you want the pause.

Configure the amount of time.

Then connect the Delay to the next step.

## Choose sensible timing

The correct delay depends on what you're trying to accomplish.

For example:

**1–3 seconds**

can make a short message sequence feel less abrupt.

A longer delay may be appropriate when the automation is intentionally waiting for something.

Don't add delays randomly.

## Don't fake human typing excessively

A small pause can improve readability.

But adding:

> 15 seconds

> 20 seconds

> 30 seconds

between ordinary messages simply to pretend a human is typing can frustrate customers.

The purpose is better pacing, not deception.

## Use Delay between related messages

Example:

> Thanks for your enquiry.

**Delay**

> Let me show you our available options.

**Delay**

> Which one are you interested in?

This is easier to read than three simultaneous messages.

## Delay before a follow-up

Suppose a customer starts a booking process.

You may want:

> Please complete the form.

Then later:

> Need help completing it?

A delay can create that pause where appropriate.

## Delay before launching a Flow

In some workflows, you may want a short pause before another structured experience begins.

For example:

```text
"Great! Let's get your details."
       ↓
Delay
       ↓
WhatsApp Flow
```

This can make the transition feel cleaner.

## Delay and external APIs

Be careful when an API is involved.

A delay does not automatically mean:

> Wait until the API finishes.

An API operation and a Delay are different things.

If your workflow depends on an API response, make sure your API step and response handling are configured correctly rather than assuming a fixed delay will always be enough.

## Delay and Webhooks

The same principle applies to webhook workflows.

Don't use:

> Wait 5 seconds.

as a substitute for knowing whether an external process actually completed.

Use delays for timing.

Use API/webhook logic for system events.

## Delay and broadcasts

Be careful with timing when sending messages to many customers.

Large automation systems can have additional sending, rate and platform constraints.

A delay inside a customer journey should not be treated as a universal solution to messaging limits.

## Where should the Delay go?

Consider:

```text
Correct:
Message
  ↓
Delay
  ↓
Next Message
```

The Delay must be in the actual branch being executed.

If you place it on another branch, it won't affect the path you're testing.

This is a common source of confusion when a flow appears to ignore a delay.

## Example: Product presentation

```text
Welcome
   ↓
Delay 2 sec
   ↓
Product Introduction
   ↓
Delay 2 sec
   ↓
Product Options
```

## Example: Support flow

```text
Customer chooses Support
       ↓
"Sure, I'll help."
       ↓
Delay
       ↓
"Please choose your issue:"
       ↓
Buttons
```

The short pause separates acknowledgement from the next instruction.

## Example: Lead qualification

```text
Customer submits details
       ↓
Delay
       ↓
"Thanks, we've received your information."
       ↓
Next step
```

## When not to use Delay

Don't add delays:

*   Everywhere
    
*   Between every single message
    
*   To hide slow integrations
    
*   To compensate for broken logic
    
*   To imitate human behaviour excessively
    

If your customer needs information immediately, give it immediately.

## Delay troubleshooting

### Delay has no effect

Check whether the Delay is actually connected to the path being tested.

### Message appears too quickly

Check the configured duration.

### Flow seems stuck

Make sure the Delay is not configured for an unexpectedly long period and that the next node is connected.

### Only one branch has a delay

Remember that each branch has its own path.

A delay in one branch won't affect another.

## Good automation pacing

A useful rule is:

> **Use delays where they improve comprehension, not simply because you can.**

The customer should feel that the conversation has a natural rhythm without being made to wait unnecessarily.
