Customizing AI Auto-Reply Flows

The AI auto-reply flow template works out of the box, but you can customize how the AI decides to respond, escalate, or skip. This guide walks through the key things you can change and how each piece fits together.

Overview: How the flow works

Before diving into customization, here's the big picture. The auto-reply template is a multi-step flow with branching logic:

  1. A ticket comes in and triggers the flow
  2. The AI agent runs — it reads the ticket, researches the answer, and returns a structured decision
  3. The flow branches based on the agent's decision — replying to the customer, escalating to your team, or skipping

Auto-reply flow structure showing trigger, AI agent, and branching paths for reply, escalate, and skip

The AI agent returns structured output with three fields:

  • action — "reply", "escalate", or "skip"
  • message — the response text (for replies) or escalation context (for escalations)
  • reason — why the agent chose that action (useful for reviewing and tuning)

The flow steps after the agent check the action field to decide which path to run. You can customize every part of this: the agent's instructions, the output schema, and the actions on each branch.

Selecting your agent

The first thing to configure is which agent handles the tickets. To change this:

  1. Open your auto-reply flow
  2. Click the Run AI Agent step to expand it
  3. Use the Agent dropdown at the top to select your agent

The agent you select will use all its configured tools, rules, mandate, and documentation access when analyzing tickets. If you haven't created a custom agent yet, you can use the built-in Support Sidekick to get started.

Run AI Agent action showing the agent dropdown and instructions field

To create or configure agents, go to AI > Agents in the sidebar. See Configuring your agents for the full guide.

Editing the instructions

The Instructions field (directly below the agent dropdown) tells the AI agent when to reply, escalate, or skip. This is the main thing you'll customize — it controls the agent's decision-making for this specific flow.

You have two options for writing instructions:

  • Write them manually — Type your instructions directly into the text field
  • Use the Generate button — Click Generate next to the Instructions label, describe what you want in plain English (e.g. "Auto-reply to common support questions, escalate billing issues"), and the AI will write detailed instructions for you. Bonus: generating instructions also automatically generates a matching response schema, so both are set up in one step.

Note: The instructions here are in addition to the agent's mandate. The mandate defines the agent's general personality and knowledge, while the instructions here define how it should behave specifically in this flow.

The response schema

The response schema defines the structured data the agent returns — like the action, message, and reason fields in the default template. The flow uses these fields in conditions and actions to determine what happens next.

The template comes with a schema pre-configured, so you typically don't need to create one from scratch. But if you want to modify it or build a new one, there are three ways:

  • Auto-generated with instructions — When you use the Generate button to create instructions, a matching schema is automatically generated at the same time. This is the easiest path.
  • Generate from existing instructions — If you wrote instructions manually, click the Generate button (magic wand icon) next to the Schema label. It reads your instructions and creates a schema that captures the right output fields.
  • Build manually — Click Edit schema to open the schema builder, where you can add, remove, and configure individual fields with types like string, number, enum, etc.

Tip: Start by generating the schema automatically, then use Edit schema to fine-tune individual fields if needed. This is much faster than building from scratch.

How escalation works

When the AI agent decides a ticket needs human attention, it escalates — meaning the flow automatically takes action to get the right person involved. By default, an escalation:

  • Replies to the customer with a message acknowledging their issue and letting them know a team member will follow up
  • Adds an internal note explaining why the AI escalated and what it found during research, so your team has context before they even open the ticket
  • Tags the ticket (e.g., "escalated") for easy filtering
  • Unassigns the ticket from the AI agent so it appears in your team's queue

The power is in the AI's judgment — it reads the customer's message, researches their account, checks your documentation, and decides whether it can help or whether a human would do better. You control that judgment by editing the instructions.

To manage escalated tickets, create a saved view filtered to the "escalated" tag. That becomes your team's escalation inbox. If you set up tiered escalation (see the advanced section), you can create separate saved views for each tier to give different teams their own queues.

Controlling escalation aggressiveness

The most common change is adjusting how quickly the AI escalates to a human. Here are three approaches you can copy and adapt:

Conservative (escalate quickly)

Use this if you'd rather have humans handle anything nuanced — for example, during onboarding or for a product with complex edge cases.

Conservative escalation decision tree: most tickets go to humans, only simple documented answers auto-reply

Be conservative with auto-replies. Only respond directly if the answer 
is clearly documented and straightforward. 

Escalate in any of these situations:
- The customer mentions a bug, error, or something not working
- The question involves billing, pricing, or account changes
- The question requires more than a simple factual answer
- You are not 100% confident in your response
- The customer seems frustrated or has sent multiple messages

When in doubt, escalate. It is always better to have a human review 
than to send an incorrect or unhelpful response.

Balanced (default)

The default template uses a reply-first approach. It researches thoroughly, then tries to give a helpful answer before considering escalation. It only escalates when the issue genuinely requires human action — not just because the AI is uncertain.

Research the customer's question using available tools, then respond.

- reply — You have a helpful response. This is the preferred action — 
  always try to reply first. A partial but useful answer is better 
  than escalating.
- skip — Cannot provide any helpful response due to completely missing 
  information. Do not reply.
- escalate — The issue requires human action you cannot perform: 
  billing or account changes, investigating a confirmed bug, granting 
  access, or feature requests needing product review.

Prefer replying with a best-effort answer over escalating. Do not 
escalate simply because you are uncertain — provide your best answer 
instead. Only escalate when the issue truly requires human action.

Start here and adjust over time. If customers are getting unhelpful auto-replies, make the instructions more conservative. If too many tickets are being escalated unnecessarily, lean toward the aggressive approach.

Aggressive (try harder before escalating)

Use this if you have comprehensive documentation and want the AI to resolve more tickets on its own.

Aggressive auto-reply decision tree: AI researches thoroughly and only escalates when truly stuck

Be thorough in your research before escalating. Your goal is to resolve 
as many tickets as possible without human intervention.

Before choosing to escalate:
1. Search the documentation thoroughly — try multiple search queries
2. Check the customer's account data for relevant context
3. Look for similar resolved tickets that might have solutions
4. If the codebase is connected, search for relevant implementation details

Only escalate if:
- The issue requires making changes to the customer's account
- You've exhausted your research and genuinely cannot find an answer
- The customer explicitly asks to speak with a human
- The issue is a confirmed bug that needs engineering attention

For ambiguous questions, ask one round of clarifying questions before 
escalating.

Tips

Start with the default, then adjust. Run the template as-is for a week. Review which tickets were escalated vs. auto-replied, then tune the instructions.

Review escalation reasons. The AI includes a reason field explaining why it escalated. If it's escalating tickets it could have handled, update the instructions to cover those cases.

Set up saved views. Create a saved view filtered to the "escalated" tag so your team has a dedicated inbox for tickets the AI couldn't handle.

Test before going live. Use the agent debugger to run sample tickets through your flow and check the AI is making the right decisions.

Advanced: Escalation tiers and custom routing

The default template treats all escalations the same. If you need different escalation paths — routing billing issues to one team and technical issues to another, for example — you can extend the flow by modifying the output schema and adding flow steps.

This involves three changes:

1. Extend the output schema

Add an escalation_tier field to the schema. The easiest way:

  1. Update your instructions to describe the escalation tiers (see step 2 below)
  2. Click the Generate button (magic wand) next to the Schema label — it will read your updated instructions and add the new field automatically
  3. Or click Edit schema to add the field manually

Output schema editor showing the escalation_tier field with enum values

Name the enum values to match your team structure. Common patterns:

  • By complexity: "tier1" | "tier2" | "tier3"
  • By department: "support" | "billing" | "engineering"

2. Update the instructions

Tell the agent how to choose the right tier:

When escalating, choose the appropriate tier:

- tier1: General questions that need a human touch
- tier2: Technical issues, bugs, integration problems
- tier3: Billing disputes, refund requests, or sensitive issues

3. Create flow steps for each tier

Replace the single escalation step with separate steps for each tier. Each step has a condition checking both action is "escalate" AND escalation_tier matches, with actions appropriate for that tier (assign to team, set priority, tag, etc.).

Flow step with conditions checking action and escalation_tier, and actions for that tier

The result is a flow where the AI triages and routes escalations to the right team automatically:

Multi-tier escalation flow diagram showing separate paths for tier1, tier2, and tier3

Each tier can tag differently (e.g., "tier1", "tier2"), and you create a saved view for each tag to give your teams separate inboxes.

Always include the "escalated" tag in every escalation step. The template uses this tag to prevent the flow from running again on already-escalated tickets.

For more on building flows, see Flows and Using agents in Flows.