← All articles

AI app guides

Build reminder automation that can retry without repeating the message

Track the business event, delivery attempt and cancellation rule separately for scheduled reminders.

Zocri · 2 min read · Sources checked

Identify the reminder's business event

Resend documents idempotency keys that suppress repeated sends with the same key within a 24-hour window. That is a useful delivery tool, but an app still needs to know which reminder it intends to send. Define the event as a particular appointment, recipient and reminder stage. A generic send email action does not explain whether an earlier attempt already covered the same purpose.

Write the eligibility rule before adding a schedule. A reminder may apply only to confirmed appointments that have not been cancelled or completed. Decide which time zone controls the schedule and whether the business sends reminders during quiet hours. Use the organization's actual communication policy.

Recheck before sending

An appointment can change after a reminder is scheduled. Before the message goes out, verify the current time, status and recipient. A cancelled or moved appointment should not receive an obsolete reminder simply because a background job was created earlier.

Define how a changed appointment affects old reminders. They may be cancelled and replaced, with the history showing why. If a person changes their contact details, decide which verified address should receive the message. The app should not silently keep an outdated destination attached to future work.

Separate attempted, accepted and failed

Show the owner whether the reminder is scheduled, being attempted, accepted by the provider or failed. Avoid calling every attempted send delivered. If delivery status is available, record it according to the provider's actual meaning, and do not imply that acceptance means the recipient read it.

For retries, preserve the identity of the intended reminder and respect the provider's documented conditions. A retry after its deduplication window needs app-level handling. Give an operator a safe way to inspect and retry an unresolved message without accidentally starting a new independent reminder.

Test cancellation and repeated work

Use safe recipients and sample appointments. Test an ordinary reminder, a cancellation before sending, a reschedule and a temporary provider failure followed by retry. Inspect both the app's history and provider evidence, including how many messages were actually accepted for sending.

Review the queue for stuck or stale work and assign an owner to investigate it. A useful reminder system remains understandable when time, appointments and delivery attempts change. The goal is one appropriate message for the intended event, with enough history to recover when the delivery process is uncertain.

Put it into practice.

Open Zocri →