Beginner /idempotency
Idempotency
The property that repeating the same operation has the same intended effect as doing it once, preventing retries from creating duplicate side effects.
Available formats
On this page
Read
The useful mental model
Idempotency gives an operation a durable identity. When the same operation arrives again, the system recognizes that identity and returns or preserves the first intended result instead of repeating the side effect.
In plain English
The same form submission can arrive more than once, but your system still creates only one record.
Where builders use it
- 01Processing retried webhooks
- 02Safely repeating API requests
- 03Preventing duplicate records in automated workflows
Why it matters
Reliable automations retry work when networks or downstream services fail. Idempotency lets those retries recover without duplicating records or repeating the intended action.
A common misconception
“Idempotency means an operation runs only once.”
The operation may be attempted several times. Idempotency means those attempts have the same intended effect as one attempt.
See
See the mental model
The visual is generated from the same structured knowledge as the written explanation.
Without idempotency, three deliveries of submission abc123 create three database rows. With idempotency, the same deliveries resolve to one row through a unique operation key.
Builder example
Deduplicate a Tally webhook
A Tally form sends each submission through an n8n webhook workflow to Supabase. Tally can retry delivery when the endpoint does not return a successful response within its timeout.
Failure
If every delivery performs a fresh insert, one submission can create duplicate lead or booking records when the webhook is retried.
Intervention
Pass Tally's submission ID through n8n and store it in a unique Supabase column. Upsert on that column so the first delivery creates the row and later deliveries resolve against the same record.
Observable result
Repeated deliveries of the same submission resolve to one database row, while a genuinely new submission still creates a new row.
Sources
Go deeper
Last researched 9 October 2026