Month-end used to mean a week of hand-matching payouts and chasing receipts. Here the droid reconciles the ledger, chases approvals and receipts in Slack and email, and hands the controller a close that is already down to the exceptions.
Does
Runs the month-end close
Where
B2B SaaS finance, 3-person team
Works inside
QuickBooks, Stripe
Reaches people on
Slack, email
Close time
6 days → 1.5
01The situation
A week of late nights, every month.
Month-end was a week-long grind. The team matched Stripe payouts to invoices by hand, reconciled bank feeds line by line, and spent days chasing managers for expense approvals and employees for missing receipts.
Close always slipped, and the controller ended up doing the real review work at 11pm, long after the easy 90% should have already been cleared.
02How it works
How it got handled.
Rather than throw bodies at close, the team handed the whole month-end over. On the first business day Unify kicks off on its own, reconciles the easy 90%, chases the stragglers, and brings the controller in only for the calls that truly need judgment.
TASK#207Month-end closescheduled
schedule
First run 08:30, first business day
repeat
Every month · until the books post
scope
Every line in the period ledger
runs as
A contained action per close (Jan, Feb, Mar…)
memory
Per-vendor & per-employee summary, carried month to month
Created once, in plain language: “on the first business day each month, reconcile the books and chase what’s missing.” Unify turned that into a standing task: no cron expression, no glue code, no extra service to babysit.
FIG. 1The durable task, exactly as it exists in the runtime.
Every month it kicks itself off and walks the same close:
01Close kicks offDay 1, 08:30 each month
02Close startsJust for this run
03Pulls the booksLedger + Stripe activity
04Reconciles the 90%Auto-clears clean lines
05Chases stragglersApprovals + receipts
06Clean line?Clean → clear it · Odd → queue for review
07Drafts the closeAccruals + summary to post
…then the next run picks it up, two hours later.
FIG. 2The loop each run walks.
03Ongoing handling
How it ran, kickoff to close.
Here’s the close as it actually unfolded, stage by stage, down to how it reached for each app. Only the exceptions ever made it to a human.
Day 1 · 08:30kickoff
Kicked itself off and pulled everything that needs matching into one place before the team had coffee.
Day 1 · 09:10reconcile
Cleared the 90% that should just match, leaving only what actually needs a person.
Day 1 · 11:30chase
Chased the stragglers that usually eat days: approvals in Slack, receipts by email.
Day 1 · 15:00flagescalated
Caught the judgment calls, a double-posted bill and a miscode, and queued them with the evidence.
Day 1 · 17:30draft
Drafted the recurring accruals and journal entries and handed over a one-screen close summary.
Day 2 · 10:00books posted
Controller cleared the three exceptions and posted, a day and a half in instead of a week of late nights. Summary posted to the finance channel.
Run events and the controller’s replies land on the left. Watch each one get worked end to end across the books, turning to a human only for the exceptions.
The result
What changed, by the numbers.
6 days → 1.5to a posted close
92%of lines auto-reconciled
Every runends in a one-screen summary to review and post
An illustrative workflow built from real product mechanics. The connected apps, the schedules and the run handling are how a droid actually works; the companies, the people and the figures are composites rather than a customer's numbers.
Try this workflow
Run this workflow yourself.
Copy the brief below and paste it into Unify. It’ll walk you through the prerequisites, connect what it needs, and stand the workflow up with you.
Workflow brief
I'm the controller on a small B2B SaaS finance team, and month-end close eats a week: matching Stripe payouts to invoices by hand, reconciling line by line, chasing managers for approvals and employees for receipts. The real review work doesn't start until late, after the easy 90% should already be cleared.
Run month-end close. Apps/channels: QuickBooks (ledger), Stripe (payouts, fees, refunds), Slack (chasing approvals), email (chasing receipts).
Kick off on the morning of the first business day of each month. Each run:
1. Open the period ledger in QuickBooks and pull the month's Stripe payouts, fees and refunds.
2. Match against the ledger and auto-clear the lines that cleanly reconcile.
3. Chase the rest, so Slack managers for approvals, email employees for receipts, follow up until they're in, and recode anything miscoded.
4. Flag exceptions (duplicate bills, unusual amounts, wrong GL codes) and queue them for me with source docs attached.
5. Draft the recurring accruals and journal entries, then hand me a one-screen close summary to review and post.
Only the exceptions should reach me; clear the clean 90% yourself.