A workflow that runs once is a demo. A workflow that keeps running after API failures, duplicate webhooks, and unexpected data is a production system.

Here is the checklist I use before handing an n8n workflow to a client.

1. Validate every external input

Never assume a webhook contains every field you expect. Check required values early and route invalid payloads to a clear error path. This prevents a missing email address or record ID from failing several nodes later.

2. Make retries safe