Stop your automations from processing the same record twice

Tracks the status of every item being processed so a failure never causes duplicate work or a messy re-run.

How the work actually flows

It branches. Exactly one path is taken; runs once per each item in the batch; it retries when a step fails.

Pattern: Exclusive Choice (4) · Multiple Instances with a priori Design-Time Knowledge (13)

flowchart TD trig>"processing starts for item"]:::trig s0[["check item status"]]:::mi s1["mark item in progress"]:::task s2["run the task"]:::task s3["mark item completed"]:::task trig --> s0 s1 --> s2 s2 --> s3 gx{"× is item already processed"}:::gate s0 --> gx p00["skip item"]:::task gx -->|"already in progress or done"| p00 p10["mark in progress and run"]:::task gx -->|"new item"| p10 p00 --> s1 p10 --> s1 out[/"accurate per item status tracking"/]:::out pay{{"safe retries without duplicate work"}}:::pay s3 --> out out --> pay s2 -. "retries on failure" .-> s2 classDef task fill:#e7f6fe,stroke:#34b8f0,color:#2c2a29 classDef svc fill:#f6f8fa,stroke:#7c8795,color:#2c2a29 classDef mi fill:#e7f6fe,stroke:#0079a8,color:#2c2a29,stroke-width:2px classDef human fill:#fff,stroke:#0079a8,color:#0079a8 classDef store fill:#f6f8fa,stroke:#0079a8,color:#2c2a29 classDef trig fill:#00a4eb,stroke:#0079a8,color:#fff,font-weight:bold classDef trigtime fill:#00a4eb,stroke:#0079a8,color:#fff,font-weight:bold classDef trigdata fill:#8ad4f5,stroke:#0079a8,color:#06314c,font-weight:bold classDef gate fill:#fff,stroke:#e8a23d,color:#6b4708,font-weight:bold classDef out fill:#1f9d6b,stroke:#167a53,color:#fff,font-weight:bold classDef pay fill:#06314c,stroke:#021f33,color:#fff
Starts itA stepRuns once per itemOne path onlyResultPayoff
Build size
Advanced

A larger build with multiple systems, AI reasoning, and custom rules.

Business functions
Spreadsheet & Database Ops
Connects
RedisGoogle SheetsHubSpot

The problem it solves

When a process fails partway through, you're often left unsure what actually got done and what didn't, so you end up re-running the whole batch just to be safe. That kind of guesswork wastes time and risks duplicate records or duplicate outreach.

Who it fits

Operations teams running automated processes across large lists of records, like projects or contacts.

How it works

  1. Before starting work on an item, the system checks if it's already in progress or completed
  2. If it's new, the system marks it as in-progress
  3. Once the task finishes successfully, the system marks the item as completed
  4. If a task fails, the in-progress mark clears so only that item gets retried, not the whole batch
What you get

Records that never get processed twice

You get automations that always know which records are done, in progress, or need a retry, so nothing gets duplicated.

What you get

An accurate, up-to-date status for every item, so failures can be retried without redoing completed work.

What you need

A Redis database and a Google account for Sheets.

We can build this. But should you?

The hard question is not how to build it. It is whether this is the right thing to build first.

That is what a Fractional Chief AI Officer figures out with you, before anyone writes a line of code.

Let's Talk Strategy

Related automations

Back to the AI Playbook