This is a research guide based on cited documentation. It is not a report of firsthand testing. Our editorial method

Define one intended message before choosing modules

A duplicate is two deliveries of the same intended message, not simply two webhook requests. A registration event and a reminder event may legitimately concern the same subscriber. Our proposed design uses a key such as workshop-42:registration-803:reminder-24h:v1. The registration identifier distinguishes recipients; the reminder type distinguishes legitimate messages; the version changes only when you intentionally create a different message.

Use the originating application's stable event or registration identifier. A new timestamp generated on every attempt defeats deduplication because every retry gets a new identity. Do not put email addresses, webhook secrets, or message bodies into a shared diagnostic worksheet. Keep the actual recipient lookup in the access-controlled system that already owns that data.

Use a delivery ledger with explicit states

This ledger is an implementation design, not a tested Make template. Choose storage whose concurrency guarantees you understand. Checking for an absent key and then inserting it are two operations; concurrent workers can both pass the check. A database unique constraint or atomic claim can prevent that race. A simple data-store lookup should not be described as equivalent without verifying its behavior.

StateMeaningNext action
PendingIntended message exists; no attempt claimedClaim the key before sending
SendingA worker owns an attemptOther workers wait; inspect stale attempts
AcceptedProvider acknowledged a message IDStore the ID; suppress another send
UnknownTimeout or interrupted write after sendingCheck provider records before retry
FailedDefinite rejection; no acceptanceCorrect cause and apply a bounded retry
CancelledReminder no longer appropriateDo not send

Separate execution recovery from delivery proof

Make documents parallel processing for instant webhooks and an option for sequential processing. Serializing the scenario helps when two arrivals overlap inside that scenario. It does not serialize an independent scenario, stop the upstream system from sending the event again later, or prove that a remote email operation happened only once.

Make also documents incomplete executions and retry handling. Review where a resumed execution starts and which earlier modules already succeeded before resolving it. An automation run marked successful is evidence about the workflow, while a provider message ID is evidence of acceptance by the email service. Neither proves inbox placement or that the recipient read the message.

Work through the difficult timeout case

Hypothetical example: attempt A claims the reminder key at 09:00. The email service accepts it, but the connection closes before Make receives the response. At 09:01 the original registration webhook arrives again. The ledger still says Sending. Sending another email immediately could produce a duplicate; marking it Accepted without evidence could hide a missing reminder.

Move the attempt to Unknown after your documented timeout boundary. Look for the original request reference or provider message record. If the service supports an idempotency key for this exact endpoint, follow its documentation and retention window. If it does not, there may be no fully automatic way to distinguish accepted from lost. Put uncertain cases into a review queue with an owner and a deadline. Expiring a lock alone is not permission to resend.

Run five failure tests with a controlled recipient

Use a dedicated test recipient and synthetic registration data. Agree on the expected result before running each case. Repeat a failure case after a design change, and retain actual results separately from this proposed checklist. We have not run these five scenarios against a production email provider.

TestExpected behaviorEvidence to retain
Same webhook twice in sequenceOne accepted send for the keyTwo arrival IDs; one provider message ID
Same webhook twice concurrentlyOnly one worker claims the messageClaim results and provider records
Definite provider rejectionNo accepted state; bounded retry after correctionRejection code and attempt count
Timeout after possible acceptanceUnknown state; no blind resendReconciliation decision and reviewer
Registration cancelled before reminderCancelled state blocks sendCancellation time and suppressed attempt

Set operating limits before switching on

  • Name the owner of Unknown and Failed states and define how quickly each must be reviewed.
  • Cap retries and define the latest useful send time; a workshop reminder sent after the workshop is not recovered value.
  • Keep the deduplication record longer than the upstream retry window and your own replay period, subject to your data-retention policy.
  • Monitor intended reminders, accepted sends, suppressed duplicates, and unresolved attempts separately.
  • Use the downloadable ledger to record the test result and evidence reference for each case. A blank evidence field means the case is unverified.

Take it with you

Download the reminder failure-test ledger

Download worksheet

Watch demos / Official walkthroughs

See how the tools work.

Videos load from YouTube only when you press play. These are provider videos, not our own product tests.

Make / Official video

Make—Building Your First Automated Workflow from Scratch

What to look for: Follow how modules connect and how data moves through the first workflow.

Watch on YouTube

Your next step / Review the option

Make Tools module output from our synthetic single-module demonstration
Our synthetic Make module run: one operation. Not a complete automation test. · Image source
AutomationChecked 2026-09-13

Make

A visual tool to investigate small workflow designs, beginning with synthetic data and human review.

Free plan includes 1,000 credits/month

Connected apps can cost extra. Free scheduled interval is at least 15 minutes; paid billing must be checked at checkout.

Affiliate link: we may earn a commission on an eligible purchase. Link disclosure

Sources & verification

Product details and prices can change. Check the linked provider before buying.

  1. Make: webhook processing and queues Accessed 2026-09-13
  2. Make: incomplete executions Accessed 2026-09-13

Sources link directly to providers. Product buttons may use separately labeled affiliate links. Read our disclosure.