A 10-person marketing agency in Austin cut their monthly invoicing workload from roughly four hours to under 45 minutes by connecting three tools: QuickBooks Online, Make (formerly Integromat), and OpenAI’s GPT-4o API. No custom software, no developer on staff. Here’s exactly how they did it, what broke along the way, and whether the same stack makes sense for your business.
The Problem That Made This Worth Solving
The agency — a content and paid media shop with eight full-time employees and two contractors — was billing between 15 and 22 clients a month. Not a huge volume. But their invoicing process was a mess of manual steps: pulling time logs from Harvest, copy-pasting line items into QuickBooks, writing custom payment reminder emails for clients who were 7, 14, and 30 days overdue, and then chasing down internal approval from the owner before anything went out.
The owner, who I spoke with in early 2025, estimated she was spending 90 minutes per week just on reminder emails alone. That’s not counting the actual invoice creation. The real killer was context-switching — she’d be mid-client-strategy and get pulled into “did we send the 14-day reminder to Client X?” That’s the kind of interruption that’s hard to quantify but very easy to feel.
The Stack They Actually Used
Harvest for Time Tracking (The Source of Truth)
Harvest starts at $12/seat/month and is genuinely one of the cleaner time-tracking tools for agencies. It has a solid API, which matters a lot here. The limitation: Harvest’s native invoicing is basic. You can push time entries to an invoice, but the output isn’t smart — it won’t group line items by project phase, flag budget overruns, or customize language per client. That’s where the automation has to pick up the slack.
Make for the Automation Backbone
Make (make.com) is the connective tissue of this whole workflow. Think of it as a more powerful, more affordable Zapier — scenarios (Make’s word for automations) can handle branching logic, iterators, and error handling that Zapier’s basic plans simply can’t. The agency uses Make’s Core plan at $9/month, which gives them 10,000 operations per month. For 20-ish invoices with a few steps each, that’s plenty of headroom.
The honest downside: Make’s interface has a steeper learning curve than Zapier. The first time you hit a “bundle” error at 11pm because a client’s name had a special character in it, you’ll question your life choices. Budget a weekend to get comfortable with it before you go live on anything mission-critical.
OpenAI API for the Writing Work
This is the part most people overlook. The agency uses GPT-4o via the API — not ChatGPT Plus, but the actual API — to generate the payment reminder emails. Each reminder is personalized: it pulls the client name, invoice number, amount due, and days overdue from the Make scenario, then GPT-4o writes a reminder that matches the agency’s tone (warm but firm, the owner’s words).
API costs here are genuinely small. At current GPT-4o pricing, generating a 150-word reminder email costs less than a cent. Even if they send 60 reminder emails a month, that’s maybe $0.40 in API costs. The bigger cost is the one-time setup — writing a good system prompt took the owner about two hours of testing to get right.
The Workflow, Step by Step
Here’s the actual sequence, as close to verbatim as the owner walked me through it:
- Step 1: On the last business day of the month, a scheduled Make scenario fires and pulls all uninvoiced time entries from Harvest via API for the current billing period.
- Step 2: Make groups the entries by client and project, calculates totals, and formats them into a structured JSON payload.
- Step 3: That payload gets passed to the OpenAI API with a prompt that says, essentially: “Here are the line items. Write a professional invoice summary note for this client, referencing the project names and total. Keep it under 60 words. Tone: direct and friendly.”
- Step 4: Make creates a draft invoice in QuickBooks Online using the QBO API, attaching the GPT-4o-generated summary note as the invoice memo.
- Step 5: An approval step sends the owner a Slack message with the invoice details and two buttons: Approve or Edit. Only on Approve does Make trigger QuickBooks to send the invoice to the client.
- Step 6: A separate Make scenario runs every morning and checks QBO for any invoice that’s 7, 14, or 30 days past due. It calls GPT-4o with the appropriate context (which overdue tier, client name, amount) and sends the reminder email directly from the owner’s Gmail via the Gmail API.
The owner still reviews every invoice before it goes out. That human checkpoint is intentional and smart — she catches things like a client who mentioned a scope change in a Slack message that Harvest doesn’t know about. The automation handles the grunt work; she handles the judgment calls.
What Broke and What They Changed
Two things went wrong in the first month.
First, the Harvest API occasionally returns time entries with null project IDs if a timer was started without being assigned. Make’s scenario would fail silently on those. The fix was adding a filter step in Make to flag any entry missing a project ID and route it to a separate Slack alert instead of crashing the whole run.
Second, a few GPT-4o-generated reminder emails were too casual for two longtime clients who had more formal relationships with the agency. The owner added a simple client-tier field to a Google Sheet that the Make scenario references — “formal” or “standard” — and passes that as additional context in the GPT prompt. Simple fix, took 20 minutes.
The Real Numbers
After three months of running this workflow, here’s what the owner reported:
- Invoice creation time: down from approximately 3 hours/month to about 35 minutes (mostly the approval review).
- Reminder email time: down from 90 minutes/week to zero — fully automated.
- Days Sales Outstanding (DSO): dropped from an average of 34 days to 26 days. Consistent, timely reminders actually get paid faster. That’s not a surprise, but it’s real money — for an agency billing $80K/month, shaving 8 days off DSO is meaningful cash flow improvement.
- Monthly tool cost added: Make Core at $9 + OpenAI API usage averaging $2-3. Call it $12/month all-in on top of what they were already paying for Harvest and QuickBooks.
Who This Workflow Does and Doesn’t Work For
This setup shines for service businesses billing on time — agencies, consultants, freelancers who’ve grown past the point where manual invoicing is sustainable. If you’re billing more than 10 clients a month and spending more than two hours a month on invoicing admin, the math is pretty obvious.
It’s less useful if your invoicing is highly variable — lots of one-off projects with custom pricing structures, retainers with complex milestone triggers, or clients who require purchase order matching. Those scenarios need more conditional logic in Make (doable, but the build time goes up significantly) or a more purpose-built accounts receivable tool.
It also assumes you’re already using tools with APIs. If you’re running invoices out of a Word template and tracking time in a spreadsheet, the entry cost here is higher — you’d need to migrate before any of this works. That migration is probably worth it anyway, but don’t underestimate the friction.
If you’re thinking about how AI fits into other parts of your business operations, the patterns here — API-based data retrieval, AI-generated text with human review, conditional routing — show up in a lot of places. The same logic applies to how teams are using AI to automate customer service workflows, and you’ll find similar approval-checkpoint thinking in solid AI-driven sales automation setups too.
My Honest Recommendation
Start with the reminder emails. Don’t try to automate everything at once. Set up a single Make scenario that watches your QuickBooks (or FreshBooks, or whatever you use) for overdue invoices and fires a GPT-generated email at 7 days past due. That’s maybe 3-4 hours of setup work, it has a clear ROI, and it’ll teach you how Make and the OpenAI API actually behave together before you build anything more complex on top of them.
Once that’s running cleanly for 30 days, add the invoice creation automation. Then add the approval step. Build it in layers so you understand what each piece does. The agency I spoke with tried to build the whole thing at once and spent a frustrating two weeks debugging. When they rebuilt it in stages, they were done in four days.
Tools change fast — if you’re tracking what’s new in AI tooling that might affect this kind of workflow, it’s worth keeping an eye on recent developments. The AI news roundup from July 1, 2026 covers some relevant shifts in how AI APIs are being priced and packaged that could affect your build cost.
FAQ
Do I need a developer to build this workflow?
No, but you need to be comfortable with APIs at a basic level — specifically, knowing how to authenticate with an API key and read a JSON response. Make has good documentation and a large user community on Reddit and YouTube. If you’ve ever built a multi-step Zapier workflow, you can build this.
Is it safe to send client invoices automatically without reviewing them?
I wouldn’t skip the review step, and neither did the agency in this case study. The approval checkpoint in Slack adds maybe 5 minutes to the whole process and catches the edge cases — scope changes, client-specific billing quirks, errors in time tracking — that automation can’t anticipate. Think of the AI as doing the drafting, not the deciding.
What if my clients use a vendor portal that requires manual invoice submission?
That’s a real limitation here. Make can fill out web forms via browser automation tools like Puppeteer or Bardeen, but it’s brittle and not recommended for something as important as invoicing. For clients with vendor portals, keep those manual and automate everything else. Most agencies find it’s only 2-3 clients out of 20 who require portal submission — still worth automating the rest.
This article was produced with the assistance of AI, and its featured image was AI-generated. We review for accuracy, but please verify critical details.



