Start with a contract
Write down the trigger, required inputs, expected outputs, and owner. For an order export, success might mean every eligible order appears once in a dated file and the row count matches the source. A contract gives you something concrete to verify.
Make retries safe
Assume a job can run twice. Use a stable identifier such as the order ID and operation name to record completed work. Check that record before creating another result. A retry should continue the work, not duplicate it.
Separate temporary and permanent failures
A timeout can be retried with a limited delay. A missing required field should be reviewed. Set a maximum number of attempts, capture the last failure, and route unresolved items to a visible queue. Avoid retry loops with no end.
Verify the result independently
Compare counts, totals, and identifiers against the input. A successful HTTP response does not prove the right records were processed. Keep a small test set containing a duplicate, a missing field, and an unavailable destination.
Keep a recovery path
Store enough context to rerun a failed item without exposing credentials. Document how to pause the workflow, inspect the queue, and resume. Notify the owner when a decision is needed, rather than sending a message after every routine run.
Further reading
Put it into practice with our free browser tools.
Open the toolbox →