Remove from Workflow
Cancel this conversation's pending waits — the step that stops a reminder chase the moment the contact replies or pays, before the next one is due.
Getting here
Automate → Workflows, open a workflow, click + on the canvas, then pick Remove from Workflow under Add Steps.
Before you start
- An owner, admin or agent can add this step and save the workflow. Publishing it is an owner or admin action.
- Building and running workflows depends on your plan; see pricing.
- Nothing outside Inchat has to be connected. The step only cancels rows already queued for this conversation.
Set up
- Open the workflow and click + where the cancellation belongs — typically right after the event that makes the chase unnecessary, such as a reply or a payment.
- Pick Remove from Workflow.
- Choose which workflow's pending waits to cancel — All workflows, or one named workflow.
- Save the step, then publish the workflow.
Fields
- Workflow to cancel
- Which workflow's queued waits this step cancels for the conversation. Not a visible on-screen label — the dropdown carries this text only for a screen reader.
- Default: All workflows
- Limits: The list never offers this same workflow as a choice, so a stored value that matches neither a listed workflow nor All workflows — for example, a deleted workflow — falls back to showing This workflow.
How it works
- The step cancels every still-pending queued row for this conversation — either across the whole workspace's workflows, or only the one workflow chosen — by marking those rows canceled so the cron that drains them skips them.
- That covers a Wait step's queued resume and an Assign To step's queued Timeout Branch message alike: both are the same kind of queued row underneath.
- All workflows also cancels queued rate-limit retries that have no workflow at all — including a retry of the AI's own auto-reply after it was throttled — because those share the identical queue with nothing to tell them apart at the workflow level.
- A wait that has already fired and moved on cannot be cancelled after the fact — only rows still waiting for their due time are affected.
When it fails
- There is nothing to cancel: the step still succeeds — an empty result is not a failure, it just means no matching wait was pending.
Limits
- Despite the name, it does not stop a workflow that is actively running on this conversation right this moment — a step already executing finishes; only what has already been queued for later is affected.
- It cannot release a contact currently parked waiting for an answer to an Ask a Question step in some other workflow — that is a different kind of pending state, not a queued wait.
- It cannot cancel a workflow that has been triggered but has not yet started running (queued but not yet drained) — it only reaches waits that are already queued and pending.
- It does not touch anything about the AI, the assignee or the conversation's status — cancelling a queued Timeout Branch message, for instance, does not undo the assignment that queued it.
- All workflows is genuinely all of them — including a rate-limit retry the AI's own auto-reply queued, which has no workflow behind it at all. There is no way to cancel only a workflow's own queued rows while leaving those retries alone.
Use cases
- A payment-reminder workflow queues a chase every day the invoice stays open; the moment the customer pays, this step cancels the rest of the chase.
- A workflow sets a short reply-timeout on an Assign To step; if the assignee replies before the timeout, a later workflow step cancels that queued timeout message so it never goes out.
FAQ and troubleshooting
- Does this stop a workflow that is running right now?
- No. It only cancels waits that are already queued for later — a step actively running when this fires finishes on its own.
- Will this release a contact stuck waiting on a question from another workflow?
- No. A parked question is a different kind of pending state; Remove from Workflow only cancels queued waits.
Related
- Wait — Pause the run for a set duration or until a time of day, optionally held to business hours or to a daily window so a customer is never messaged in the middle of the night.
- Assign To (human) — Hand the conversation to one named teammate, or spread it across the workspace by round robin or fewest open contacts, with an optional timeout message if nobody answers.
- Trigger Another Workflow — Hand the conversation to another published workflow, from its first step or a chosen one, so a large design can stay several small workflows instead of one long flow.
- Avoid workflow loops — What already stops a flow from re-triggering itself, and the two hard caps — on Jump To and on Trigger Another Workflow — that stop a deliberate loop from running forever.
Reading this with an AI assistant? Plain Markdown version.