I've been running automations for clients for years. Zapier was always my go to. Easy to set up, plenty of integrations, and clients liked seeing those little Zaps running in the background.
But six months ago, I hit a wall. One client's account was costing them $847 a month just in Zapier fees. They had 15 multi step workflows connecting HubSpot to their custom WordPress forms, triggering AI summarization via OpenAI, then pushing data back into HubSpot and Slack. The task consumption was insane. Every API call, every formatter step, every delay counted as a task.
I started looking at alternatives.
What I Tried First
Make.com (formerly Integromat) was cheaper per operation, around $29 for 10,000 ops versus Zapier's tiered pricing. I moved two clients over. The interface took me about a week to get comfortable with. More powerful than Zapier in some ways, especially for handling arrays and complex data structures. But I still had the same fundamental problem. I was paying per operation, and my clients were running thousands of operations daily.
I also tested n8n, the self hosted option. Installed it on a DigitalOcean droplet, $24 a month for 4GB RAM. Worked fine for simple workflows. But when I tried to replicate the HubSpot to OpenAI to Slack workflow, I ran into timeout issues. The community support is good, but you're on your own for troubleshooting. I spent two days tracking down a webhook parsing bug that turned out to be a version mismatch between n8n 0.228 and 0.231.
Building My Own Solution
I didn't want to reinvent the wheel, but I needed something predictable. I built a lightweight workflow engine using WordPress as the base (I know it inside out) and wrote custom integrations in PHP for the CRMs I work with most: Keap, GoHighLevel, HubSpot.
Here's what it does:
- Catches webhooks from CRM platforms and stores them in a custom post type
- Runs scheduled tasks via WP Cron (with a proper server cron trigger, not the default wp-cron.php behavior)
- Calls OpenAI API for summarization or data extraction, with retry logic for rate limits
- Pushes results back to the CRM or sends Slack notifications via their webhook API
Total cost for that same client now: $240 a month. That's $120 for a managed WordPress host (Kinsta) shared across three clients, $100 for OpenAI API usage, and $20 for miscellaneous API calls. They're saving about $600 a month.
What Doesn't Work
This isn't a visual builder. If a client wants to tweak a workflow, I have to edit code. That's fine for my retainer clients, but it's not something I can hand off to a marketing team.
Also, error handling is on me. Zapier tells you exactly where a Zap failed and lets you replay it. I had to build my own logging and replay system, and it's still not as polished. I use a custom admin panel that shows failed tasks with a retry button, but there's no historical trend analysis yet.
The other limitation: I'm tied to the platforms I've built integrations for. Adding a new CRM means writing a new API client. That's about four hours of work per platform, which is manageable but not instant.
Takeaway
If you're running high volume automations and you're comfortable writing code, building your own workflow layer can save serious money. But if you need a visual interface or you're constantly adding new integrations, stick with the SaaS tools. They're expensive, but the flexibility is worth it for some use cases.
