---
title: "AI steps in workflows"
description: "Let a workflow ask AI to choose from your list of answers, write an internal note and a draft reply, and add tags, with a fallback when AI cannot answer."
url: "https://support.outpostplatform.com/service-desk/workflow-ai-steps/"
product: "depot"
type: "how-to"
status: "draft"
ai_summary: "The Ask AI workflow step. Needs AI set up, Proactive AI features on, and AI on for the client. Picks one of 2 to 12 answers; may write an internal note, an AI draft reply (Use as reply), and allow-listed tags. Never emails clients; AI-answer branches cannot close, email, or create tickets. Failures take the fallback. Counts against the AI budget; prompts and replies are not kept; audited."
availability:
  plans: ["enterprise", "msp"]
  permission: "automation:manage"
  preview: false
source: "https://gitlab.com/outpostplatform/docs/-/edit/main/src/content/docs/service-desk/workflow-ai-steps.md"
license: "CC BY 4.0"
---

# AI steps in workflows

An **Ask AI** step lets a [workflow](/service-desk/workflows/) read a ticket
and choose one answer from a list you write, such as "Needs a technician now"
or "Routine". Later **If / Else** steps branch on the answer. The step can
also leave an internal note with its reasoning, write a draft reply for a
technician to review, and add tags from a list you allow. This page covers
what an AI step needs, what it can and cannot do, and what happens to the
ticket data it reads.

## Before you begin

An AI step runs only when all three of these are true. Otherwise it takes its
fallback.

- **AI is set up.** Pioneer AI has a working source on **Settings** > **AI**.
  See [Set up Pioneer AI](/pioneer-ai/set-up/).
- **Proactive AI features is on.** It is a switch on the **Pioneer AI** card
  on **Settings** > **AI**, off until an owner turns it on. It needs
  `ai:manage`.
- **AI is on for the client.** On the MSP plan, the client's Pioneer AI
  setting must leave AI on for that client. See
  [Choose which clients get Pioneer AI](/pioneer-ai/set-up/#choose-which-clients-get-pioneer-ai).

When either of the first two is off, the builder shows **Ask AI** steps as
unavailable with the reason and an **Open AI settings** link. You can still
save and edit a workflow that has an AI step: the step takes its fallback
until AI is available. A workflow with an AI step also shows **AI is not
available, so its steps take their fallback.** as a health warning.

## Add an AI step

1. In the workflow's **Steps**, select **Add step** > **Ask AI**.
2. In **What to ask**, write the question. Use **Insert placeholder** to
   include ticket details, such as `{{ticket.subject}}` or
   `{{ticket.first_message}}`. The ticket details are sent only through the
   placeholders you insert.
3. Under **Answers it can choose from**, enter 2 to 12 answers. Each has a
   label, such as `Waiting on us`, and a short value, such as `waiting`.
4. Under **What it may write**, choose any of:
   - **An internal note with its reasoning**;
   - **A draft reply a technician can review and send**;
   - **Tags it may add**: a comma-separated list of up to 20 tags. It can
     add only tags from this list.
5. Under **If AI is off, fails or answers off the list**, add the fallback
   steps, such as **Notify people** to tell the assignee to look at the
   ticket by hand.
6. To act on the answer, add an **If / Else** step after it, choose **The AI's
   answer**, choose this AI step, and select the answers that take **Then**.

A workflow holds up to 2 AI steps. An AI step cannot sit inside another AI
step's fallback.

## What an AI step can do

| Output | Where it appears |
| --- | --- |
| An answer from your list | Nowhere on the ticket. **If / Else** steps branch on it, and the **Runs** tab shows it. |
| An internal note | An internal note signed with the workflow's name and **(AI)**. Clients never see it. |
| A draft reply | An internal note with an **AI draft** chip and a **Use as reply** button. Selecting **Use as reply** copies the text into the reply box for the technician to edit and send. The note stays as it is. |
| Tags | Added to the ticket, only from your allowed list. |

Notes and drafts are capped at 4,000 characters.

## What an AI step can never do

An AI step never sends anything to a client. A draft reply reaches the client
only when a technician sends it.

The **Then** and **Else** steps of a branch on an AI answer, at any depth,
cannot:

- close or solve the ticket;
- email anyone with an **Email an address** step;
- notify the requester, people copied on the ticket, or the client's primary
  contact;
- create a ticket.

The builder does not offer **Create a ticket** or **Email an address** there,
and a workflow that contains any of these is refused when you save it. Branches on an AI answer can still route,
tag, add notes, and notify your team. A status that counts as solved or
closed in some client is also checked when the step runs, and skipped as
**An AI branch tried to close the ticket**.

The fallback steps are not restricted, because they run when AI did not
decide anything.

## The fallback

The fallback steps run instead of the AI step's outputs when AI does not give
a usable answer. When the step falls back, **If / Else** steps that branch on
its answer take neither branch. The **Runs** tab shows **Took the AI
fallback** with one of these reasons:

| Reason | What happened |
| --- | --- |
| **AI is off** | No AI source is set up or usable. |
| **Proactive AI is off** | **Proactive AI features** is off. |
| **AI is off for this client** | The client's Pioneer AI setting is off. |
| **AI timed out** | The model did not answer within 45 seconds. |
| **AI answered off the list** | The model chose an answer that is not on your list. |
| **AI answer could not be read** | The model's reply was not in the expected format. |
| **AI budget used up** | The month's AI budget is spent. |
| **AI request failed** | Any other error. |

When an AI step fails 5 times in an hour in one client with a timeout, an
off-list answer, an unreadable answer, or another error, Outpost pauses the
workflow and notifies everyone with `automation:manage`. AI being off or the
budget being used up does not pause it. See
[Resume a paused workflow](/service-desk/build-a-workflow/#resume-a-paused-workflow).

## When it runs

A workflow with an AI step does not run inside the ticket change. The ticket
is saved first, and the workflow runs a few moments later, so nobody waits on
the model.

A test never calls AI. It shows that both outcomes are possible.

## Cost and usage

Each AI step is one call to the AI source on **Settings** > **AI**, at its
standard tier. Calls count against the same monthly budget as Pioneer AI.
When the budget is used up, AI steps take their fallback with **AI budget used
up**.

To see what AI steps used, go to **Settings** > **AI** > **Usage**:

- Grouped by **Feature**, all AI steps are one row, **Workflow AI steps**.
- Grouped by **Person**, each workflow is its own row, **Workflow:** followed
  by its name, or **Workflow (deleted)** for a workflow that no longer exists.

See [Pioneer AI usage](/pioneer-ai/usage/).

The **Runs** tab shows each run's answer or fallback reason.

## Data and privacy

- **What is sent.** The workflow's name, your answers list, your question,
  and the ticket details your placeholders fill in.
  `{{ticket.first_message}}` sends the ticket's first message, up to 4,000
  characters. The data goes to the AI source you set up, the same as for
  Pioneer AI. See [Pioneer AI data and privacy](/pioneer-ai/data-and-privacy/).
- **Ticket text is treated as untrusted.** It is sent marked as data, and the
  model is told never to follow instructions inside it. Its answer is checked
  strictly against your list and your allowed tags.
- **What is kept.** Outpost does not store the prompt it sent or the model's
  reply. It keeps what the step writes to the ticket (the note, the draft, and
  the tags) and, in the workflow's run log, the answer, the model, and the
  token counts.
- **Audit.** Each AI step adds an entry to the audit log with the workflow,
  the step, the answer or fallback reason, the model, and the token counts. It
  holds no ticket text. See [Audit log](/depot/audit-log/).

## Verify

1. Turn the workflow on and trigger it on a test ticket.
2. Open the ticket. An internal note signed with the workflow's name and
   **(AI)** appears when the step writes a note.
3. Open the workflow's **Runs** tab. The run shows **AI answered** followed
   by the answer's value, or **AI fell back** followed by the reason.

## Next steps

- [Build a workflow](/service-desk/build-a-workflow/)
- [Workflow reference](/service-desk/workflow-reference/)
- [Set up Pioneer AI](/pioneer-ai/set-up/)
