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

# Reply with AI

> Add an AI Reply step to an automation so an assistant answers your contacts in your own words.

The **AI Reply** step lets an assistant read the conversation and write the reply, instead of
you scripting every message. You give it instructions, pick a provider and model, and choose
what it is allowed to do. It works on every channel your automations run on.

Two things to know before you start:

* **You need a connected AI provider.** The step is useless on its own. Connect **OpenAI**,
  **Claude**, **Gemini** or **DeepSeek** under **Integrations** first. Until you do, the step's
  settings show *No AI provider is connected. Connect OpenAI, Claude, Gemini or DeepSeek under
  Integrations to configure this node.* In the [template library](/automation/templates), the four
  AI bot templates always carry a **Requires AI** chip.
* **The AI Agent is a plan feature.** If your plan doesn't include it, you can still see the
  step and the provider tiles, but you can't add, publish or connect anything. See
  [What a plan without AI looks like](#what-a-plan-without-ai-looks-like) below.

## Add the step

<Steps>
  <Step title="Open a flow">
    Open an automation in the [flow builder](/automation/flow-builder), or start from one of the
    four ready-made AI bots in the [template library](/automation/templates): **AI Customer
    Service bot**, **AI Lead Qualification bot**, **AI Appointment Booking bot** or **AI Class
    Booking bot**. Each is a three-step flow — trigger, AI Reply, end — with a prompt and tools
    already filled in.
  </Step>

  <Step title="Add AI Reply">
    Add the **AI Reply** step from the palette and connect it to the step before it. It has one
    output, so whatever comes next follows on from the AI's turn.
  </Step>

  <Step title="Write the prompt">
    Open the step and use the **Prompt** tab. A new step arrives with a full customer-service
    prompt already written, not a blank box — edit it rather than starting over.
  </Step>

  <Step title="Pick a provider and model">
    On the **Configuration** tab, choose the **Provider** and **Model**.
  </Step>

  <Step title="Try it, then publish">
    Use the **Playground** tab to send a test message without messaging anyone, then publish the
    automation.
  </Step>
</Steps>

## The prompt

The **Prompt** tab is where you tell the assistant who it is and what it should do.

**System prompt / instructions** carries the whole personality. The prompt a new step starts
with is a working customer-service assistant covering its role, greeting, what it does, its
identity, staying grounded in what it knows, its tools, its style, and what to do when the
question is off-topic. Edit the parts that are wrong for your business — usually the greeting,
what you sell, and the off-topic rule — and leave the rest.

You can use tokens in the prompt. `{{business_name}}` becomes your workspace name, and
`{{first_name}}` becomes the contact's first name, so the same prompt reads correctly for
everyone.

<Note>
  An AI Reply step never runs without a prompt. If you clear the box, the built-in
  customer-service prompt is used instead.
</Note>

The rest of the tab handles the edges of the turn:

* **Fallback message (on error / empty reply)** — what gets sent if the provider errors or
  returns nothing. The default is *Sorry, I couldn't process that just now — a team member will
  follow up shortly.*
* **Follow-up messages** — extra messages sent after the AI reply, every time. Good for a fixed
  closing line; bad for anything the AI might have already said.
* **Typing delay before reply (seconds)** — a pause before the reply lands, so it doesn't arrive
  instantly.

## Provider and model

The **Configuration** tab decides which service answers.

**Provider** lists only the AI integrations you have actually connected. **Model** is a free-text
box with suggestions — pick one from the list, or type any model id your provider supports.

| Provider               | Document search | Web search | Reasoning effort |
| ---------------------- | --------------- | ---------- | ---------------- |
| **OpenAI**             | Yes             | Yes        | Yes              |
| **Claude (Anthropic)** | No              | Yes        | No               |
| **Google Gemini**      | Yes             | Yes        | No               |
| **DeepSeek**           | No              | No         | No               |

All four can call [tools and custom functions](/automation/ai-agent-tools). Those are the only
four providers the AI Reply step can use.

**Reasoning effort** only appears when you pick OpenAI — no other provider reads it. DeepSeek
offers a `deepseek-reasoner` model, but the effort setting still doesn't apply to it.

Two more settings:

* **Max tokens** — roughly how long a reply can get. New steps start at 500.
* **Conversation history (messages)** — how much of the chat the assistant sees. New steps start
  at 12, and the history is capped at 50 messages however high you set it. Only real messages
  count; internal notes are never shown to the AI.

<Tip>
  If the assistant answers the current message well but forgets what was said three messages ago,
  raise **Conversation history (messages)**. If replies get cut off mid-sentence, raise **Max
  tokens**.
</Tip>

<Note>
  If the provider you picked is later disconnected, the step doesn't break — it falls back to the
  first AI provider you still have connected.
</Note>

## Tools and knowledge

The **Built-in Tools** tab is where you decide what the assistant can *do* — look up a contact,
add tags, hand over to a human, check availability and book an appointment — and the **Functions**
tab lets it call your own URLs. Both are covered in
[AI tools and functions](/automation/ai-agent-tools).

Two settings on that tab are worth knowing about here:

* **Document search (File Search)** lets the assistant answer from your own documents. It only
  appears for OpenAI and Gemini; for Claude and DeepSeek you'll see *Document search is not
  available for this provider.* It's switched on by default for new steps, but it does nothing
  until you create a store and tick it — set that up under
  [Knowledge base](/integrations/knowledge-base).
* **Web search** lets the model search the web to ground its answer. Not available on DeepSeek.

## Test before you publish

The **Playground** tab runs your configuration against a test message and shows the **Reply**
plus any **Tool calls** it made. Nothing is sent to a contact and nothing is saved to the
[Inbox](/inbox/overview) — tool calls run against demo data, so a test that "adds a tag" doesn't
touch a real contact.

## When it keeps chatting, and when it doesn't

The step works out for itself whether the conversation should continue:

* If the AI Reply step leads to an **End** step, a note, or nothing at all, it stays in the
  conversation and answers the contact's next message too. This is what you want for a support
  assistant.
* If it leads to another step, it replies once and the flow moves on.

If the assistant hands the conversation to a human during its turn, it stops immediately rather
than talking over your team.

## What a plan without AI looks like

If your plan doesn't include the AI Agent, nothing disappears — it stops short instead. Here is
exactly what you get:

<Accordion title="On the Integrations page">
  The OpenAI, Claude, Gemini and DeepSeek tiles are still listed, but they don't open. Each shows
  a **Plan locked** badge instead of a status, and the button reads **Upgrade** instead of
  **Connect** or **Manage**. Selecting one shows: *The AI Agent isn't included in your plan.
  Upgrade to connect OpenAI, Claude, Gemini or DeepSeek.*
</Accordion>

<Accordion title="In the flow builder">
  **AI Reply** is still in the palette so you can see it exists, but adding it doesn't place the
  step on the canvas. You get: *The AI step isn't included in your plan. Upgrade to use the AI
  Agent in your automations.*
</Accordion>

<Accordion title="Installing a template or publishing a flow">
  Installing one of the AI bot templates, or publishing any flow that contains an AI Reply step,
  is refused with: *This automation uses an AI step, which your plan does not include. Upgrade
  your plan to use it, or remove the AI step.*
</Accordion>

<Accordion title="If a live flow already has an AI step">
  If a workspace is downgraded while an AI flow is running, the flow keeps working — the AI step
  is skipped rather than failing. A system note appears in the conversation reading *AI step
  skipped — your plan does not include the AI Agent.* and the flow carries on to the next step.
  Your contacts won't get an error, but they won't get an AI reply either.
</Accordion>

<Accordion title="In the Inbox">
  AI suggested replies in the Inbox are a separate feature from the AI Reply step, but the same
  plan feature switches them off. They simply don't appear.
</Accordion>

To check what your plan covers, see [Plans and billing](/billing/plans).

## When the AI doesn't reply

The flow never gets stuck on an AI step. If something is wrong, it moves on to the next step rather
than failing.

<Accordion title="A system note says the AI step was skipped">
  Three causes. *AI step skipped — no AI provider is connected* means you never finished connecting
  OpenAI, Claude, Gemini or DeepSeek under Integrations. *AI step skipped — your plan does not
  include the AI Agent* is the plan gate above. *AI step skipped — the provider returned no reply*
  means the provider errored or returned nothing **and** your **Fallback message** was empty — so
  the contact got nothing, and this note was left instead.
</Accordion>

<Accordion title="The contact got the fallback message instead of a real answer">
  The provider errored or returned an empty reply, so your **Fallback message** was sent. This is
  usually a bad model id, a provider outage, or an expired API key — check the provider under
  Integrations and try the same message in the **Playground**. If you have cleared the **Fallback
  message**, nothing is sent to the contact at all — you get the skip note above instead.
</Accordion>

<Accordion title="The AI answered a couple of times, then stopped">
  There are two limits, and a step is subject to one or the other — never both. Which one applies
  depends on where the step sits, exactly as described under **When it keeps chatting, and when it
  doesn't** above.

  A **mid-flow** step — one whose output leads to another step — can fire three times in a run.
  That's a guard against a loop back into the step running up your provider bill. Past three, the
  step is skipped and a system note reads *AI step skipped — per-conversation AI limit reached.* If
  you see that note on a normal flow, check for a loop back into the AI step.

  A **conversational** step — one whose output leads to an **End** step, a note, or nothing —
  answers up to 40 turns in a run instead, and never gets the three-call limit. At 40 it quietly
  moves past the step: no note, no error, the contact just stops getting replies.
</Accordion>

<Accordion title="The AI ignores your documents">
  **Document search (File Search)** does nothing unless you have created a store and ticked it in
  the step. If you see *No vector stores yet — create one on the provider's Integration page
  (Vector stores tab).*, that's the cause. Note that Claude and DeepSeek can't do document search
  at all.
</Accordion>

For anything else, see [Automation not triggering](/troubleshooting/automation-not-triggering)
and [Common mistakes](/automation/common-mistakes).

<Columns cols={2}>
  <Card title="AI tools and functions" icon="screwdriver-wrench" href="/automation/ai-agent-tools">
    What the assistant is allowed to do, and how to add your own.
  </Card>

  <Card title="Knowledge base" icon="book" href="/integrations/knowledge-base">
    Upload PDFs and web pages the AI can answer from.
  </Card>

  <Card title="Connect OpenAI" icon="plug" href="/integrations/openai">
    Add an API key so the AI Reply step can run.
  </Card>

  <Card title="Automation templates" icon="wand-magic-sparkles" href="/automation/templates">
    Start from a ready-made AI bot instead of a blank canvas.
  </Card>
</Columns>
