← All standards
Open specificationDraftPublished October 2026Changelog

The Virtual Admin Build Standard

The whole office admin role for a builder or a trade, from the first call to the last chase, built from standards that already pass on their own and joined on one job record. Written so you can build it yourself.

Used by

  • Office Administrator
  • Office Manager
  • Construction Administrator
  • Operations Manager

9 min read · Published by AI Pathway

Using Claude? This standard installs as a skill. Guides for ServiceM8, Xero and Simpro.

What this is

An open build standard for the whole office admin role at a builder or a trade: taking the calls, keeping customers told, quoting, invoicing and chasing. Most of that already has a standard each. This one checks the places where they have to meet.

The core rule

Everything the admin does for a customer hangs off one job record. So when a customer complains on the phone at 10am, the invoice that was due to go at 3pm reads the complaint first, and waits.

What it does not do

It never hard-codes business hours, never sends an invoice or a chase past a complaint the desk took, never finds a job by the customer's name, and never gives the owner one list from the phone and another from the ledger.

The hard part

Not any one task. The after-hours desk and the daytime desk finding the same job, and a complaint said out loud on a call becoming something the invoice step can read. Those are the seams.

Mr Ayres rang on Tuesday morning to say the gutter was still leaking after the repair. The person on the phone wrote it down, kindly, in a note. At three o’clock the job was marked complete, the invoice went out, and he got a text saying the job was done. A month later the chase rang him about the invoice. Every piece of that worked. He is not a customer any more.

The role, as standards

  1. The two desks

    Client Desk by day, Booked After Hours outside your hours. Your hours decide.

    • call
    • hours
    • duplicate_of

    both write to

  2. The job record

    One job per customer, with its timeline and any open exception.

    • job_id
    • timeline
    • exception

    is read by

  3. The money path

    Quote Out, Invoice Out, Debtor Chasing, bound by Cash Seam.

    • quote_id
    • invoice_id
    • chase

    ends the day on

  4. The owner's list

    One list at the close, every open item with a name on it.

    • line
    • owner

    for a person

Read it downward. The two desks write to one job. Everything the money path does reads that job first. The arrows are what this standard checks; each box is its own standard.

Where the desk meets the money

  1. A call arrives at any hour.
  2. The business's own hours and holidays are read on the call and decide which desk answers: Client Desk by day, Booked After Hours outside them.
  3. Whichever desk answers finds the customer's open job before writing anything, so a customer who rings both desks has one job.
  4. The call is logged on the job's timeline.
  5. Was it a complaint or a dispute? If yes, it goes on the job as an exception owned by the person the business named for complaints.
  6. When the job is completed, the job-done message and the invoice both come off that one event and name the same job id.
  7. Is an exception open on the job? If not, the invoice goes and, when overdue, the chase, each logged on the timeline.
  8. If one is open, the invoice and the chase are held, and the hold is a line on the owner's one end-of-day list with its owner's name.
The filled diamond is the complaint: what the customer says on the phone becomes an exception on the job, owned by a person. The last branch is the hold, which ends the day on the owner’s one list.

Take the spec to Claude, ChatGPT or Copilot. The sentence to paste is one click away.

1. What this standard covers

A builder or a trade that wants the office admin role done, not five tools that each do a fifth of it. The role is two halves, and each half already has a standard:

  • Client Desk the phone in business hours, and the running-late, on-the-way and job-done messages.
  • Cash Seam the money path: the job written on the call, the quote, the invoice and the chase, one id through all of them.

Both pass on their own, and neither fails when the customer tells the desk something the money path needed to know. That is the gap. Every check below is about what crosses between the two halves: which desk answers, which job both desks use, the complaint that has to reach the invoice, the event both halves wake on, and the one list the owner reads at the end of the day.

What cannot meet it. Anything that cannot meet both halves. A job system with no API cannot be read by the desk or hand its job id to the money path, so the record that joins them does not exist. A business on Tradify can run the money path from the ledger and the transfer half of the desk, and a person joins them.

2. The records it keeps, in the shape your developer needs

Two small things the business sets, and one field on the job. Everything else already exists in Client Desk and Cash Seam.

For your developer. Show the fields for your developer
Hours                             # the business's own, read on every call
  - days[] (0 = Sunday), open, close
  - holidays[] ("YYYY-MM-DD")      # closed days are after hours

Owners                            # who owns what, set once
  - desk, complaint, invoice, chase

Job                               # the job system's record, from both halves
  - id, customer, phone, status
  - timeline[] { kind (call | update | invoice | chase), ref, at }
  - exception { reason, owner }    # a complaint taken on a call lands here

End-of-day list                   # one, published at the close
  - lines[] { ref (job_id), reason, owner }

A desk chosen with no read of the hours, a complaint that exists only in a call note, and a list line with no owner are the three defects this standard makes visible. Each half would pass with all three.

3. The checks, in order

The order follows a customer through the day. The hours decide who answers, both desks find the same job, what the customer says reaches the money before it moves, one event wakes both halves at completion, and everything ends on one timeline and one list.

  1. The business's own hours decide which desk answers, read at the time of the call. Whether a call is handled by the daytime desk (Client Desk) or the after-hours desk (Booked After Hours) is decided by the hours and holidays the business set, read when the call arrives. Nothing hard-codes nine to five, and a public holiday the business closes on is after hours.
  2. A customer who rings both desks has one job. A call at night and a call the next morning from the same number about the same thing make one job. Whichever desk answers second attaches to the open job with duplicate_of set, rather than writing its own.
  3. A complaint or dispute taken on a call stops the invoice and the chase. When a caller complains about the work or disputes what they owe, the desk writes it onto the job as an exception, owned by the person the business named for complaints. The invoice step and the chase step read the job first and hold while that exception is open.
  4. The job-done message and the invoice come from the same event and name the same job. Job completed is one event. The completion message to the customer and the invoice are both woken by it and both carry the job id it named, read by that id. Neither finds its job by the customer's name.
  5. Every call, message, invoice and chase is on the job's timeline. The job is the one record of the customer. Every call either desk takes, every status message, the invoice and every chase are written to that job's timeline, so whoever picks up the phone next, person or agent, sees all of it in one place.
  6. One list at the end of the day, across both halves, with an owner on every line. At the close of business the build publishes one list: every open exception, callback and held invoice from both the desk and the money path, each with the person who owns it as the business named them. Nothing open is missing and nothing is unowned.
  7. It survives the builder. Someone other than the builder can explain what it does, and it runs on an account the business owns.
  8. The pass test passes. On the business's own number, job system and ledger: ring after hours, ring again the next morning and complain about the work, then mark the job complete. One job exists, the morning call is attached to it, the complaint is an exception with an owner, no invoice or chase goes out on it, and the owner's end-of-day list shows it.

4. The role, task by task

What a good office admin does for a builder or a trade, and where each piece is specified. If you are hiring for the role, this is the job description. If you are building it, this is the reading list.

The taskWhere it is specified
Answer the phone in business hoursClient Desk
Answer the phone after hours and write the jobBooked After Hours
Tell the customer: running late, on the way, all doneClient Desk
Put the right person at the right houseDispatch Board
Draft the quote from the jobQuote Out
Chase the open quoteFollow-Up
Invoice the day the job finishesInvoice Out
Chase payment off the live ledgerDebtor Chasing
One job id from the call to the chaseCash Seam
The desk and the money on one recordVirtual Admin (this standard)
Being the person the customer knowsA person. Not a standard, and not something to automate.

The last row matters. The reason a good admin is worth having is that customers deal with one person who knows their job. Software can make sure that person, or anyone covering for them, sees the whole job in one place. It cannot be that person.

5. The order to build it in

  1. The step where the money leaks first. For most trades that is the after-hours call or the invoice that goes out a week late. Build that standard on its own.
  2. Cash Seam, as soon as a second money step runs, so the second step reads the first one’s job id.
  3. Client Desk, starting with the running-late message. It is the cheapest to build and it is the one that stops the most calls.
  4. This standard, last, once both halves are running. Its checks are the ones that only fail when both are live: the complaint that should have stopped the invoice, the caller who rang both desks.

6. What stays with a person

  • Every complaint and dispute, by the person the business named for complaints. The build stops the money; the person talks to the customer.
  • Every line on the end-of-day list, by its owner.
  • Setting the hours, the holidays and who owns what.
  • Being the person the customer knows.
  • Everything Client Desk and Cash Seam already keep with a person.

Facts that can change, and when we checked them

Checked as at 26 October 2026

Both desks run on Front Desk, which answers by day and after hours, and the money path on Recover, sold as Get Paid. No product of ours joins them on one record yet, so no end-to-end run of the whole role on a real tenant has been published, and the provider block below says scoped build.

Tradify has no public or partner API, confirmed in writing by their support on 10 April 2026.

Check these against the primary instrument before you rely on them, and store the date you checked beside the value rather than hard-coding it. This standard tells you the shape and where to look. It is not legal advice and it does not tell you that anything complies.

8. What your developer builds, and the step that needs care

No step of its own not to hand-roll. The live steps belong to the halves: the phone line on each desk, and the authenticated write into the job system and the ledger on the money path. What this standard adds is wiring: the hours rule, the complaint hold, the timeline and the list.

For your developer. Show the setup for your developer
provider:
  stub:       local.mock_admin_role
  production: none                       # scoped build, not a product

the live steps                       # each named on its own standard
  - both desks, day and after hours: Office Voice Front Desk, sold as
    Booked After Hours
  - the invoice draft and the chase: Office Voice Recover, sold as
    Get Paid

stays local                          # yours, and the standard
  - the hours, the holidays and the owners
  - the open-job lookup both desks share
  - the complaint as an exception the money path reads
  - the timeline, and the one end-of-day list

A vendor selling a virtual admin is usually selling a person, or a voice, or a dashboard. Ask them one thing: when a customer complains on the phone in the morning, what stops the invoice that afternoon?

The pass test. On the business’s own number, job system and ledger, not a sample. Ring after hours about a new problem. Ring again from the same phone the next morning, in business hours, and complain about the work. Then mark the job complete and let the end of the day run. Both recordings must open with the disclosure. The job system must hold one job, with both calls on its timeline and the complaint as an exception naming the complaints owner. The ledger must hold no invoice for it, and nothing may have been chased. The list the owner receives must name the complaint and its owner. A stub cannot pass this: its clock says whatever the runner sets and its two desks share memory by construction, so only the real line, the real job system and the real ledger prove the halves found each other.

9. A checklist to hold any build or supplier to

Hold a DIY build or a vendor to this. If a box is empty, it is not in production.

  • 1. The business's own hours decide which desk answers, read at the time of the call. Whether a call is handled by the daytime desk (Client Desk) or the after-hours desk (Booked After Hours) is decided by the hours and holidays the business set, read when the call arrives. Nothing hard-codes nine to five, and a public holiday the business closes on is after hours.
  • 2. A customer who rings both desks has one job. A call at night and a call the next morning from the same number about the same thing make one job. Whichever desk answers second attaches to the open job with duplicate_of set, rather than writing its own.
  • 3. A complaint or dispute taken on a call stops the invoice and the chase. When a caller complains about the work or disputes what they owe, the desk writes it onto the job as an exception, owned by the person the business named for complaints. The invoice step and the chase step read the job first and hold while that exception is open.
  • 4. The job-done message and the invoice come from the same event and name the same job. Job completed is one event. The completion message to the customer and the invoice are both woken by it and both carry the job id it named, read by that id. Neither finds its job by the customer's name.
  • 5. Every call, message, invoice and chase is on the job's timeline. The job is the one record of the customer. Every call either desk takes, every status message, the invoice and every chase are written to that job's timeline, so whoever picks up the phone next, person or agent, sees all of it in one place.
  • 6. One list at the end of the day, across both halves, with an owner on every line. At the close of business the build publishes one list: every open exception, callback and held invoice from both the desk and the money path, each with the person who owns it as the business named them. Nothing open is missing and nothing is unowned.
  • 7. It survives the builder. Someone other than the builder can explain what it does, and it runs on an account the business owns.
  • 8. The pass test passes. On the business's own number, job system and ledger: ring after hours, ring again the next morning and complain about the work, then mark the job complete. One job exists, the morning call is attached to it, the complaint is an exception with an owner, no invoice or chase goes out on it, and the owner's end-of-day list shows it.
  1. 1

    Hold the build to the checklist

    The checks in this standard are what a working build looks like. Implement it yourself, hand it to a developer, or hand the page to an AI with the button below.

  2. 2

    Do not hand-roll

    There is no product for this step. Highest option: none. Checklist plus a build.

  3. 3

    If you are stuck

    Exceptions, three systems, a team that will not maintain a Zap, or an owner who wants it done. We implement when it has to survive the business.

Related reading

Want the whole thing by email?

This paper, plus the rest of the library. One click to stop them.

Run these checks yourself

Every check on this page is published as structured data. This prints them with what to inject, what to assert, and which ones can be proved on your own machine rather than against the live thing.

npx @aipathway/conformance show virtual-admin-build-standard

Free and open source, CC BY 4.0. The checks are fetched from this page rather than bundled, so a correction here reaches you without a release, and you cannot end up conformant against a stale copy. The raw JSON is there if you would rather wire it into your own harness, and the package shows how to drive your build through the ports.

Built it, and one check failed?

Tell us which one. You have already read the standard and tried it, so the answer is a fixed price to finish that step, not a call to work out what you need.