I spent months building automations with Python scripts and cron jobs. Morning reports, CRM task triage, data pulls from VinSolutions. All of it worked. But every time I wanted to add something new, I was writing code from scratch. And some things don't need code. They need plumbing.

That's how I found n8n.

Not from a vendor pitch. Not from a dealership conference. I found it because I was trying to automate posting content to three social media platforms at the same time, and writing a custom script for each API felt stupid when the problem was just "take this data, format it, send it three places."

What n8n Actually Is

n8n is a workflow automation platform. Think Zapier, but you host it yourself. It runs on your machine, your data stays on your network, and it costs nothing.

You build workflows visually. Drag nodes onto a canvas, connect them, set triggers. A webhook fires, data flows through the chain, stuff happens at the other end. It's like building with Legos except the Legos talk to your CRM, your database, your Telegram bot, your social media accounts, and about 400 other services.

I run it in a Docker container on my Mac Mini. Same machine that runs my VinSolutions automation stack. It starts automatically, restarts if it crashes, and uses about as much RAM as having Chrome open. Which, at a dealership, you're already doing 47 times.

Why Not Just Use Zapier?

I tried Zapier first. Lasted about two weeks.

Three problems killed it for me. First, the pricing. Zapier charges per "task" (each step in a workflow counts). When you're automating content posting across three platforms with image processing and database logging, a single run burns through 8-10 tasks. Do that daily and you're on their $50/month plan before you've done anything interesting.

Second, data residency. My workflows touch customer data. CRM exports, lead names, phone numbers. I don't want that routing through Zapier's servers. With n8n, the data never leaves my network. It runs on a machine in my house.

Third, complexity limits. Zapier's branching logic is clunky. The moment you need "if this, do A, but if that and also this other condition, do B, and either way log to the database" you're fighting the tool instead of using it. n8n handles that natively.

Free. Private. Flexible. That was enough.

What I'm Actually Running

I'll be specific because vague "you can automate anything!" doesn't help anyone.

Social Media Content Pipeline

This is the big one. My AI generates a batch of social media posts every week. Different formats for X, Instagram, and Facebook. The posts get reviewed and approved, then n8n handles distribution.

The workflow looks like this: a webhook triggers with post data (text, image URL, platform targets). n8n receives it, formats the content differently for each platform (X gets a shorter version, Instagram gets hashtags, Facebook gets a longer caption), posts to all three APIs in parallel, logs the results to my Supabase database, and sends me a Telegram notification with links to the live posts.

One trigger. Three platforms. Database logged. Notification sent. Takes about 4 seconds.

Before n8n, I was copying and pasting between three browser tabs. Or not posting at all because who has time to format the same content three different ways when there's a customer on the lot.

Data Pipeline Triggers

Some of my automations need a "do this, then do that" chain that's annoying to build in pure code. n8n handles the orchestration.

Example: after my morning report runs, I want the key metrics pushed to a Google Sheet that my GM can see. And if new car pace drops below 90% of target, I want a separate alert in a different Telegram channel. The morning report itself is still a Python script. But the "what happens after" part is n8n. It watches for the report data, branches based on the numbers, and routes outputs to the right places.

That separation matters. Keep the hard stuff in code. Let n8n handle the plumbing between systems.

Webhook Receiver

n8n can expose webhook URLs that trigger workflows when something hits them. I use this for a few things that would otherwise require building a whole web server.

My content approval process works this way. The AI drafts posts, they go into a review queue, and when I approve one (just tapping a button in Telegram), it fires a webhook to n8n which handles the actual posting. The AI decides what to say. n8n decides where to send it. Clean separation.

The Setup (It's Easier Than You Think)

If you've ever installed an app on your phone, you can run n8n. I'm serious.

You need Docker. That's a tool that runs applications in containers (think of it as a box that keeps the app and all its dependencies isolated). On a Mac, you install Colima or Docker Desktop. On Linux, Docker comes pre-installed on most setups.

Then it's one command:

docker run -d --name n8n --restart unless-stopped -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n

That's it. Open localhost:5678 in a browser. You're in. Create an account, start building workflows.

The whole thing took me 8 minutes. And I timed it because I didn't believe it either.

Real Talk: What n8n Can't Do

I'm not going to pretend it's perfect.

n8n can't log into VinSolutions and click through screens. That's browser automation territory, and I use Playwright for that. n8n connects systems that have APIs or webhooks. VinSolutions has neither (not for regular dealers, anyway).

It also can't think. It routes data, transforms it, sends it places. The AI reasoning layer (reading a customer's CRM history and deciding what to do) stays in my AI stack. n8n is the highways. The AI is the driver.

And the UI, while visual and functional, takes a minute to learn. The node-based editor makes sense once you get it, but the first 30 minutes feel like staring at a circuit board. Push through it. After you build one workflow, the second one takes a quarter of the time.

Where This Fits in the Stack

If you've read my post on the automation stack I run, n8n sits between the AI brain and the outside world. The AI decides what needs to happen. n8n makes it happen across multiple systems without me writing API integration code for each one.

Think of it in layers:

Each layer does one thing well. That's the whole principle behind why this works where vendor tools don't. Vendor tools try to be all four layers and end up being bad at all of them.

What I'd Build First If I Were You

Don't start with the social media pipeline. That was my use case because I already had the other pieces running.

Start with a notification router. Something simple: when X happens, send me a message in Y. Maybe it's "when a new lead comes in through the website form, text me and also log it to a spreadsheet." Two nodes. One trigger. That's your first workflow.

Then add a conditional. "If the lead is from a zip code within 20 miles, send it immediately. Otherwise, queue it for morning review." Now you're branching. You'll start seeing uses everywhere.

By week two, you'll have 4-5 workflows running and you'll wonder how you lived without it. That's what happened to me. I went from "this seems neat" to "this is load-bearing infrastructure" in about 10 days.

The Numbers

n8n Community Edition: $0.

Docker on existing hardware: $0.

Time to first working workflow: under 30 minutes.

Time saved per week on content distribution alone: about 90 minutes. That's an hour and a half I'm not copying and pasting between browser tabs. Over a month, that's 6 hours. Over a year, that's 78 hours. Almost two full work weeks reclaimed from copy-paste.

And that's one workflow. I have five running now. The compound effect is real.

I wrote about this same idea with morning report automation. Every piece you automate frees up time to automate the next piece. n8n accelerated that cycle because adding new workflows takes minutes instead of hours of coding.