Automations Without a Developer
CSV round-trips, an n8n workflow in an afternoon, deliveries on your calendar, and what to do when it breaks.CSV round-trips, an n8n workflow in an afternoon, calendar and Slack notifications, and what to do when an automation breaks.CSV bulk edits with validation, n8n schedule/HTTP patterns against the Distru API, calendar sync, and reliability basics.
Carry on withCarry on withnext:
- 017 min
CSV In, CSV Out: The Simplest Automation There IsCSV In, CSV Out: Export, Transform, Validate, ImportBulk edits via CSV round-trips: cost types, order status, image URLs, and the validator that gates the uploadDoneDonedone
Export the list, change one column, prove nothing else moved, upload it back. Half the 'can you build a feature for this' asks are this. The AI writes the rule; it never touches the file.Export, transform, validate, import. Half the feature requests we get are this round-trip. The model writes the rules file; a deterministic check compares old and new and refuses the upload if anything other than the target column moved.Export → LLM-authored rules → deterministic transform → validator (row count, key column, untouched columns, allowed values) → import. The model never edits rows.
- 0210 min
Build Your First n8n Workflow in an AfternoonBuild Your First n8n Workflow in an Afternoon (Schedule, Fetch, Filter, Update)n8n: self-hosted runner, credential store, and a dry-run-gated schedule → HTTP → filter → HTTP workflowDoneDonedone
n8n is free and runs on your own machine. We hand you the finished 'set today's orders to Delivering' robot: import it, put your key in, watch it for three mornings with the switch off, then turn it on.n8n is free to self-host and source-available (you can read and run its code): you connect nodes, it runs them on a schedule. We hand you the delivery-day status workflow node by node, with a dry-run switch you leave on until the Slack line matches what you would have done by hand.n8n internals that matter on day one (nodes, credential store, schedule vs webhook triggers, timezone), the delivery-day workflow node by node, and why the first trigger should be a schedule.
- 038 min
Deliveries on Your Google Calendar, AutomaticallyDeliveries on Your Google Calendar, Automatically (One Event per Order, Keyed on the Order ID)Calendar sync and notifications: event id = order id, find-before-write, UTC to local, Slack or SMS digestDoneDonedone
Operators keep asking for their deliveries to show up on Google Calendar. You do not have to wait for a feature. One event per order, and it never makes the same event twice.Every order with a delivery date becomes one calendar event. Move the date in Distru and the event moves; cancel the order and the event goes. The event id is the order id, which is what stops it duplicating, and the time zone is what stops it lying.Poll orders in a rolling window, derive a Google Calendar event id from the order UUID, look up before writing, then create / update / delete / skip. Time zones converted once, at the edge. Optional Slack or SMS digest off the same plan.
- 047 min
When Automation Breaks (It Will)When Automation Breaks: Fail Loudly, Run Twice Safely, Write It DownFailure branches, backoff on 429 and 5xx, partial runs, find-before-create, and a monthly reviewDoneDonedone
Your robot will hit a bad row, a timeout, or a field that got renamed. Make it tell you by name, make it safe to run again, and keep one page that says how to turn it off.Every automation breaks. Four habits keep the breakage cheap: a failure branch that names the record, retries only on the errors worth retrying, writes that check before they create, and a fifteen-minute review once a month.Error outputs and error workflows, exponential backoff limited to 429 and 5xx, partial-run recovery through capped idempotent writes, find-before-create, human-readable failure text, and a monthly review against a runbook.