← Back to Learn

Automation Lessons: What Broke and What Worked

June 10, 2026 · 7 min read

⚙️ Automation Lessons

Lessons from n8n, Make.com, API connections, webhooks, lead routing, cron jobs.


Lesson 2026-04-15: Git Auto-Push — Cron Needs Both Commit AND Push

Category: automation

What We Were Trying To Do

Set up an automated cron job to back up work to GitHub every 15 minutes

What We Tried

Created a cron job that ran git commit daily

What Went Wrong

The cron was committing changes but NOT pushing them to GitHub. The commits sat locally with no remote backup. Assumed "git commit" included "git push" — it does not.

How We Fixed It

Updated the cron script to include git push backup main explicitly after the commit.

What To Do Next Time Instead

Could Be A PDF Chapter?

Yes — "Cron for Dummies: Why Your Automated Backups Aren't Actually Backing Up"


Lesson 2026-04-15: Git Identity — Distinguish Between Agents

Category: automation

What We Were Trying To Do

Run multiple AI agents (James-ops, James-research) working on the same repo simultaneously

What We Tried

Both agents used the same default git identity

What Went Wrong

Couldn't tell which agent made which commit. When one agent broke something and the other tried to fix it, the commit logs were useless for attribution.

How We Fixed It

What To Do Next Time Instead

Could Be A PDF Chapter?

No — multi-agent ops lesson


Lesson 2026-04-15: Agent State Staleness

Category: automation

What We Were Trying To Do

Have James-ops fix issues independently after James-research had already resolved them

What We Tried

Both agents had their own memory and context

What Went Wrong

James-ops still showed Cloudflare 503 errors from April 14 — errors that James-research had already fixed. The ops agent had stale context and wanted to re-fix a solved problem.

How We Fixed It

Added "CURRENT SYSTEM STATUS" section to MEMORY-PRIMER.md. Both agents must read this section FIRST on startup. Lists what's working, what's not, known issues. Any agent can update it when status changes.

What To Do Next Time Instead

Could Be A PDF Chapter?

No — multi-agent coordination lesson


Lesson 2026-04-15: Make.com Webhook Activation

Category: automation

What We Were Trying To Do

Connect website contact forms to Make.com to automate lead notifications

What We Tried

Set up a Make.com webhook endpoint, tried to POST form data to it

What Went Wrong

Make.com's webhook needs to be "activated" with an action after receiving data, or it times out. The webhook appeared configured but silently failed.

How We Fixed It

Used Formspree → Make.com webhook path (requires Formspree Pro subscription). Or kept manual form handling as fallback.

What To Do Next Time Instead

Could Be A PDF Chapter?

Yes — "Webhook Woes: Why Your Forms Aren't Sending (And Make.com's Dirty Secret)"


Lesson 2026-04-26: n8n API Authentication

Category: automation

What We Were Trying To Do

Access n8n via API from a cloud agent to create and manage workflows

What We Tried

Used standard Bearer token authentication header

What Went Wrong

Got "X-N8N-API-KEY header required" error. n8n uses a custom header, not the standard Bearer token format.

How We Fixed It

Created workflow JSON files for Scott to import manually into n8n. The cloud agent couldn't access n8n directly.

What To Do Next Time Instead

Could Be A PDF Chapter?

Yes — "n8n for Non-Developers: How to Actually Get Your Workflows Working"


Lesson 2026-04-15: Make.com — Keep It Simple

Category: automation

What We Were Trying To Do

Decide whether to use multiple Make.com accounts for different automations

What We Tried

Considered having separate accounts for client work vs internal automation

What Went Wrong

Scott said: "No, keep it simple — one account with multiple scenarios." The proposed complexity was unnecessary.

How We Fixed It

One Make.com account, multiple scenarios, clean naming convention.

What To Do Next Time Instead

Could Be A PDF Chapter?

No — general process principle


Lesson 2026-04-15: Cloud Agent Can't Access Local Servers

Category: automation

What We Were Trying To Do

Have the cloud-based AI agent directly send emails, access n8n, and interact with local services

What We Tried

The agent tried to call localhost services, SSH into servers, and use local-only APIs

What Went Wrong

"AI on cloud can't access local servers — need explicit API keys" — The agent is cloud-based, with no direct access to local infrastructure (n8n, Make.com, file server, etc.)

How We Fixed It

What To Do Next Time Instead

Could Be A PDF Chapter?

Yes — "The Cloud Agent Trap: What AI Can and Can't Do On Your Infrastructure"


Lesson 2026-06-10: Automated Validation Prevents "Deploy-Ready But Broken" Failures

Category: automation

What We Were Trying To Do

Create a reusable quality gate that catches static site failures before deployment, preventing the pattern where sites are declared "deploy-ready" but have missing DOCTYPE, broken forms, or no tracking.

What We Tried

Manually checked each page with grep for DOCTYPE, Formspree forms, GA4 tracking, SEO meta, sitemap, robots, CSS. This worked once but was not repeatable.

What Went Wrong

The landscape-greensboro.com site had been declared "deploy-ready" twice without a formal validation step. Both times, critical issues were found only after investigation — missing DOCTYPE, WordPress shortcodes, no GA4, no meta descriptions, broken CSS pipeline.

How We Fixed It

Created automation/validate-static-site.py — a standalone Python script that:

What To Do Next Time Instead

Could Be A PDF Chapter?

Yes — "The Pre-Deploy Checklist: How to Never Ship a Broken Website Again"