← All work
n8nCASE STUDY

Self-Hosted Automation Hub

A 30-person agency was paying for six SaaS automation tools that barely talked to each other. We replaced them all with a single self-hosted n8n instance — owned infrastructure, zero per-task fees.

Agency60+ workflows on one platform
ClientDigital Agency
IndustryMarketing & Agency
Platformn8n (self-hosted)
Timeline4 weeks
RoleAutomation Architect
n8nDockerPostgreSQLRedisAWS EC2
60+
Workflows orchestrated
$0
Per-task fees
6→1
Tools consolidated
99.9%
Uptime (90 days)
01

Client overview

A 30-person digital marketing agency running client reporting, lead handoff and internal ops automations across a patchwork of vendor tools, billed per-task and per-seat, with no single person owning the full picture.

02

The challenge

The agency was running Zapier, Make, Integromat, a custom Node script on a fragile VPS, and two vendor-specific automation tools. Monthly costs were climbing, task limits were being hit in busy months, and when anything broke it was unclear which tool was responsible. The team had no unified visibility into what was actually running.

03

Objectives

04

The solution

01

Infrastructure setup

Provisioned an AWS EC2 instance (t3.medium), deployed n8n via Docker Compose with PostgreSQL for persistence and Redis for queue mode. Configured an Nginx reverse proxy with SSL, daily backups to S3 and CloudWatch alerting.

02

Workflow migration

Audited all 60+ existing automations across six tools, categorized by complexity and dependency, and migrated in three sprints — simple webhooks first, then multi-step sequences, finally the fragile custom Node script rewritten as maintainable n8n Code nodes.

03

Error handling & observability

Built a global error-handler workflow that catches failures, logs to PostgreSQL and posts a structured Slack alert with the workflow name, the node that failed and the last three execution inputs. Every production workflow has retry logic configured.

04

Documentation & handover

Tagged every workflow by team and purpose. Wrote an internal runbook covering deployment, backup/restore, credential management and how to build new workflows. Ran a two-hour training session with the ops team.

05

Technical architecture

AWS EC2 (Docker host)n8n (queue mode)PostgreSQLRedis queueNginx + SSLS3 backupsCloudWatch alertsSlack error reporting
06

Key features delivered

07

Results

08

Challenges

01

Migrating 60+ live workflows without downtime

Cutting over all at once risked breaking client-facing automations mid-campaign. Sequencing the migration in three sprints by complexity and dependency meant the riskiest workflows moved last, once the platform had already proven itself on simpler ones.

02

A single-point-of-failure VPS script

One custom Node script running unmonitored on a personal VPS had become critical infrastructure nobody wanted to touch. Rewrote it as version-controlled n8n Code nodes with the same error-handling and retry logic as everything else, removing the "please don't restart that server" risk.

03

Correct queue-mode configuration

Running n8n in queue mode with Redis needed care to avoid race conditions on concurrent executions — validated under load with the busiest existing workflows before fully cutting over.

09

Lessons learned

Final outcome

The agency went from six billed tools and an unmonitored VPS script to one owned, documented automation platform the team runs themselves. Nothing here is rented — every workflow, credential and failure log lives on infrastructure they control.

Next case study
Zapier

Lifecycle Automation Suite

Need something like this built?

Need help implementing n8n, AI automation or custom integrations? Tell me where the friction is — I'll map the system and hand it back clean.