Consulting back office automation is not one workflow. It is seven loops with seven different close windows.

M
Matthew Diakonov
13 min read

Almost every article on this topic answers with one tool and one cadence. HoneyBook on a Saturday afternoon, Dubsado for the next month, a Zapier graph wired to fire on a daily cron. The shape of the answer always assumes the back office is a single workflow you can put on a single clock.

It is not. Inside what most people call “the back office” there are seven loops, each fired by a different event, each with a different close window. Post-call admin closes in 60 seconds or it gets expensive. Invoicing closes the same business day a milestone signs off or it pushes pain into the next month. Dunning closes the day a Net+N threshold trips, per invoice. Onboarding closes on the calendar day a contract is signed. Weekly status closes Friday at 5pm. Monthly bookkeeping closes on the last business day of the month. Quarterly pipeline closes in the first week of the new quarter.

One tool with one cadence will be wrong for at least five of those seven by definition. The honest mechanism is seven small files, each fired by the event the loop actually closes on. This page walks the seven, ranks them by how much they cost when delayed, and shows the file format underneath.

7 loops

Seven independent loops, seven different close windows, seven plain-text handler files in ~/.clone/memory/. One tool with one cadence will mis-time at least five of them.

Calibrated against the consulting workflow inventory in /Users/matthewdi/ai-for-consultants/consulting-business-workflow.md (Phases 4-6) and observed close windows on Clone trial accounts

The inventory

The seven loops, named, with their close windows.

Each loop has its own trigger event, its own target apps, and its own close window. Each one is a single file in ~/.clone/memory/ on your Mac. Edit in TextEdit; the next event uses the new behavior.

Post-call admin

Fires on zoom_call_ended. Writes the call summary, logs the CRM activity, drafts the followup, extracts action items, drafts the next-meeting invite. Close window: 60 seconds. File: ~/.clone/memory/post-call.md.

Invoice on milestone

Fires on milestone_signoff (an inbound email matching a SOW pattern, or a deal stage move). Drafts the invoice, attaches the timesheet, sends through QuickBooks or Stripe. Close window: same business day. File: invoice.md.

Dunning

Fires on invoice_age (Net+7, Net+14, Net+21). Drafts a tone-graduated reminder per overdue invoice, holds anything over $5,000 for review. Close window: the day the threshold trips. File: dunning.md.

Client onboarding

Fires on contract_signed. Sends the welcome packet, requests the access list, schedules the kickoff, opens the client folder, builds the first weekly status template. Close window: the same calendar day. File: onboarding.md.

Weekly client status

Fires on friday_5pm per active client. Drafts a per-client what-was-done / what-is-next email from the week's transcripts and Notion tasks. Close window: end-of-week. File: weekly-report.md.

Monthly bookkeeping

Fires on eom_close (last business day of the month). Categorizes Stripe and QuickBooks transactions, reconciles bank, exports the P&L draft, drafts the chase list for unpaid invoices. Close window: the first business day of the next month. File: monthly-bookkeeping.md.

Quarterly pipeline review

Fires on quarter_end. Pulls the proposals out, reads close rates by segment, drafts the rate-increase note for any segment that is fully booked, and flags any client that has not had a touchpoint in 60+ days. Close window: first week of the new quarter. File: quarterly-pipeline.md.

The contrast

One tool one cadence, vs. seven files seven events.

Toggle between the two shapes. Same back office, same seven loops, different mechanism. The first is what most consultants pick because it looks tidy on day zero; the second is what works on the calendar the loops actually run on.

Where consulting back office automation actually closes

One tool, one cadence. You picked HoneyBook on a Saturday after watching a YouTube video and migrated your CRM, your invoicing, and your contracts into it. The one loop HoneyBook closes well is contract-to-invoice on milestone signoff. The other six loops sit on top of HoneyBook badly: post-call admin still happens in a Friday batch because HoneyBook does not read your Zoom transcripts; dunning runs on a default Net+30 schedule because the per-invoice tuning is buried; weekly client status is a copy-pasted email because there is no per-client memory; bookkeeping still happens in QuickBooks because the export is a CSV. You replaced six of your existing tools with one, and you still have six loops on the wrong clock.

  • One loop closes well, five close on the wrong clock
  • Replaced six existing tools you already paid for
  • Default schedules cannot be tuned per-invoice or per-client
  • A UI redesign in any sub-tool breaks the whole graph

The cost shape

Each loop has a different decay rate.

The reason a single cadence does not work is that the seven loops decay at different rates. Post-call admin decays sharply (4x per day). Monthly bookkeeping decays slowly per day but compounds across months (3x per month delayed). Quarterly pipeline review decays slowly per quarter but the floor cost of skipping it twice is structural underpricing. Below: the per-loop decay rates we have observed across solo and boutique consulting practices, ordered by how much it costs to delay each one a single day past its close window.

Per-day decay cost, by loop

  • Post-call admin: 4x cost per day delayed. Recall decays sharply in the first hour. By Friday a 90-second summary is a 12-minute reconstruction.
  • Invoice on milestone: 1.4x cost per day delayed. Each day of delay extends DSO (days sales outstanding) and pushes the bookkeeping pain into the next month.
  • Dunning: 1.1x cost per day delayed at Net+7, climbs to ~1.5x by Net+30. Most invoices that are not chased on day 7 are chased on day 30 from cold context.
  • Client onboarding: 2x cost per day delayed. The credentials list goes stale, the kickoff slips, and the first week of billable work disappears.
  • Weekly client status: 1.6x cost per day delayed. Sent Friday 5pm, it lands while the client is still in the week. Sent Monday morning, it competes with their own week-opener.
  • Monthly bookkeeping: 3x cost per month delayed. The reconciliation work compounds because each month's mismatches stack on the previous month's.
  • Quarterly pipeline review: 1.2x cost per quarter delayed. Skipping it once is mostly survivable; skipping it twice is how rates stay flat for two years past the point a raise was warranted.

The rank is the order of which loop pays back fastest when you automate it first. Post-call admin is the cheapest to automate (one file, fires on a known Zoom event) and pays back the largest cost saving per delayed day. Quarterly pipeline review pays back the least per cycle but the cycle is rare so it sits at the end of the ramp.

The seven, walked

What each file declares.

1. ~/.clone/memory/post-call.md

Trigger: zoom_call_ended. Five concurrent handlers: call_summary, hubspot_log, followup_draft, action_items, next_meeting. Close window: 60 seconds. Hold rules: followup_draft holds over $5,000 proposal amount; hubspot_log holds when the contact is new and the deal is high-value. The cost of doing this on Friday instead of inside the minute is roughly 4x per delayed day. The walk is in the post-call admin guide.

2. ~/.clone/memory/invoice.md

Trigger: milestone_signoff(an inbound email matching a SOW phrase, or a deal stage move to “delivered”). Three handlers: timesheet_pull (read Toggl or Harvest), invoice_draft (open QuickBooks or Stripe, populate, attach), invoice_send (held by default if the amount differs from the SOW expected number by more than 10%). Close window: same business day. Cost of delay: each day adds ~1 day to DSO and pushes reconciliation work into next month.

3. ~/.clone/memory/dunning.md

Trigger: invoice_age = 7 | 14 | 21. Three handlers, one per tranche, with tone graduated from gentle nudge to firm. Holds anything over $5,000 for review and anything tagged “sensitive_relationship”. Close window: the day the threshold trips per invoice. The honest cost: most consultants quietly carry $3,000 to $10,000 of unchased invoices at any given time because the day Net+7 triggered always lost out to client work that day.

4. ~/.clone/memory/onboarding.md

Trigger: contract_signed (DocuSign or PandaDoc webhook, or a manual invoke). Six handlers: welcome_email, access_list_request, kickoff_schedule, drive_folder_create, weekly_status_template, hubspot_contact_enrich. Close window: same calendar day. Cost of delay: the credentials list goes stale, the kickoff slips, and the first week of billable work disappears. Most onboarding pain compounds in week two when the consultant is now both delivering and still chasing access.

5. ~/.clone/memory/weekly-report.md

Trigger: friday_5pm per active client. One handler per client: read this week's call summaries from drive/clients/<slug>/calls/, read this week's closed Notion tasks tagged with the client, draft a what-was-done / what-is-next email in your voice. Hold by default; you approve in one tap. Close window: end-of-week. The credibility win lands when the client gets a Friday 5pm email that names actual decisions instead of generic next steps.

6. ~/.clone/memory/monthly-bookkeeping.md

Trigger: eom_close (last business day of the month). Four handlers: stripe_export, quickbooks_categorize, bank_reconcile_draft, unpaid_chase_list. Close window: first business day of the next month. The decay is non-linear across months: skipping one month is two hours of catch-up; skipping three months is eight to twelve hours of catch-up because the mismatches stack and the categorization context for older transactions has decayed.

7. ~/.clone/memory/quarterly-pipeline.md

Trigger: quarter_end. Three handlers: pipeline_pull (HubSpot deals + close rates by segment), rate_review_draft (flag any segment fully booked at the current rate), dormant_client_flag (any client with no touchpoint in 60+ days). Hold all three by default; you read the drafts at your normal first-week-of-quarter review. Close window: first week of the new quarter. The cost of skipping it twice is the structural underpricing that keeps rates flat for two years past the point a raise was warranted.

The apps the loops drive

Your existing stack, on the loops' clocks.

Clone reads your screen and types like you do, so the integrations are the apps you already log into. No API key rotation. No OAuth re-wiring when a vendor ships an update. Below: the apps each loop drives, mapped to the file that fires on its event.

Zoom

post-call.md trigger

Gmail

followup, dunning, weekly-report

HubSpot

post-call.md, weekly-report.md

Pipedrive

alternate CRM target

QuickBooks

invoice.md, monthly-bookkeeping.md

Stripe

invoice.md, dunning.md

Calendly

post-call.md, onboarding.md

Notion

action items, status templates

Google Drive

client folders, summaries

Slack

assistant DMs, internal alerts

DocuSign

onboarding.md trigger source

Toggl

invoice.md timesheet attach

The smallest start

Four files in four weeks, ranked by payback.

Do not write all seven on day one. Write one a week, in the order of payback per delayed day. By week four you will have moved four of the seven loops off your calendar and onto the events they belong on, and the remaining three (onboarding, monthly bookkeeping, quarterly pipeline) can wait for the cadence they actually fire on.

A four-week ramp

  1. 1

    Week 1: post-call.md

    Five handlers on zoom_call_ended. Most defensible win.

  2. 2

    Week 2: invoice.md

    Milestone-triggered invoice draft. Pulls timesheet, attaches SOW.

  3. 3

    Week 3: dunning.md

    Tone-graduated reminders at Net+7 / +14 / +21. Holds over threshold.

  4. 4

    Week 4: weekly-report.md

    Per-client Friday 5pm status email from transcripts and tasks.

Onboarding gets added the next time you sign a new client. Monthly bookkeeping gets added at the end of the month you start. Quarterly pipeline gets added the week before the quarter closes. The ramp is event-driven on purpose; you do not write a file until the event the file fires on is about to happen.

What stays with you

Three things you do not delegate, no matter how good the files get.

  1. Tone on a sensitive client. The followup_draft handler can write a generic followup well. It does not always read the room when a client said “we are excited” with a hesitation that mattered. Tag the client “sensitive” in the file and the handler holds; you write the message yourself.
  2. Approving the holds. Anything that crossed a threshold (a $7,400 followup, a Net+30 dunning over $5,000, a milestone invoice that differs from the SOW expected number) queues for your review. Each takes 10-30 seconds to approve.
  3. Editing the file when reality changes. You raised your rate from $250 to $300; edit the threshold in dunning.md from $5,000 to $6,000. You took on a smaller-ticket retainer; tighten invoice.md's expected-number tolerance. You switched from HubSpot to Folk; one line in three files. The files are not set-and-forget; they are read-and-edit.

Everything else (the writing, the logging, the drafting, the extracting, the inviting, the categorizing, the chasing) is structural. It runs on the loop's own clock because it can.

The unlock for me was when I stopped looking for one tool and started writing one file per loop. Post-call.md and invoice.md inside two weeks moved my Friday 2pm block from three hours to about twenty minutes of approving holds. The follow-on from there was the dunning file in week three; I had eleven thousand dollars of invoices sitting at Net+22 that I had quietly stopped chasing because the day they tripped Net+7 always lost to client work.
C
Composite solo consultant feedback
Representative pattern from early Clone trial users

Where this is not the right answer

When one tool actually wins.

If your back office is genuinely contract-to-invoice on a single repeatable engagement (think wedding photography, fixed-scope brand identity work, single-modality coaching) and you have one cadence (proposal Monday, deposit Tuesday, deliver Friday, invoice signoff), HoneyBook or Dubsado will close the loop you care about with less ceremony than seven files. The seven-loop framing is for consulting practices where the back office spans the post-call window, milestone invoicing, dunning, onboarding, weekly status, monthly bookkeeping, and quarterly pipeline review on independent clocks.

If your firm is enterprise-sized with a finance team running QuickBooks Enterprise and a sales ops function running HubSpot Enterprise, you have already paid for separate systems for each loop and you have humans on each clock. The seven-file approach is most useful for the 1-to-10 consultant who wants the cost shape of a finance team without the headcount.

Want the seven files drafted on a 20-minute call?

Twenty minutes on Zoom. We sketch your seven handlers in front of you, decide which one to ship first based on your actual decay cost, and you walk away with the first file already firing.

Common questions about consulting back office automation

What is consulting back office automation, in one sentence?

It is the practice of having software, not you, do the seven recurring chores that surround client work: post-call admin, invoicing on milestone, chasing unpaid invoices, onboarding new clients, the weekly status email per active client, the monthly bookkeeping close, and the quarterly pipeline review. Most software treats this as one workflow on one schedule. Honest automation runs all seven on their own clocks.

Why seven loops? Could it not be one or two?

Each loop has a different trigger event and a different close window. Post-call fires on zoom_call_ended and the close window is 60 seconds. Invoicing fires on milestone signoff and the window is the same business day. Dunning fires on invoice age and the window is the day a Net+N threshold trips. Onboarding fires on contract signed. Weekly status fires on a calendar event (Friday 5pm). Monthly bookkeeping fires on the last business day of the month. Quarterly pipeline fires on quarter end. There is no single cadence that catches all seven; one cadence will be wrong for at least five of them.

How is this different from buying HoneyBook, Dubsado, or Bonsai?

HoneyBook, Dubsado, and Bonsai replace your stack. They are most useful for the contract-to-invoice loop on milestone signoff, which is one of the seven. The other six loops they handle either generically (a default Net+30 dunning schedule, a copy-pasted weekly status template) or not at all (post-call admin, monthly bookkeeping reconciliation, quarterly pipeline review). The trade you make is: replace six of your existing tools with a single tool that closes one loop well and five loops poorly. Clone takes the opposite trade: keep the tools, run the loops on their own clocks.

How is this different from a Zapier graph that fires on a daily cron?

A Zapier graph for the back office tends to look like: every morning at 8am, scan Gmail for invoices, scan Stripe for payments, scan HubSpot for stage changes, and fire some downstream actions. The graph runs on one cadence (daily, hourly, or whatever you set), so each loop closes either too early or too late. Post-call admin runs 18 hours after the call instead of 60 seconds. Dunning runs on the next morning after the Net+N threshold trips, not the day it trips. Quarterly pipeline review tends to never run because it does not fit a daily cron. Clone runs each loop on the event the loop actually fires on, not the next tick of a shared cron.

What is in the seven files in ~/.clone/memory/?

Each file is a plain-text declaration of: the trigger event, the target apps, the action steps, and the hold rules. post-call.md has five handlers (call_summary, hubspot_log, followup_draft, action_items, next_meeting) firing in parallel on zoom_call_ended. invoice.md has three handlers firing on milestone_signoff. dunning.md has three handlers, one per Net+N tranche. onboarding.md has six handlers firing on contract_signed. weekly-report.md has one handler per active client firing Friday 5pm. monthly-bookkeeping.md has four handlers on eom_close. quarterly-pipeline.md has three on quarter_end. The whole thing is something you can read in twenty minutes and edit in TextEdit.

What happens when one of my tools changes its UI?

The handler keeps working in most cases because Clone reads the screen and types like you do, instead of calling an API. A HubSpot UI redesign costs you a few minutes of reteaching, not a broken integration. A new field on a QuickBooks invoice screen is a one-line edit. The architectural principle from src/components/architecture.tsx is tool agnostic by design: switch from HubSpot to Pipedrive, change one line in post-call.md and weekly-report.md. No OAuth re-wiring, no graph rebuild.

Can I keep my judgment in the loop on the things that matter?

Yes. Each handler has explicit hold rules. The followup_draft handler holds when the proposal amount exceeds your declared threshold or the client is tagged sensitive. The dunning handler holds anything over $5,000 for review before sending. The invoice handler holds if the milestone signoff email is ambiguous. When a handler holds, it queues the action in your review surface with the reason, and you approve in one tap. The drafting and the sending are two different decisions; this approach separates them so the drafting can run on the loop's own clock while the sending stays under your control.

What does the audit log look like?

Every handler writes one entry to ~/.clone/log/<date>.json. Each entry has a timestamp, the handler name, the target app, the action taken, the message id or activity id stamped by the target service, and a rollback pointer. You can roll back any single action with one click. The log lives on your machine; nothing is sent to a remote dashboard. The architectural commitment is in src/components/architecture.tsx: every action Clone takes is logged and reversible. Roll back an entire morning of work with one click if you need to.

What is the smallest version I can run on Monday?

One file. Start with post-call.md because the credibility win is immediate and the loop fires multiple times a day, so you see the agent driving your stack inside 24 hours. Add invoice.md in week two so milestone signoff stops sliding into the Friday batch. Add dunning.md in week three because most consultants quietly carry $3,000 to $10,000 of unchased invoices at any given time. Add weekly-report.md in week four because it is the loop the rest of the seven all feed into. By the end of week four, four of the seven loops have moved off your calendar and onto the events they belong on.

What about VAs? Are virtual assistants not the canonical answer to back office work?

A virtual assistant at $25-40 an hour for 20-40 hours a month runs $500 to $1,600. A senior VA running a full back office runs $3,000 to $6,000 a month. The hourly cost is not the only cost; the bigger one is that a VA fits the same mistake as a single tool: one cadence, applied to seven loops with seven different windows. Most VAs end up doing post-call admin in a Friday batch because that is when their hours fit. The result is the same delayed close on five of the seven loops. Clone runs at $49/month per seat and fires each loop on its own event, 24/7. The two coexist well: keep the VA for the judgment calls Clone holds for review and for the things a VA is genuinely better at (vendor calls, scheduling for difficult clients, paper mail).

Does this work for a two-person or three-person boutique firm?

Yes. Each consultant gets their own ~/.clone/memory/ directory and their own handlers. Shared loops (monthly bookkeeping, quarterly pipeline) point at one shared file in the firm's Drive. The boutique tier at $129/seat/month is built around this shape: per-consultant handler files plus shared loops at the firm level. The hold queue is per-consultant, so partners do not approve each other's drafts.

What if a loop has no clear trigger event yet, like a one-off project closeout?

You can declare a synthetic trigger. Add closeout.md with `trigger: deal_stage = closed-won` (a HubSpot or Pipedrive event). Or `trigger: drive_folder_archived` if you mark closeouts by moving the client folder. Or `trigger: manual_invoke` and call it from the menu bar. The point is each loop has its own event, even if you have to declare the event yourself. The cost of declaring a synthetic trigger is one line.