Skip to content
Datasmarts
Menu

From $500 to $50 a month: rebuilding an agency automation stack

a digital product agency

90%lower monthly automation cost, from $500 to $50
under 20 secondsresponse time, down from about 3 minutes
50+users on the email intelligence pipeline
300+emails classified and summarized daily

Challenge

The agency’s automation worked, and it was slowly becoming the problem. Everything ran on a hosted no-code platform: around $500 a month in operational cost, and roughly 3 minutes for a user to get a response. Three minutes is fine for a nightly job and unusable for anything a person is waiting on.

Cost and latency were symptoms of the same thing. Per-operation pricing meant every new workflow made the bill worse, and the platform’s execution model meant every new step made the wait longer. The stack had reached the point where doing more of what the agency wanted made both numbers worse.

Approach

We treated this as a build-versus-buy decision rather than a migration ticket. Hosted automation platforms earn their price when the workload is small and irregular. This workload was neither: it was steady, growing, and increasingly built around AI calls that the platform charged for by the operation and executed slowly.

So the plan was to move the orchestration to self-hosted n8n, and to move the parts that were really software into plain Python. The split matters. Workflows that a non-engineer should be able to read and adjust stayed as n8n workflows. Anything doing multi-stage NLP, API normalization or state management became Python, where it could be tested.

Solution

We migrated the stack and rebuilt two systems on top of it.

An email intelligence pipeline. A multi-stage NLP pipeline running GPT-4 and Gemini 1.5 Pro classifies and summarizes over 300 emails a day for more than 50 users, extracts actionable tasks, and writes structured records to Supabase at 80% accuracy. Triage that used to be manual is now a queue a person reviews rather than a queue a person builds.

A multi-tenant conversational scheduling agent. More than 20 active users manage Google Calendar in natural language from whichever messaging app they already use: Signal, Slack, WhatsApp or Telegram. Google Maps and Tavily Search are wired in for venue lookup and location resolution, so “book lunch somewhere near the office on Thursday” resolves to a real place and a real slot.

Underneath the agent sits a platform-agnostic messaging abstraction layer. Each channel API disagrees with the others about fundamentals, so the layer normalizes them into one conversational interface while keeping strict per-channel data isolation. Adding a channel is an adapter, not a rewrite.

Results

  • Operational cost fell 90%, from about $500 a month to about $50.
  • Response time fell from about 3 minutes to under 20 seconds.
  • 300+ emails a day classified and summarized for 50+ users, at 80% accuracy on the structured extraction.
  • 20+ active users scheduling in natural language across four messaging platforms.

The cost figure is the one the agency noticed first. The latency figure is the one that changed what they were willing to automate next, because a 20-second response makes conversational workflows worth building and a 3-minute response does not.

What made it hard

Message channels do not agree on anything. Two of them differ on identity, on delivery semantics, on how attachments work, and on what a conversation even is. The abstraction layer had to hide all of that from the agent without becoming a lowest-common-denominator interface that made every channel equally bad, and it had to keep tenants isolated per channel while doing it. That isolation requirement is what kept it from being a thin wrapper: a leak between two tenants on the same channel would have been worse than any outage.

The migration itself carried the usual risk of a rewrite, which is that the new system is 90% right and the missing 10% is the part someone depends on daily. We moved workflows across incrementally rather than in one cutover, which is slower to finish and much cheaper to be wrong in.

What the migration changed

  • Before

    1. Hosted no-code platform

      Every workflow, priced per operation, with channel logic repeated in each one

  • After

    1. Self-hosted n8n

      The same workflows, on infrastructure the client owns

    2. Python services

      The steps that were awkward to express as nodes

    3. Channel abstraction layer

      One interface in front of the messaging channels, so adding one is a config change

A hosted no-code platform running every workflow was replaced by self-hosted n8n with Python services, and a channel abstraction layer was added between the workflows and the messaging channels so a channel can be swapped without touching a workflow.

Next case study

under 2 minutes

to compile the weekly lead report, down from 5 hours

From 5 hours to under 2 minutes: a legal firm's lead report

a US legal services firm

Read the case study

Your process is probably on this list in some form

The reading that costs a person a day a week, the report nobody wants to compile, the questions that interrupt the same manager. Tell us which one is yours and we will tell you whether it is worth automating.