May Retro, A Month of Workflow Automation
TL;DR — Ten n8n workflows in prod by month-end. ~13 hours/week of toil eliminated. Standup bot was the biggest win. The two-way Notion ↔ Jira sync got cut after a week. Two-engineer team, three-day setup, sustained value.
End of May. End of the n8n + workflow-automation theme. This is the honest retro: what shipped, what worked, what got reverted, and where workflow automation actually pays off.
What shipped
By end-of-month, ten workflows are live in our prod n8n:
| Workflow | Saves per week | Status |
|---|---|---|
| Standup bot (daily DMs + summary) | ~6 hours | Daily, 99% success |
| Jira auto-assign on PR open | ~50 min | Daily, 97% success |
Slack /jira lookup |
~30 min | Daily, 100% success |
Slack /oncall lookup |
~20 min | Daily, 100% success |
| Notion → Jira retro action items | ~30 min | Weekly, 99% success |
| GitHub PR → Jira status transition | ~25 min | Daily, 96% success |
| Deploy notification (#eng-deploys) | ~15 min | Per deploy, 100% success |
| Weekly engineering digest | ~2 hours (one-shot prep) | Weekly, 100% success |
| Backup health check ping | (n/a — observability) | Daily, 100% success |
| Stripe webhook → Slack alert | ~15 min | Per event, 100% success |
Total saved: ~13 hours/week across the team. The setup cost was roughly 3 days of engineering for me + ~2 hours per workflow on average.
What worked
The standup bot ROI is real. ~6 hours/week of meeting time replaced with ~18 minutes of async writing. Three weeks in, nobody wants to go back. The written summaries are also better than the verbal updates were.
Jira auto-assign + transition is invisible. Three weeks of operation, nobody has noticed it except when it fails. That’s the goal. Engineers open PRs; tickets follow. Reviewers no longer ask “what ticket does this PR fix?”
Self-hosting n8n was the right call. Zero per-task billing. Total infrastructure cost: $0 marginal (running on existing cluster). The 13 hours/week saved would have cost $400+/month on Zapier at this volume.
Error Trigger workflow caught real failures. Three times this month, n8n surfaced an issue I’d otherwise have missed: a Jira API key rotation forgot to update n8n, a Slack channel was renamed, and a GitHub webhook had its secret rotated. All caught within 15 minutes of first failure.
Code nodes did most of the heavy lifting. Most workflows have one or two “fancy” Code nodes doing 80% of the work; visual nodes are wiring. Treating Code nodes as first-class (with proper try/catch + structured returns) made the workflows feel like real software.
What bounced
Two-way Notion ↔ Jira sync. Shipped one-way Notion → Jira (works great). Tried adding the reverse direction (Jira changes echoed to Notion). The conflict resolution got hairy fast: someone edits both within the same minute, sync loops, fields ended up out of sync. Reverted to one-way. Notion is the read-only mirror; Jira is the source of truth. Sometimes the right answer is “don’t sync.”
Modal-based standup form vs free-text DM. Started with the modal. Half the team prefers typing in DM. Switched to: accept either; parse free-text into the three fields via a Code node. Modal is now optional; the DM path is more popular.
Slack scheduled reminders for expense reports. Shipped. Got muted within a week. Lesson: automating an annoying reminder is still an annoying reminder. The right fix would be automating the expense report flow itself; that’s outside this month’s scope.
Status page from n8n. Tried using n8n to fetch service health metrics + post a daily summary. Worked, but rebuilt half of what proper monitoring tools already do. Cut. Real monitoring lives in Prometheus + Grafana; n8n is for actions, not metrics scraping.
What I’d do differently
Set up the Error Trigger workflow on day one, not day five. First week of dev I had no idea things were silently failing. The moment I wired the error workflow, three issues surfaced immediately.
Version control workflows from the start. I started exporting workflow JSON to git after the first week. Should have done it on day one. Workflow JSON is code; treat it like code.
Service accounts before personal credentials. First Jira credential was my personal API token. Migrating that to n8n-bot@yourorg after the fact was annoying. Always start with a service account.
Don’t build a workflow until the manual process is painful enough. Spent a day on a “monitor Slack channel for keywords and create Jira tickets” workflow. Nobody used it because the underlying need wasn’t sharp enough. Could have validated by tracking the keyword instances for a week first.
Document each workflow’s why, not just what. Three months in I’ll forget why a workflow exists. A one-paragraph README per workflow (in git, alongside the exported JSON) saves future-me.
The honest cost
Three days of my time × $X/day to build out the foundation. ~2 hours per workflow on average × 10 workflows = 20 hours. Plus ongoing maintenance: ~30 min/week (Slack alerts, occasional debugging).
The team’s saving: 13 hours/week.
Payback: about 3 weeks. After that, pure compounding gain.
What’s load-bearing now
This is the warning. Three of the ten workflows are now load-bearing:
- Standup bot — if it goes down, the team’s morning rhythm breaks
- Jira auto-assign — silent failure means ticket statuses drift
- Slack /oncall — when someone needs to find the on-call at 2 AM, this is the path
These need:
- High-availability (run two n8n instances, eventually)
- Better monitoring (already set up — covered Friday)
- Documented runbooks for “what if n8n is down?”
Right now we’re at “single n8n instance with the standard monitoring.” Acceptable for our scale. As more workflows go live, the operational rigor goes up.
What June looks like
June theme per the content plan: Software Architecture: Implementing Clean Architecture patterns in Golang and Laravel 9. Pivot back to production code. Architecture deep-dive. Same shape: 13 articles, M/W/F, single theme.
Going to be heavier on opinion in June. Clean Architecture is one of those topics where “the right thing to do” depends a lot on team and project. I’ll write what’s worked for us; you’ll have to map to your situation.
Half-year wrap
Five months done. ~65 posts. Sustained the schedule. The audience is real — I’ve gotten unsolicited messages about three of the n8n workflows from people who built variants. The standup bot post will probably be the most-shared of the year.
If you’ve been following along: thanks. If you’ve shipped any of the patterns in your shop, especially love to hear about it.
See you in June.