AI Knowledge & Logic

Auto-Resolve Conversations

Automatically decide whether an idle email conversation is resolved — closing it, following up with the customer, or handing off to a human.

When a conversation goes quiet, it usually means one of two things: the customer's issue is done, or they're still waiting on something. Auto-resolve handles both automatically. Instead of every idle conversation sitting open until it's force-closed, the bot reviews it, decides whether it's actually resolved, and acts — closing it, following up with the customer, or handing it off to a human.

This keeps the inbox clean without prematurely closing conversations that still need attention.

Auto-resolve currently applies to email conversations. It's enabled per bot in Settings → Bot Configuration — see Configuration.


How it works

When an email conversation has been idle long enough to be auto-closed, the bot runs a short review:

  1. Is it resolved? The bot judges the conversation against your Resolution criteria.
    • Resolved → the conversation is closed.
    • Not resolved → it moves on to a follow-up.
  2. Follow up. If follow-ups remain in the budget, the bot takes a follow-up turn. Behind the scenes it receives an automated event — a short, internal note saying the customer has gone quiet on an unresolved conversation, why it's unresolved, and which follow-up this is. The customer never sees this event; it just prompts the bot to act. The bot then follows your follow-up workflow (see The follow-up workflow) — typically sending a friendly nudge, but it can do anything a workflow can, including handing off.
  3. When the budget runs out. Once the maximum number of follow-ups has been used and the conversation is still unresolved, the bot takes the terminal action you chose: close the conversation, or hand it off to a human.

The follow-up counter resets whenever the customer replies — so a customer who responds and then goes quiet again gets the full budget again.

A note also appears on the conversation timeline each time a follow-up is triggered (e.g. "Customer inactive — automated follow-up 1/2"), so your team can see what happened.


Configuration

Configure auto-resolve per bot in Settings → Bot Configuration, under Conversation resolution & follow-ups.

SettingWhat it does
Enable auto-resolveMaster switch for this bot. Off (default): idle conversations are just closed. On: idle conversations are reviewed and followed up as described here.
Resolution criteriaDefines what counts as resolved. Conversations matching it are closed; others get a follow-up.
Maximum follow-upsHow many follow-ups the bot may send before the terminal action. 0 skips follow-ups entirely. Resets when the customer replies.
Hand off when follow-ups exhaustedThe terminal action once follow-ups run out and the conversation is still unresolved: on hands off to a human, off closes the conversation.

When you turn Enable auto-resolve on and save, a follow-up workflow is created for you automatically (if one doesn't exist yet), and a link to edit it appears right below the toggle. What the bot does on a follow-up lives in that workflow, not in a setting here — see below.

Configuring via API / MCP

All of these settings are also writable programmatically (e.g. via the MCP update_bot_config tool): autoResolveEnabled, resolutionPrompt, maxFollowups, and handoffOnMaxFollowups. Setting autoResolveEnabled to true auto-creates the follow-up workflow exactly as the dashboard does — so you don't have to create it by hand. get_bot_config reflects the current values, including autoResolveEnabled.

If you'd rather build the follow-up workflow yourself (via create_workflow), make sure its When to follow describes the auto-resolve event so the bot picks it — the default is:

Follow this when you receive an automated conversation event saying the customer has gone quiet and the conversation is unresolved (an auto-resolve follow-up).


Resolution criteria

Resolution criteria answers a single question: is this conversation done? Keep it focused on that. For example:

A conversation is resolved if the customer's question has been fully answered and nothing further is needed from us. It is not resolved if the customer still needs to confirm or provide something before their issue can be completed.

Leave it on the default unless you have a specific definition of "done" for your business (e.g. treating "awaiting a refund confirmation" as unresolved).


The follow-up workflow

The follow-up itself is a normal workflow. When you enable auto-resolve, Octocom creates one named "Unresolved conversation follow-up" with sensible defaults, and links you to it from the bot-configuration page. Edit it any time to change what the bot does.

It has two parts you'll care about:

  • When to follow — tells the bot when this workflow applies. The default matches the auto-resolve event:

    Follow this when you receive an automated conversation event saying the customer has gone quiet and the conversation is unresolved (an auto-resolve follow-up).

    Leave this alone unless you know what you're doing — if it no longer matches the event, the bot won't follow up.

  • Instructions — your follow-up playbook. The default is a brief, friendly nudge:

    Send the customer a brief, friendly follow-up that nudges them to provide whatever is still needed to move their request forward. Reference the last topic discussed, keep it concise, and never claim an action has been taken. If the event indicates this is the final follow-up and the issue still can't progress, hand the conversation off to a human instead of sending another message.

Because it's a regular workflow, the follow-up can do anything a workflow can — call actions, look up an order, gather data, or hand off. A few ideas:

Apologise for the delay and ask the customer to confirm whether they still need help. If they originally asked about an order, include the order number in your message.

If this is the final follow-up, hand off to a human. Otherwise, send one short reminder and nothing more.


Workflow-driven vs. guaranteed handoff

There are two ways a conversation can end up with a human, and they behave differently:

  • From the follow-up workflow (e.g. "on the final follow-up, hand off") — the bot decides in the moment. This is flexible and conditional, but, like any AI instruction, it's followed most of the time, not every time.
  • The "Hand off when follow-ups exhausted" toggle — this is deterministic. Once the budget is spent and the conversation is still unresolved, it's handed off (or closed) automatically, with no dependence on the AI.

Use the toggle when you need a guarantee ("these must always reach a human"). Use the follow-up workflow when you want nuanced, conditional behavior. They compose: the workflow handles the in-conversation nudges, and the toggle is the backstop once the budget runs out.


Examples

Close quietly, no follow-ups. Enable auto-resolve on, Maximum follow-ups 0, toggle off. Idle conversations the bot judges resolved are closed; unresolved ones are closed too — the bot just stops sitting on dead threads. Simplest setup.

One nudge, then close. Enable auto-resolve on, Maximum follow-ups 1, toggle off. The bot sends a single follow-up; if the customer still doesn't reply, the conversation is closed.

One nudge, then hand off. Maximum follow-ups 1, toggle on. The bot sends a single follow-up; if the customer still doesn't reply, it's handed to a human instead of closed — good for higher-touch queues.

Hand off immediately instead of nudging. Maximum follow-ups 0, toggle on. Unresolved conversations go straight to a human, with no follow-up message.

Two nudges with conditional handoff. Maximum follow-ups 2. In the follow-up workflow's instructions, write something like "On the final follow-up, if this looks like a billing dispute, hand off to a human; otherwise send a final reminder." Pair with the toggle on if you also want a hard guarantee that anything still unresolved after two nudges reaches a person.


FAQ

Does the customer see the internal event? No. The event is an internal prompt to the bot; only the follow-up message the bot writes is sent to the customer.

What if I disable auto-resolve later? Idle conversations go back to simply being closed. The follow-up workflow stays in your workflow list (it just won't be triggered) — you can delete it if you don't plan to use it again.

Why isn't the bot following up? Check that (1) auto-resolve is enabled for the bot, (2) the conversation is on email, (3) the bot — not the customer — sent the last message, and (4) the follow-up workflow is live and its When to follow still matches the auto-resolve event.

On this page