User guide
Everything from first sign-in to running a monthly close. Questions we haven't answered here go to support@numbersgame.xyz.
NumbersGame — User Manual
For: Bookkeepers, controllers, and CFOs using AI to work in their accounting system. Time to read: 15 minutes. Time to first AI-assisted close: under an hour.
1. What NumbersGame does
NumbersGame is a bridge between your accounting ledger and Claude (or ChatGPT). QuickBooks Online is fully supported. Xero is supported for reporting, searching, the common day-to-day writes and the bank feed, and is on for every firm — see 4.11 for exactly what works and what does not. After a five-minute setup you can ask Claude things like:
"Show me the P&L for Acme Coffee for May, then list the five largest expenses."
…and Claude actually answers — pulling live data from your books. With a bit more authorization, Claude can also write to them: create invoices, record bill payments, classify uncategorized transactions, draft journal entries for your review.
You stay in control. Claude shows you exactly what it's about to write to your books before it does. You confirm. You can revoke access at any time from your dashboard.
2. Get started in 5 minutes (speedrun)
If you already know the drill:
- Open https://app.numbersgame.xyz/signup → create an account → verify your email
- Pick a plan, enter a card, subscribe
- Install the NumbersGame package in Claude: open Set up → Package (
/app/setup) and follow the steps it shows for your firm. One install brings the NumbersGame connectors and the Finance Wizard. Then open the plugin's Connectors tab, connect NumbersGame MCP and authorize. No company is needed yet: the connection covers each company you connect next (§6.1) - Connect a company → authorize → you land on its onboarding screen (see 7.1), whose prompts you run in Claude, and it appears in your list
- Ask Claude: "What's the cash balance for [company name] today?"
Done. The rest of this manual fills in details, plus example workflows and a bookkeeper-flavored system prompt you can hand to Claude.
3. Setting up your account
3.1 Sign up
- Go to https://app.numbersgame.xyz/signup
- Enter your email + a password (10+ characters)
- Complete the Cloudflare bot check (usually invisible — just click Create account)
- Check your inbox for a verification email. Click the link.
Until you have confirmed your email, Connect for QuickBooks, Xero or Slack does not connect anything: you are brought back to the dashboard, and the banner at the top says to confirm your email first, names the address we sent the link to, and can resend it.
Tip: Use your work email. Notifications about billing and account activity go there.
3.2 Create your firm
After verifying, you'll land on a "Create firm" screen.
- Firm name — what shows up in invites and Stripe receipts. Examples: Smith & Associates CPAs, Acme Bookkeeping.
- Slug — the short URL-friendly version. Used in data exports and audit logs. Auto-filled from the name; you can tweak it.
Click Create firm and you're in.
3.2a Finding your way around
New firms open on a menu down the left-hand side. Companies (with Parent companies, and Banks and Automations where they are switched on for your firm), Set up (Connector, Package, Project files, Prompt catalog, Prompts & instructions, Custom Skill, Firm Settings) and How to Use hold every page. When you open a company, the menu lists its sections — Profile, Rules, Vendor mappings, Tasks, Firm instructions, Reports, Settings, Access, Connection and so on — so each is one click away.
Your account menu is at the bottom left: your email, firm and role, with the light/dark switch beside it. It holds Team, Security, Compliance, Billing, Usage, Audit log, Help and What's new. Press ⌘K (Ctrl+K on Windows), or click Jump to… at the top of the menu, to go straight to any company or page.
If you prefer the older menu bar along the top, open the account menu and choose Use the classic menu. Try the new navigation in the classic account menu brings the left-hand menu back. Every page and permission is the same either way; on the classic menu the account menu is the user icon at the top right.
Before your email is confirmed and your firm has a plan, the Prompt catalog, Prompts & instructions, report templates and Experts are a preview: you see what is there (names, categories, one line on each) and a panel naming the one step that opens the rest, first confirming your email, then choosing a plan. The Finance Wizard skill waits for the same two steps: Setup shows the install steps, but the download opens only then. Your own records (companies, project files, settings, your firm's own skill instructions, the firm export) are never locked.
3.3 Add a passkey (recommended)
A passkey lets you sign in with Touch ID, Face ID, Windows Hello, or a hardware security key — no password, no codes, no phishing risk. Set one up once and your laptop or phone is your login.
- Open the account menu (bottom left; the user icon at the top right on the classic menu) → Security
- Click Add passkey
- Give it a label (e.g. Work MacBook)
- Your browser pops a system dialog → confirm with your fingerprint / Face ID / PIN
- The passkey shows up in your list
Repeat on each device you'll sign in from (phone, tablet, second laptop). You can have as many as you want.
Why this matters: Passkeys are bound to app.numbersgame.xyz cryptographically. A fake login page can't steal them — even if you click a phishing link, your authenticator simply won't release the credential.
Recovery: Keep your password set too. If you lose every passkey-bearing device, you can still sign in with the password and add new passkeys.
4. Connecting a company
4.1 Pick a plan
Plans price by the number of companies you connect. Open the account menu (bottom left; the user icon at the top right on the classic menu) → Billing to compare.
| Plan | Active companies | Price/month | Connection changes a month (at a full book) |
|---|---|---|---|
| Single | 1 | $59 | 3 |
| Starter | 3 | $149 | 3 |
| Growth | 7 | $299 | 3 |
| Scale | 15 | $549 | 3 |
| Enterprise | by agreement | from $1,499 | by agreement |
Adding connections on Growth and Scale. On Growth and Scale you can add connections one at a time on top of your plan: $40 a month each on Growth, $35 on Scale. On Billing, your plan's card has an Extra section: use + and −, then Update. Added connections can be used straight away and are charged for the rest of the current period; after that they renew with your plan. Removing them lowers your next invoice (there is no credit for the period already paid), and works only once your firm uses no more than the lower number, so disconnect first. If Scale would cost less than Growth with what you have added, the Billing page says so.
A "connection" is one company you've authorized. Connecting up to your plan's number of connections is always free. A connection change is only counted when you swap one for a different one past that, and bringing back a company — or a bank feed, Stripe, Square or Ramp connection — you held in the last 30 days never counts. Companies and their sources share one allowance of changes — see Troubleshooting for the full rule.
Bank feeds, Stripe and Ramp use the same connections. There is one number to manage, not one per product. A company counts as 1. Each of these, on a company, counts as ½ on Starter, Growth and Scale:
- a bank feed (however many banks the company has — a second bank on the same company costs nothing);
- a Stripe account;
- a Square account;
- a Ramp link.
On an agreement they count as your agreement says. A company you connect through Ramp alone counts as 1, like any company. Billing → What you're using lists every company and everything connected to it, who connected it and when, what each counts as, and the total, so you can always see why the number is what it is.
Every plan starts with a 14-day trial. You add a card when you pick a plan, and nothing is charged until the trial ends — so you can connect a real client and do real work before you decide. Cancel inside the fourteen days and you are not billed.
Enterprise is an agreement, not a tier — for multi-partner firms or volume needs. It is contact-only: email sales@numbersgame.xyz. Once you have signed, your agreement sets your numbers and the row above stops describing you:
- Your allotment is a starting point, not a wall. Connecting past it does not block you — it adjusts what you are invoiced, and we are told at the time so the invoice stays right. Most agreements carry no hard ceiling at all. Where one has been agreed, we email you before you reach it rather than after, and raising it is an approval rather than an upgrade.
- You are invoiced, not charged. There is no Checkout step and no card on file, so 4.2 Subscribe and the Stripe Customer Portal below do not apply to you. Your rate lives in your signed agreement and nowhere else: we deliberately hold no monetary amount in the product, so nothing here can quietly disagree with what you signed.
4.2 Subscribe
This section is for the self-service plans. If you are on an Enterprise agreement, skip it — you are invoiced, and your companies are enabled without a Checkout.
- Billing → Subscribe to the plan you want
- Stripe Checkout opens — enter card details
- You're back on the dashboard, plan badge updated
You can change plans later via Manage subscription (Stripe Customer Portal). An upgrade takes effect immediately and is prorated; a downgrade takes effect at the end of the period you have already paid for. You can only schedule one once your firm fits the smaller plan, so disconnect first if you need to; until the switch, new connections stop at the smaller plan's limit — see 9.2.
4.3 Connect your first company
Watch the 60-second walkthrough, then follow the steps below:
Here is the video on how to connect NumbersGame to your Xero company
- Open Companies in the nav
- Click Connect QuickBooks
- Intuit's authorization screen opens — sign in if you aren't already
- Pick which company to connect (if you administer several)
- Click Connect
- Open the Company that you just connected. Optionally edit "Client Profile", "Client-specific rules", connect to a dedicated Slack channel, select "Accounting basis"
- Download and save "Company_Name.md" from the top section.
- Create a Project named after the company — in Claude, or in ChatGPT
- In Claude: add the
.mdto the project's knowledge files. In ChatGPT: open the file, copy all of it, and paste it into the project's instructions — do not upload it as a file. ChatGPT applies project instructions to every chat in the project, while a file added to Sources is only consulted when ChatGPT judges it relevant; this file carries the company id that every single tool call has to pass. - In Claude you can delete your local copy afterwards — the project keeps it. In ChatGPT, keep it until the text is pasted in.
In Claude you can skip the download: ask Claude to save the company file into the project itself (see 7.1). Either way, keep exactly one company file in a project — two give Claude conflicting instructions. Connecting a new company takes you to its onboarding screen, which walks you through these steps (see Onboarding a new company in 7.1).
You'll bounce back to NumbersGame with your company in the list. Last refreshed = when the access token was renewed; this happens automatically every hour.
Heads-up: QuickBooks notifies the file's primary admin. When you connect a company, Intuit automatically emails the QuickBooks file's primary admin that "NumbersGameMCP" was connected. If you manage a client's books, that email may go to your client — give them a heads-up so it doesn't surprise them. It looks like this:

We've written two ready-to-send emails for exactly this — one to send before you connect, one to answer a client who asks after the notification arrives: Client communication templates.
Connect Claude to NumbersGame before your first company (covered in detail in section 6): connecting a company takes you to its onboarding screen, and its prompts run in Claude. If you have not done it yet, here's that walkthrough as a video:
Repeat for each company up to your plan's active cap.
4.4 Disconnecting a company
In Companies, open the company and click Disconnect. The connection is removed from NumbersGame and the access token at your accounting system is revoked. You can reconnect later: disconnecting frees an active slot, and bringing the same company back within 30 days is free. Connecting a different company in its place may use one of your monthly connection changes (see Troubleshooting).
Disconnecting a company pauses its other connections — its bank feeds, Stripe accounts, Square accounts and Ramp link — without ending them: nothing is read or booked through them while the company is disconnected, and they do not count towards your connections. Reconnect the company (QuickBooks or Xero) and they resume as they were; you do not connect them again, and resuming them uses no connection change. They do need room in your connections, though: if you used it meanwhile, they resume in this order — the bank feed, then Stripe, then Ramp, then Square — while they fit, and any that do not fit stay paused: nothing is disconnected or ended, nothing is read or booked through them, and they do not count. The company's Connection section lists them. Free a connection (Billing shows what uses each one) or upgrade your plan, and they resume on their own within the hour — or at once when you click Reconnect on the company. You can still disconnect a paused bank, Stripe or Square account, or unlink Ramp, if you no longer want it. If you no longer need them, Delete permanently (below) removes them at the provider along with the rest of the company's data. Ramp is the exception: the Ramp business is your firm's, not the company's, so erasing the company only removes its link, and the business stays in the Ramp bar to link to another company or disconnect there.
Reconnecting a company that is still connected. If calls to a company start failing, use Reconnect QuickBooks (or Reconnect Xero) in the company's Connection section. It authorizes the same company again and costs no connection and no company change. A company marked Reconnect needed has lost its authorization — for example because it was removed from Xero's connected apps — and Reconnect is the fix.
Disconnect vs. erase. Disconnect stops the connection but keeps the company's NumbersGame history (audit log, saved reports, vendor mappings). If you want that history gone too — a client leaves, or you're asked to delete their data — disconnect the company first, then use Delete permanently on the company's page. The card only appears once the company is disconnected, which is deliberate: it takes two decisions rather than one. Erase schedules a full removal of that company's stored data, and ends its bank feeds (removed at Plaid) and Square connections, and removes its Ramp link (the Ramp business stays connected in the Ramp bar, unlinked): it is archived for 30 days so it can be recovered if you erase the wrong one, then permanently deleted.
4.5 Sharing a company with another firm
Sometimes people outside your firm need to work with one client's books — the classic case: your client also works with a fractional CFO who has their own NumbersGame firm and their own set of companies. You don't add them to your team; you share the one company with their firm.
- In Companies, open the company and find the Shared access card (owners and admins only).
- Enter the email address of an owner or admin at the other firm and click Send share invite.
- They receive an email and must be signed in with that email address as an owner or admin of their firm to accept. The invite expires after 7 days.
- On accept, their entire team can use the company — under their own firm's roles, so their viewers stay read-only. It appears in their company list and Claude connection screen marked shared.
What sharing does and doesn't do:
- Their notes are theirs. The other firm gets its own client profile, vendor mappings, tasks, and saved reports for the company — completely separate from yours. Neither firm sees the other's.
- It uses one of their connection slots. A shared company counts against the receiving firm's plan, just like a company they connected themselves. If they're at their limit, they'll be asked to upgrade before accepting.
- You stay in control. The Shared access card lists every firm with access; Revoke cuts them off at once and removes their notes for this company. The other firm can also remove itself at any time.
- Disconnect ends it for everyone. If you disconnect or erase the company, shared access ends with it. Only your firm — the owner — can disconnect or erase.
4.6 Letting Claude email documents to customers
Claude can email an invoice, estimate, purchase order, sales receipt or credit memo straight to the customer it belongs to. QuickBooks sends the mail, using your client's own sending identity and template, so what arrives looks exactly like every other document that client has ever sent.
This is the only thing Claude does that reaches someone outside the books, and nothing can take it back. There is no recall, no draft state and no undo. For that reason it is off until three separate switches are on, and any one of them turns it off again:
- NumbersGame enables it for your firm. Email support and ask. This makes the setting visible — it does not start anything.
- You switch it on for your firm, in Firm settings → Document sending. Owners and admins only.
- You leave it on for the individual company. Every company is listed under the firm switch; switch off the ones that should never send.
Changes reach Claude within about a minute.
Turning it on for the firm is the decision worth thinking about, because from then on the approval you see in Claude is the last check before an email leaves. Read the recipient address character by character, confirm the document by its number, and send one document per approval. If you have set a send tool to Always allow in Claude, you will not even get the prompt — so don't, and change it back before switching sending on.
If Claude refuses, it will tell you which of the three switches is closed, so you know whether to change a setting yourself or ask us. And if a send is refused for one company while working for another, that's switch 3 doing its job.
An address that came in through Claude is confirmed once, by a person, before anything is sent to it. Claude can be steered by text it reads (an invoice memo, a vendor name, a bank description), so NumbersGame does not take its word for where a document goes:
- If a customer's or vendor's email was set or changed through Claude, Claude's sends of that customer's or vendor's documents are held.
- If Claude is asked to send to an address that is not on the document (
send_to), that send is held until the address is confirmed for that company. - Claude cannot put recipients on a document at all (the To, Cc and Bcc fields of an invoice, estimate, sales receipt, credit memo or purchase order). Set the customer's email, or edit the recipients in QuickBooks.
- Stripe follows the same rule, whether or not document sending is on. Stripe emails a subscription's invoices to the customer's address by itself, so if Claude created a Stripe customer with an email, Claude cannot start a subscription for that customer until the address is confirmed. A firm without document sending finds these under Firm settings → Stripe customer emails. Confirming changes nothing in Stripe: ask Claude to try again.
A held send sends nothing. Claude tells you it was held, and NumbersGame emails the person who asked. Anyone at the firm who can open the company, except a viewer, checks it in Firm settings → Document sending → Recipients: it shows the old address and the new one, and flags a changed domain or letters from another alphabet, the usual signs of a lookalike. Confirm asks for your password or a passkey every time, and Confirm all for this company does a whole batch at once. Confirming does not send anything: ask Claude to send the document again. Reject keeps it held and emails your firm's owner. Use the page in NumbersGame, or the link in our email; never a link that appears in the chat.
What this does not cover. QuickBooks and Xero can send reminders on their own, and a person can press Send in them. Until a changed customer email is confirmed, those can still reach the new address for new documents of that customer, so confirm or reject a change promptly. The same goes for a draft Stripe invoice Claude made for such a customer: when a person finalizes it in Stripe, Stripe emails it to the customer's address. A company-wide Cc or Bcc set in QuickBooks' sales form settings is outside what NumbersGame can see.
Do not delete a document straight after sending it. QuickBooks accepts the send and marks the document as sent immediately, but the mail itself goes out a moment later — deleting the document in that window stops the email leaving. If you need to reverse something you have sent, void it rather than deleting it; the customer already has a copy, and the record should still exist.
Working through it step by step: see Send a document to a customer in the SOP library.
4.7 Connecting a bank (bank feeds)
A bank feed pulls transactions from a bank or credit card into NumbersGame so Claude can code them into your ledger. QuickBooks and Xero both work; what a booked line becomes in each is at the end of 4.8. It is on for every firm, and a company's bank feed uses part of a connection (see 4.1); you also agree to a short consent about what is sent to Plaid, our bank connection provider, before anything can be connected. Plaid connects banks and credit cards in the United States and Canada; for a bank anywhere else, import its statements instead (below). Everything bank-related lives on Companies → Banks.
The bank feed is approved once, for the whole firm. An owner or admin accepts the Plaid consent on Banks, and that covers everyone in the firm who can see bank data (owners, admins and members). Nobody has to reconnect Claude or re-authorize the connector for the bank feed — the sign-in screen in Claude only asks for access to the ledger. If Claude says the bank feed is not available, it is one of three things: it is not switched on for your firm, your firm's plan is not active, or no owner or admin has accepted the consent. If connecting a bank is refused because your connections are all in use, Billing → What you're using shows what is using them.
Each company's page also has a Bank feed section: the banks bound to that company, when they last synced, each account and whether it is mapped, and the booking setting that governs the company. It is read-only; changes are made on Companies → Banks.
Bank statements, with or without a feed. Claude can also import a bank statement, from a CSV file, a PDF statement or transactions pasted into the chat, for any company. A PDF is read inside your conversation, and Claude must reproduce the statement's opening balance, closing balance and transaction count before it shows you anything to post. Before anything posts it runs a dry run that checks every row the way the bank feed does: your bank rules, open bills a payment should settle, possible capital purchases, payroll, and first-time vendors. Rows with nothing to question post. Claude shows you the flagged rows and posts them once you have answered; a possible capital purchase, or a payment that should settle an open bill when strict bill matching is on, needs an answer about that row on its own. A flagged row nobody answered is held: it is not posted, it stays with the import until someone decides, and the statement is not complete in your books until then. Each company's page lists held lines in its Statement imports section (owners, admins and members). Owners and admins can post the simple ones there, or dismiss a line with a reason (for example, already entered by hand); Claude can resolve any of them in a conversation. Reversing an import also clears its held lines.
One connection is one bank login, not one account. A login that exposes a checking account, a savings account and a card is a single connection carrying three accounts.
Choose the company first. A bank is bound to the company you pick and cannot be moved afterwards — a feed with nowhere safe to post is how transactions end up in the wrong client's books. You are redirected to your bank to sign in; NumbersGame never sees your bank credentials.
Then map each bank account to the account that represents it. On the connection's page, every account the login exposes has to point at the account in that company's chart that stands for it. The list offers only bank and credit card accounts, and shows the account type beside each one, because a bank feed can only post into a register that represents a real balance at a financial institution. Expense accounts are what a transaction is coded to, which is a different question and is decided per transaction.
An unmapped account is never booked. Nothing is guessed. If a mapping is missing you will see it on the bank list as Mapping incomplete, and every transaction on that account is held until you fix it.
If the chart has no bank or credit card account for a feed to point at, the screen will say so — add one in your ledger, then reload the page.
A new connection starts by importing its history, and while it does the bank list shows Importing history. Nothing is coded or posted from that connection until the import finishes — usually within a few minutes of connecting. You do not have to wait to map the accounts; do that straight away.
Then seed the bank rules, before you code anything. This is the step new customers skip, and skipping it is the single most common reason a first run holds almost everything.
The feed's confidence in a transaction rests mostly on two things: a bank rule that matches the merchant, and how consistently that merchant has been coded before. A bank you connected this morning has neither — there is no booking history behind it yet. So without rules, the first run hands you back nearly the whole batch to read line by line.
Once the history has finished importing, ask Claude for the rules the client needs. A prompt that works:
The bank history has finished importing for <CLIENT>. Before we code anything, go through the transactions in the feed and find the merchants that recur — the subscriptions, the utilities, the regular suppliers, payroll, the card processors. For each one tell me the merchant, how often it appears, and the account it should be coded to. Take that account from how this client has already coded that vendor, and tell me which entries you read it from. Where there is no prior entry, say so and mark the account as your suggestion. Leave out one-offs, anything where the past coding disagrees with itself, and anything you are unsure about. Give me one line each so I can say yes or no, and save only the ones I confirm.
Budget about an hour per client, once. Every rule you seed now is a transaction that posts by itself instead of waiting for you every month — and rules are shared by every bank on that company, so you do this per client, not per bank.
There is more on what a rule holds, and on keeping them current, in 4.10 Bank rules.
Bank balances
Ask Claude for an account's balance and it answers from your books first, the balance in QuickBooks or Xero. Where the company has a bank connected, it adds the bank's own balance beside it, "per the bank, as of" the time the bank last updated (usually within the last day), and the difference between the two: what is not reconciled yet. On a credit card or loan, the bank's figure is the amount owed.
For a balance fetched from the bank right now, ask for a live balance. Claude first shows the balance it already has and asks you to confirm; only then does it ask the bank. Each company has 10 live balances a month (the month runs on UTC), and one live balance covers every account the company has on that bank login. Each answer tells you how many are left and when they come back on the 1st. When they are used, the balance from the last update is still there.
4.8 How the bank feed decides what to post
Every transaction goes through the same two stages, in this order.
First, the safety checks. These are structural: they hold a transaction for review no matter which setting you have chosen, and no setting can override them. A transaction is held if:
- the bank account is not mapped to an account in the ledger
- no accounting basis (cash or accrual) has been stated for the company — tell Claude which one the client is on and it continues; unlike the two below, this does not need a setting
- it is in a currency other than the company's own
- a bank rule names a different account than the one proposed
- the ledger could not be read to check for an existing entry or an open bill
- it is a credit-card payoff whose other side has not been identified
- split lines do not add up to the bank amount
- it is still pending, or the bank withdrew it
- it is already recorded in the ledger — the transaction clears that entry rather than adding a second one
- it is a payroll debit (ADP, Paychex, Gusto, Rippling, JustWorks and the like). Payroll is posted by the provider as a journal entry splitting the run into gross wages, employer taxes, deductions and net cash; the bank line clears that journal. Post it from the payroll provider's own connection, then match this line against it.
Then, your setting. Each connection has one, and you change it on the connection's page. From most cautious to least:
| Setting | What posts without asking |
|---|---|
| Propose only | Nothing. Every transaction is coded and handed back for you to enter yourself. This is where a new connection starts. |
| Bank rules only | Only transactions that exactly match a bank rule you have already taught (4.10). A company with no rules posts nothing in this mode. |
| Post above the threshold | Transactions scoring at or above the connection's confidence threshold, which you set. Anything below is held, and can be approved individually after you have read it. |
| Post everything above safety | The confidence score stops deciding: anything without a structural objection posts. A low-confidence guess will land in the ledger. |
A company with several banks is governed by its strictest connection. If one bank is set to post above the threshold and another is on propose only, that company posts nothing. The bank list says so on the row when it applies. Set every connection on a company to the same level, or the cautious one wins.
Confidence is not the model's opinion of itself. It is calculated here from things that can be checked — whether a bank rule matched and agrees with the proposed account, how consistently that merchant has been coded before, how clean the merchant name is, and Plaid's own category confidence. The same transaction always produces the same number.
Setting the confidence bar. Post above the threshold uses a number on the connection's page, 0.90 by default. An owner or admin can change it between 0.75 and 1.00. The floor is deliberate: 0.75 is the most a transaction can score when the bank tells us nothing but a raw payment descriptor, so a bar below it would post those on the strength of the amount alone.
Lowering the bar is rarely the right answer to lines being held. A line held because nobody has taught a bank rule for that merchant is held for a good reason, and dropping the bar posts every other unknown merchant with it. Teach the rule, or approve those specific lines.
Approving what was held. A transaction held only because it did not clear the bar has nothing structurally wrong with it — it is a judgement we were not confident enough to make alone. Read what Claude proposes and, if it is right, tell it to book those lines: it records your approval against every entry, with your reason, so the ledger shows a person's decision rather than a machine's.
What approving actually clears. It is not only the confidence bar, and it is worth knowing exactly where the line falls.
- Most judgement holds can be approved in one go — a bank rule naming a different account, a credit-card payoff whose other side is unidentified, a first-time unknown payee, a fee gap, an unmatched open bill, several candidate bills, a prior reversal.
- Four holds need a reason typed per line and cannot ride an "approve all": it is already in the general ledger, it looks like a capital purchase, a transfer's other leg is missing, or strict bill matching found no open bill. These are the ones where approving in bulk would be how a duplicate gets posted, so the product makes you say why, line by line.
- Two holds are not approvals at all — an account that is not mapped, and a foreign currency. Those are settings, and approving does nothing until the setting exists.
- A connection set to Propose only still posts nothing, approval or not, because that setting means the feed does not write to your books at all. Change the setting if that is what you want; approval is not a way around it.
Your approval and your reason are recorded against every entry, so the ledger shows a person's decision rather than a machine's.
Anything posted can be reversed, and every run can be reported on, so you can see what was booked, what was held, and why.
What a booked line becomes. The decision above is the same in both ledgers; only the document differs.
| The feed decides | In QuickBooks | In Xero |
|---|---|---|
| Money out, coded to an expense | Expense (Purchase) | Spend money transaction |
| Money in, not against an invoice | Deposit | Receive money transaction |
| Between two accounts you own | Transfer | Bank transfer |
| Settles an open bill or invoice | Bill payment | Payment against that bill or invoice |
One difference worth knowing on Xero. Before posting, the feed checks whether the ledger already records the transaction. In QuickBooks that is one report listing everything that touched the account. Xero does not let us read an equivalent at the access level we hold, so the same answer is rebuilt from the transactions themselves and then checked against Xero's own bank summary for the period. If the two do not reconcile, the feed treats it as could not read rather than nothing there, and holds the line. That is deliberate: the failure it prevents is posting a second copy of something already in the books, which is silent and ends up in the P&L.
4.9 Disconnecting a bank
On the connection's page, Disconnect this bank. Owner or admin only, and you type DISCONNECT to confirm.
- The feed stops immediately. No further transactions are pulled or booked.
- Everything already booked stays in the ledger. Disconnecting reverses nothing and deletes no entry from your books.
- The stored bank credential is removed at Plaid, so it stops being billed.
- The transactions we had pulled but not yet booked are deleted.
- The connection stays visible in your bank list as Disconnected for 7 days after the credential is removed, then it is deleted the same way Delete this connection deletes it (below).
Reconnecting later is a new connection, not an undo: a new billable month, the accounts to map again, and booking back at Propose only.
Deleting the connection is a second, separate step. Once a connection is disconnected the same page offers Delete this connection, which removes it from your bank list straight away instead of after 7 days along with its account mapping and any remaining unbooked transactions. Everything already posted stays in the ledger, and the record of what was posted is kept so it can still be reviewed or reversed. Deleting cannot be undone.
Delete is deliberately not available the moment you disconnect. Removing the stored credential at the provider sometimes takes a retry, and until it confirms we still need it — deleting early would leave a credential in place that nothing could ever remove. The page says so while it waits, and the button appears once it clears. Nothing is required from you in the meantime.
If a bank is only asking you to sign in again, use Re-authenticate instead. Disconnecting and reconnecting to fix an expired login costs a fresh month and loses your settings; re-authenticating keeps the same connection.
Deleting a whole company's bank data, rather than one connection, is part of erasing the company — see §9.
4.10 Bank rules
A bank rule is one line you teach us: this merchant is coded to this account. It is stored per company, so every bank on that company shares the same set, and it is what turns a bank feed from a list of payments into something that can be coded without asking you each time.
Where they come from. You do not fill in a form. Tell Claude how something should be coded — "Amazon Web Services goes to Software subscriptions" — and it records the rule. Coding a feed teaches rules as you confirm its proposals, so a company's rule set grows out of ordinary work rather than a setup session. You can see and edit the rules a company has on its company page — the card is called Vendor mappings.
Seed them when you connect the bank, before the first coding run. This is the one time it is worth doing in bulk, and it is the difference between a first run you read line by line and one that mostly posts itself.
Confidence comes from two things above all: a rule that matches, and how consistently that merchant has been coded before. A newly connected bank has neither — there is no booking history behind it yet — so an unseeded first run holds nearly everything and hands the whole batch back to you.
Once the history has finished importing, ask Claude to go through the merchants that recur — the subscriptions, the utilities, the regular suppliers, payroll, the card processors — and propose a rule for each. Ask it to take each account from how the client has already coded that vendor, and to say which entries it read that from. Where there is no precedent it should say so and mark the account as its own suggestion. That distinction matters: a rule saved this way codes that merchant every month without asking again, and later there is nothing to tell apart one read off three years of consistent coding from one inferred from a merchant name.
Leave out one-offs, anything where the past coding disagrees with itself, and anything it is unsure about. A rule you have to unpick later is worse than no rule.
A rule holds more than an account. It also records whether that vendor is ever billed. A vendor who is never billed can be posted straight to the expense; one who is billed has to settle an open bill instead, or the same cost lands in the books twice. That is why the system asks rather than assuming.
Why an empty company is a problem. In Bank rules only the connection posts only what matches a rule, so a company with none posts nothing at all, indefinitely — it is not a slow start, it is a stop. In the other settings it is not fatal, but a matching rule is the strongest single input to the confidence score, so a company with no rules holds far more for review than its owner expects.
The bank list flags the connection, and the connection's page says which of the two situations you are in.
Rules need looking at every so often. A rule is a standing instruction, and it keeps being applied long after the reason for it stopped being true — a client changes what they buy from a supplier, an account gets renamed or merged, a vendor who was never billed starts sending invoices. Nothing in the feed notices, because the rule keeps matching and keeps looking right.
So each company's rules carry a review date, and we ask for them to be looked at every five weeks. On the company's page the rules panel says when they were last reviewed, and an owner or admin confirms the whole set with Confirm these are still correct — one press for the client, not one per rule. Editing a rule counts as reviewing it, so fixing something does not then ask you to confirm the fix.
Past five weeks the panel turns amber, the bank list marks the connection, and Claude is told the age when it reads the rules. None of that changes what posts — an old rule is still the firm's stated coding for that client and is still applied. It is a prompt to look, not a brake.
A rule never overrides a safety check. If a rule names one account and the proposal is a different one, that disagreement holds the transaction rather than picking a winner — see 4.8.
4.11 Connecting Xero
NumbersGame works with Xero as well as QuickBooks, and it is switched on for every firm: an owner or admin can connect a Xero organisation from the Companies page, next to your QuickBooks companies.
A Xero organisation counts against your plan exactly like a QuickBooks company — same connection limit, same price, no Xero surcharge.
Before you connect: the permission we have to ask for
Xero's developer terms require us to ask, in as many words, before any Xero data reaches a third party. Claude is that third party — it is the whole product — so you will see a short consent step the first time, naming api.anthropic.com as where the data goes. An owner or admin has to accept it; it is not something staff can accept on your behalf.
You can withdraw it later from the same card on the Companies page. Withdrawing stops Xero working immediately — within about thirty seconds Claude starts refusing anything about your Xero organisations, without you reconnecting anything and without an open conversation needing to be restarted. Your QuickBooks companies are unaffected. Accepting again turns it back on.
Connecting
- On Companies, accept the Xero terms if you have not already.
- Click Connect a Xero organisation. Xero asks you to sign in and pick which organisations to allow.
- You can tick more than one. Unlike QuickBooks, one Xero authorization can connect several organisations at once — each becomes its own company here, and each uses a connection slot.
- You come back to the Companies list with them connected.
If you tick more organisations than your plan has slots left, none of them are connected — we hand the whole grant back to Xero and ask you to upgrade or free a slot. Keeping the ones that fit would mean choosing on your behalf which client to leave out.
There is a second limit behind your plan's: Xero sells connection slots to us, app-wide, and that pool is finite. If a connection is refused for that reason the message will say so — it is not something you can fix by changing your plan, so tell us and we will raise it.
What is exactly the same
Once connected, a Xero company behaves like any other: it appears in the same list, has the same detail page and dashboard, uses the same roles (viewers stay read-only), the same client profile and rules, the same saved reports, the same audit log, the same sharing with another firm, and the same erasure and disconnect controls.
What Claude can do with a Xero company
Reports. Balance sheet, profit and loss, trial balance, aged receivables and aged payables. The profit and loss can be split by month, quarter or year, oldest first, with a total column.
One thing to know about the two aged reports: Xero has no whole-book aging report of its own, so Claude builds them from the invoices and bills themselves. That means they cannot see anything posted straight to the receivables or payables account without a document behind it — payroll tax liabilities are the usual example. So every Xero aging is checked against the matching account on Xero's own balance sheet and tells you when the two do not agree, and by how much. If you are reconciling at a close, read that line before you use the total.
Looking things up. Search customers, suppliers, invoices, bills, accounts and items, and open a customer, supplier, invoice or item in full.
Writing. Create and update customers and suppliers, create and update invoices, create bills, create and update items and accounts, void an invoice, and delete a bill or an item. Deleting a bill in Xero voids it — the bill and its number stay in the books. Claude can also create bill payments, purchase orders, estimates, credit notes, manual journals and transfers, and email documents.
Payroll. For organisations on Xero UK Payroll, Claude can read payroll: employees, headcount over time and employer cost by month and department. It is read only, and Xero only allows it once the connection has been approved by a Xero Payroll Administrator. See Xero UK Payroll — what Claude can do with it, and what it can't yet in the help centre.
It is still narrower than QuickBooks. The table below is the honest version.
Where Xero differs from QuickBooks
| QuickBooks | Xero | |
|---|---|---|
| Bank feeds | Supported | Supported since 2026-08-29. A bank line books into Xero as a spend or receive transaction, a transfer, or a payment against an invoice or bill. The already-in-the-ledger check works differently: Xero does not let us read a general ledger at our tier, so it is rebuilt from the transactions themselves and checked against Xero's own bank summary. A window that does not reconcile is treated as a FAILED read rather than an empty one, so the line is held for you instead of being posted twice |
| General ledger report | Supported | Not available. Xero gates the raw journals endpoint behind a higher developer tier than we hold |
| Cash flow statement | Supported | Not available |
| Sending documents by email | Claude can email invoices and other documents through QuickBooks | Supported |
| Bill payments, purchase orders, estimates, credit notes, journal entries, transfers | Supported | Supported. Payments, bill payments and transfers cannot be edited once made — Xero treats them as fixed — so Claude voids or reverses and re-enters, and tells you it is doing so |
| Deposits | Supported | Not available. Xero has no deposit: a bank line is already one movement, so there is nothing to group |
| Payroll | Employee records only; payroll is not read | Xero UK Payroll, read only: employees, headcount and employer cost by department. Needs the connection approved by a Xero Payroll Administrator. Australian and New Zealand payroll are not read |
| Attachments | Supported | Supported, and at full parity since 2026-09-03: listing what is attached, attaching a document Claude writes, and attaching a file you already have. Verified on a live Xero invoice |
| Invoice due date | Optional — QuickBooks works it out from the customer's payment terms | Required. Xero has no payment terms to fall back on, so Claude will ask you for one rather than assume "due on receipt", which would put every invoice straight into the 1–30 overdue bucket |
| Items and accounts | A code is optional | A code is required. Xero uses it as the identity on every invoice line, so Claude asks rather than inventing one |
| Customers and suppliers | Two separate records | One record. Xero decides whether a contact is a customer or a supplier from the documents posted against it. If you give Claude a display name and a company name that differ, it will ask which one to keep rather than quietly dropping one |
| Classes and departments | Supported on transactions and lines | Xero's equivalent is tracking categories: a class is an option inside one. Claude can list, add, rename and archive options, report the profit and loss by tracking category, and tag bills, spend and receive money and manual journals, one at a time or in bulk (bank transfers and reconciled lines cannot be tagged). Departments are not available — Xero allows only two tracking categories — and new categories are set up in Xero itself |
| Sales tax on a line | Set through QuickBooks' tax detail | Xero uses the account's default tax rate unless you name a tax code. Amounts you give Claude are always treated as excluding tax |
| Editing invoice lines | Change one line, the rest stay | Sending lines replaces all of them, and Xero gives the new lines new ids — which breaks any payment already allocated against the old ones. Claude will send the full set; changing only a date or reference leaves lines alone |
| Voiding an invoice | The document stays at zero | A draft or submitted invoice moves to Deleted, an approved one to Voided. Both keep their number and stay findable in Xero, so the audit trail survives either way |
| Undoing a mistake | QuickBooks rejects a second edit if someone else changed the record first | Xero has no equivalent check. If two people edit the same record at once, the last write wins |
| Multiple currencies | Aged reports convert to your home currency | Converted too, using Xero's own exchange rate. If Xero has no rate for an unpaid foreign invoice, Claude tells you rather than adding currencies together |
| Aged receivables and payables | Comes from QuickBooks' own report | Built from your invoices and bills, because Xero has no whole-book version. It is checked against your balance sheet and says so when the two do not agree — see above |
| Parent and sub-accounts | Supported | Xero's chart of accounts is flat. Asking for accounts under a parent gets a plain refusal rather than a wrong list |
| Searching for several values at once | "any of these" lists and partial-word wildcards | Xero's search has neither. Claude searches one value at a time, or matches "contains" where you meant a wildcard |
| Removing an item | Made inactive; the record stays | Deleted. A Xero item has no active or inactive state, which is also why you cannot search for inactive ones |
Disconnecting a Xero organisation
Same button as a QuickBooks company, on the company page. Disconnecting also hands the organisation back to Xero, so it stops appearing in your Xero connected-apps list and the slot is returned. If it was the last organisation on that Xero authorization, the authorization itself is revoked at Xero and we stop holding it; connecting again starts a new one. Erasing a company does the same and removes the stored authorization entirely.
Connecting through your firm's own Xero app
Xero asks firms to connect through a Xero app they create in their own Xero developer account. When we switch this on for your firm, a Xero connections item appears in the menu. Everyone in the firm can open it; only an owner or admin can save the app's details.
- Follow the steps on that page to create the app at developer.xero.com: click New app, and in Add a new Xero app choose Web app. Answer No to "Will you use Xero data to train, fine-tune, adapt, or enhance an AI model?" and Yes to the security-requirements question. Paste the redirect URI the page shows (use its Copy button) into OAuth 2.0 redirect URI, agree to Xero's terms and click Create app. Then, at the bottom of the app's Configuration page, copy the Client id, click Generate a secret and copy the secret straight away: Xero shows it only once. Leave the other settings, Webhooks included, as they are.
- Paste both into Xero connections and confirm with your password or passkey. Every owner and admin gets an email when the details are saved or replaced. The secret is stored encrypted and never shown again; the page shows only its last four characters.
- Connect a Xero organisation. The first connect that works confirms the details. If Xero rejects them, the message tells you to copy them again.
Your own Xero app is free for up to five organisations. To connect more, choose a paid plan on the app's Manage Plan page in the Xero developer portal (the next plan allows up to 50); Xero bills you for it directly. Upgrade before the 6th organisation: at the limit, Xero refuses the connect.
Moving your existing Xero companies. Until a company is reconnected through your app, it keeps working through ours, and it shows Not moved on the Companies page and on its company page. Press Move, or Move all on Xero connections, then press Continue in Xero. The company keeps its settings, instructions and Claude project; only the connection behind it changes. Xero connections shows "Still on the NumbersGame app: N of M" until every company has moved. A company that needs a different Xero login stays listed with the login that last authorised it, so you know who should move it.
4.12 Finding a company's ID
Every connected company has an ID, and Claude passes it on each call so it works on the right books: the QBO Realm ID for a QuickBooks company, the Xero tenant ID for a Xero organisation. You never have to look it up in QuickBooks or Xero. In the portal it is in three places:
- The company's page. Open Companies and click the company: the ID is on the line under its name, after the ledger.
- The company file. The
.mdfile you download from the company's page (or have Claude save into the project, see 7.1) names the ID near the top and tells Claude to use it on every call. - The Prompt catalog. Choose a company there and each prompt is filled in with its name and ID.
To give it to Claude, work in that company's Claude Project with its company file in it, and Claude reads the ID from the file. Without a project, copy the ID from the company's page and paste it into the chat with your request: "Use the company with ID <the ID you copied>."
Claude should never guess an ID. If it does not know which company you mean, it should ask you. If it tries a made-up value such as 0, stop it and give it the ID from the company's page.
4.13 Connecting Shopify
The Shopify connector books a client's Shopify sales into their QuickBooks or Xero books as one summary journal per period: sales by revenue line, shipping, sales tax, tips, gift cards sold, payments by gateway and refunds. It only reads the store. It is in a pilot: if the company's page has no Shopify section, ask support. The full guide is at /guide/shopify.
Connecting. An owner or admin opens the company, enters the store's .myshopify.com name in its Shopify section and clicks Connect Shopify; the store owner approves NumbersGame in Shopify. A store owner can also install NumbersGame from Shopify itself; an owner or admin of your firm then links the store on Link a Shopify store to a company (choose the Company, click Link this store). A store installed this way and not linked within 7 days must open the app from Shopify again. In Claude, your firm's NumbersGame package already includes the Shopify connector: connect it in the plugin's Connectors tab (§6.1). The public package does not include it yet, so with the public package add the NumbersGame – Shopify connector yourself, as /guide/shopify shows.
Every month. Ask Claude to build the period's Shopify journal; it posts nothing until you approve. Orders that don't add up, or that NumbersGame can't book safely, are held and listed with the reason. Book each held order by hand, once: ask Claude to read it ("Read Shopify order #1009 for Acme"). Claude says whether the order's period is already booked, searches the books for a hand entry already made for that order, and drafts one only if there is none, with a memo naming the order and the period, e.g. Shopify order #1009 (held from SH-0915722-2026-10, JE 1249). It books it only after you approve.
Tips and refunds. A tip is booked once, to tips payable; Shopify also lists it as a "Tip" line, which is not counted as a sale. Shopify refunds a tip only as an amount, so an amount refund on an order with a tip is held (it may be the tip). On an order without a tip, an amount refund books as a sales refund when prices exclude tax, and is held when prices include tax, because Shopify doesn't say how much of it is tax.
Payouts. The connector has payout tools, but they book a payout only in a shape NumbersGame has measured on a real store, and none has been measured yet. Book Shopify payouts and their fees by hand for now. A store without Shopify Payments has no Shopify payouts.
5. Inviting your team
If multiple bookkeepers share the workload, invite them so they can sign in with their own accounts.
- Team → Invite a teammate, then Send invite
- Email address + role:
- Owner — full access, can change billing, can invite others
- Admin — can connect/disconnect companies and invite, can't change billing
- Member — can use Claude with the firm's companies, and approve, complete or delay tasks, but can't change firm settings
- Viewer — read-only: can use Claude to read the books and generate reports, but can't create or modify anything in the books. Viewers also cannot see bank connections or bank-feed transactions — bank data is treated as more sensitive than the ledger and is limited to Owners, Admins and Members. A viewer does not get a refusal, they simply have no Banks page, and no Bank feed section on a company's page, at all.
- They receive an email. They click the link, set their password (or sign in if they already have a NumbersGame account), and they're in.
Who can see what the team did. The Audit log — every tool call, one line each — is open to every role, including Viewers. Usage, which totals the same history across your team, is Owner and Admin only. Both live in the account menu; see §9.5.
Note: Seats are uncapped — invite as many teammates as you need. Plans price on connected companies, not seats.
5.0 Which AI clients your team has connected
Team → Connected clients (Owner and Admin) lists every AI client that currently holds a live connection to your firm, grouped by person: which client, when they authorised it, and when it was last used. It is the screen for "who actually has access to our books through Claude", and the one to check when somebody leaves.
Two honest limits, so you are not misled by it:
- It names the product, not the app. The connection identifies itself as Claude, ChatGPT, or whatever else was used — but Claude on the desktop and Claude in a browser identify the same way, so we cannot tell you which of the two it was.
- Last used is a tool call, not a sign-in. Somebody can have Claude connected and simply not have asked it for anything.
MCP keys (§6.6) appear here too, labelled "MCP key" with the connector they open, their access and their expiry date, under the name the person gave them. Disconnect one here if it should no longer work.
An owner or admin can Disconnect any one connection here; the person's other connections keep working. Each person can also revoke their own under Security → Connected applications. See §6.4, which explains why revoking is per person and per firm.
5.1 Restricting a company to certain people
By default everyone in your firm can work on every company you have connected. When one client should be visible to two people and not the other six — a sensitive engagement, a family member's books, a client who asked — open the company and use Restrict access.
Tick Restrict this company to selected users, choose who, and save. From then on the company is invisible to everyone else: it disappears from their company list, Claude refuses it for them, and it drops out of any parent-company group they can see. The firm owner, or an admin who has access to the company, sets this. It binds admins, members and viewers alike, so it is a real boundary rather than a suggestion; the one exception is the firm owner, who always keeps access, so a firm can never lock itself out of its own company.
6. Connecting Claude
On a Claude Team or Enterprise plan, read §6.5 first. If your Claude Owner installs the NumbersGame package for the whole organisation, most of this chapter is not your people's job to do.
On Claude, one install does it: the NumbersGame package, with the connectors
and the Finance Wizard in it (§6.1). Set up → Package (/app/setup) shows the steps
for your firm. The connector on its own is on Set up → Connector (/app/connect).
Do this before you connect your first company: it is step 2 on the dashboard's checklist, after your plan and before Connect a company. Connecting a company takes you to its onboarding screen, and those prompts run in Claude (see Onboarding a new company in 7.1). Claude connects fine with no company yet.
The same goes for the other NumbersGame connectors, such as Ramp, Square and BILL, including the ones the NumbersGame package or the ChatGPT plugin adds all at once (§6.1, §6.3). You can approve each of them before any company is linked to that service, and before NumbersGame has switched it on for your firm. The consent screen then says that each company you link later is included. Until then, if you use one, Claude tells you what to do first.
6.0 Set the tool permissions — do this on every client
This is the step people skip, and skipping it makes NumbersGame feel broken in two different ways: Claude stops and asks before every single call, or it flatly tells you it "can't" do something it can.
Every NumbersGame action starts on Needs approval. This is the same whether the connector came with the NumbersGame package or on its own. In Claude, open Customize → Connectors, click NumbersGame MCP, and you'll see Tool permissions — each category can be set to Always allow, Needs approval, or Blocked.
Set the read-only categories to Always allow. Reading is where the volume is: a single "how did we do last quarter?" can be a dozen report and list calls, and approving each one by hand is what makes people give up on the connector. Nothing in a read-only tool changes your books.
Leave the write categories on Needs approval. Anything that creates or updates — accounts, classes, departments, customers, vendors, items, journal entries, purchases — should stop and show you what it's about to do. The approval prompt is the last check before a change lands in QuickBooks or Xero, and you only see it a handful of times per session, so it costs you very little.
Never set a send tool to Always allow. If your firm has document sending switched on (§4.6), that approval prompt is the last thing standing between a draft and a real email to your client's customer. See §4.6 before you touch those.
You do this once per person, per client. It does not carry across from a colleague, and it does not carry from Claude Desktop to the web.
6.1 Claude (claude.ai, Claude Desktop and the phone app)
Claude takes one install: the NumbersGame package. It is a Claude plugin with the NumbersGame connectors and the Finance Wizard (§7) in it. You install it once on your Claude account, and it reaches claude.ai, the Claude Desktop app and Claude Code (the public package also reaches the phone app). Set up → Package (/app/setup) shows the steps for your firm. There are two packages:
- The public package, for firms that have not published Custom Skill content (§7). It comes from NumbersGame's marketplace; Check for updates on the plugin brings the newest version.
- Your firm's package, for firms that have published Custom Skill content. You download it from Set up → Package. It carries your firm's instructions and files. Never install the public package at such a firm: it does not have your firm's rules, and nothing tells you they are missing.
Before you start. If you installed the NumbersGame Wizard skill before, remove it first, in Customize → Skills. An organisation skill is removed by the Owner. With both installed, Claude offers the Wizard twice. Changing to the other package? Remove the installed NumbersGame plugin first, then install the other one.
The public package
- In Claude, open Customize → Plugins → Add → Add marketplace
- Paste
NumbersGameBV/numbersgame-claude-plugin. You do not need a GitHub account - Open NumbersGame and add it
- Open the plugin's Connectors tab. Each connector shows Connected, Not connected or Not added. Connect the ones you use (see Connecting a connector below)
The public package brings the NumbersGame, Ramp and Square connectors. If your firm has Shopify or BILL switched on, add that connector yourself as well, as /guide/shopify and /guide/bill show. Set up → Package lists it for you.
Your firm's package, just for you
- On Set up → Package, click Download the NumbersGame package
- In Claude, open Customize → Plugins → Add → Upload plugin and choose the file
- Open the plugin's Connectors tab and connect the ones you use
Your firm's package brings every active NumbersGame connector. For everyone in your organisation at once, your Claude Owner installs it instead: see §6.5.
Connecting a connector. Connect NumbersGame MCP first; connect the others (Ramp, Square and so on) when you use them.
- A NumbersGame consent screen opens — in the same tab on claude.ai, in your browser from Claude Desktop
- Choose which companies Claude may use: All companies I can access, which includes companies connected later, or Only these companies, then tick the ones you want. You can change this later without reconnecting (§6.4). With no company connected yet, only All companies I can access is offered: it covers each company you connect afterwards. Either way, firm-wide settings such as the instruction library are not limited by this choice. You are not asked about the bank feed here: that is approved once for the firm (§4.7)
- Click Authorize
NumbersGame MCP then shows as Connected, on the web, in Claude Desktop and on your phone alike. In a chat, the + menu → Connectors turns it on or off. On the phone, the Wizard opens when you ask for accounting work in your own words ("close the month", "categorize transactions"); it is not listed in the / menu there.
First-time only: The consent screen names the Claude client asking for access. This is normal. NumbersGame doesn't pre-trust any client — every Claude install, every browser, every device gets its own consent.
Already connected? A connector you connected before, from the directory as NumbersGame MCP, stays connected. The package uses the same connector, so you still have one NumbersGame MCP, not two. If you added NumbersGame earlier as a custom connector (https://mcp.numbersgame.xyz/mcp), it keeps working too. The address still works as a custom connector wherever plugins are not available to you.
Claude without plugin support. If your Claude has no Plugins under Customize, install the two parts separately, as before:
- Add the connector from the directory: https://claude.ai/directory/numbersgame-mcp, or Customize → Connectors, select Discover and search for NumbersGame MCP. Select Connect to Claude and authorize as above
- Install the Wizard skill from Set up → Package as a skill file (§7, Claude without plugin support)
6.2 Claude Code (CLI)
Signed in to Claude Code with your Claude account, you have nothing to install. A plugin you installed on claude.ai arrives by itself, marked synced from claude.ai, and Claude Code uses the connectors on your account. Install the package in Claude (§6.1), then run /mcp in Claude Code and look for claude.ai NumbersGame MCP.
At a firm without Custom Skill content, you can also install the public package from the shell:
claude plugin install numbers-game --marketplace NumbersGameBV/numbersgame-claude-plugin
At a firm with Custom Skill content, never run that command. A plugin installed in Claude Code takes precedence over the synced copy of the same name, so your firm's rules would stop applying, and the only sign is a line under Errors in /plugin.
The Code tab in Claude Desktop lists the package's servers, marked Plugin, next to your connectors. Leave the servers marked Plugin unconnected; your connectors already serve them.
Signed in with an API key instead, plugins do not sync. Add the connector yourself:
claude mcp add --transport http numbersgame https://mcp.numbersgame.xyz/mcp
On first use of a NumbersGame tool, Claude Code will open your browser to authorize. Same consent screen as Desktop, choosing all companies or only some. Don't do both: a connector added this way takes precedence over the one on your Claude account.
6.3 ChatGPT (Plus / Pro / Business / Enterprise / Edu)
ChatGPT takes one file for everything: the NumbersGame plugin. On /app/setup,
download numbers-game-plugin.zip — the NumbersGame, Ramp and Square connectors and
the Finance Wizard in one plugin, with your firm's own instructions if it has
published any. It runs in the ChatGPT desktop app: OpenAI marks a plugin that brings
its own connectors Desktop only.
Just you. In the app, click Plugins in the row of buttons on the left, then Add (top right) → Upload plugin archive, drag the zip in (do not unzip it), click Add plugin, and on the NumbersGame overview click Install Plugin. The same steps work on chatgpt.com, except the last button is Open in Desktop app, where the install finishes. The first time a connector is used you sign in to NumbersGame, choosing all companies or only some.
Everyone in a Business, Enterprise or Edu workspace. A workspace admin installs the plugin as above, then publishes it: Plugins → Personal → the three-dot menu on NumbersGame → Publish, choosing the roles that get it. It stays inside the workspace. Under Admin → Plugins → NumbersGame → Installation policy, choose Available (each person installs it) or Installed (installed for them); ChatGPT Business has one workspace-wide setting. The workspace shares the plugin, not the account: each colleague signs in to NumbersGame on first use and picks their own companies. A plugin showing Disabled by admin means checking it under Admin → Plugins and the Use plugins permission in Permissions & roles. To update, the admin uploads the new plugin the same way and checks the workspace copy shows the new version.
Browser only, no desktop app. Create the connector by hand. It needs developer mode, and it is a web-only flow: the phone app cannot do it.
- Settings → Security and login → Developer mode. On a Business, Enterprise or Edu workspace an admin turns this on first, in the workspace permission settings — it cannot be enabled for one member on their own.
- Go to Plugins and click + to create a developer-mode app for our MCP server
- Name it NumbersGame, describe it, and give it the URL
https://mcp.numbersgame.xyz/mcp - Choose OAuth when it asks how to authenticate
- Complete the same NumbersGame consent screen, choosing all companies or only some
In a chat, choose Developer mode from the + menu and select NumbersGame. This brings the connector only; add the Wizard as in §7.
For the Codex CLI on its own, add the connector from a terminal:
codex mcp add numbersgame --url https://mcp.numbersgame.xyz/mcp, then
codex mcp login numbersgame.
6.4 Revoking Claude's access
Open Security → Connected applications in NumbersGame. Every MCP client you've authorized for the current firm is listed with its scope, the companies it can reach (All companies, or Only N chosen companies), when it was first connected, and when it last refreshed a token. Click Revoke next to a row to invalidate its tokens.
Change companies switches a connection between all companies and only some, or adds and removes companies, without reconnecting. Adding companies asks for your password or a passkey; removing them does not. It applies to the next call; report links and upload links already handed out keep working until they expire (24 hours and 10 minutes). Only the person who connected an application can change its companies; staff signed in as you cannot.
Revocation reaches the MCP service at once. The next tool call from that Claude install fails with 401 invalid_token and the user is prompted to re-authorize.
Revoking only invalidates this user's tokens for this firm. The OAuth client registration (Claude Desktop's
client_id) is preserved, so re-authorizing is one click in the client. Removing the client globally is a support operation.
6.5 If your organisation sets Claude up for everyone
On a Claude Team or Enterprise plan, your Claude Owner can install your firm's NumbersGame package once for the whole organisation. Your people then open Claude with the package already there and only connect their own connectors. Following 6.1 to 6.3 as well would give them a second, personal copy beside the organisation's one, which is worse than doing nothing.
How the Owner installs it. The organisation route uses your firm's package from Set up → Package (Download the NumbersGame package). The public package cannot be added to an organisation.
- Remove the organisation's old NumbersGame Wizard skill, if it has one
- Open Organization settings → Plugins & skills → Add → Upload plugin → Add to an existing marketplace → Organization library and choose the file
- Open the plugin and set Distribution to Installed by default or Required. It starts as Not available, which means nobody gets it. Installed by default lets a member turn it off; Required does not
- Add each NumbersGame connector for the organisation in Organization settings → Connectors. Each colleague then connects it with their own account, which opens the NumbersGame consent screen (§6.1)
Updating it. When a newer package is out, the Owner downloads it from Set up → Package and uses Upload new version in the plugin's menu. Everyone gets it in their next new chat, with nothing to do. Version history keeps the earlier uploads, so a version can be put back.
Hiding the setup pages. If your organisation installs the package this way, an owner or admin can tell us so. Open Firm Settings and find Claude is set up centrally, then press Hide the setup pages.
What disappears, for everyone in the firm: the Connector and Skill pages and their two entries in the Set up menu, the banner that appears when the Wizard skill is updated, and the Add NumbersGame to Claude and Configure Claude steps on the dashboard.
What does not change: nobody is disconnected, no tool stops working, and nothing about the connector itself is altered — this only changes what the dashboard shows. Project files stays exactly where it is, because each company's project file is still downloaded and uploaded by a person here (§7.1), whatever your Claude admin deployed. You can switch it back on at any time and the pages return.
Where the package then comes from. Once the pages are hidden, your people get the package from your Organization library, not from us. That is the outcome to aim for: a copy somebody installs themselves stays on their account, and nobody remembers to remove it when it goes stale. If your Owner has not installed the package yet, a member asking them for it is exactly the conversation you want.
One thing a central rollout may not cover is the tool-permission step in §6.0. If your people are still asked to approve every single call, that setting is theirs to change in their own Claude — check with your Claude admin whether it can be set for the organisation instead.
6.6 Connecting a tool that uses a key (MCP keys)
Claude and ChatGPT sign in to NumbersGame, as described above. Some other AI tools and automations cannot: they connect to an MCP server only with a fixed key. Examples are an AI assistant such as Hark, an agent you or a developer built on the Claude or OpenAI API, and workflow tools. For those, create an MCP key.
- Open Security → MCP keys.
- Give the key a name, usually the tool it is for. This is how you, and your firm's owners and admins, will recognise it later.
- Choose which connector the key opens: QuickBooks / Xero, Ramp, Square, Shopify or BILL. Every connector is offered, even one your firm does not use yet. A key opens exactly one. A tool that needs two needs two keys.
- Choose Read only or Read and write. Nothing is pre-selected, on purpose. Read only covers reports and lookups. Read and write lets the tool also create and change transactions. Ramp and BILL keys are always read only.
- Press Create key. You see the same approval screen as when you connect Claude: it names the key, warns that it is a third-party tool, and lets you choose all companies or only some. Approve it.
- The key is shown once, with the Server URL and the header to use
(
Authorization: Bearer <the key>). Copy it into your tool straight away. NumbersGame keeps only a fingerprint, so if you lose it, disconnect it and create a new one.
What a key can do. Exactly what you could do yourself in the companies you approved, never more. Your role still applies on every call: if you are a viewer, or the firm is read-only, a read-and-write key can still only read. If you leave the firm, the key stops working.
How long it lasts. 90 days. A key cannot be renewed; when it expires, create a new one.
Ending it. A key is listed under Security → Connected applications as "MCP key", with what it opens, its access and its expiry. Disconnect it there. It stops working at once. Your firm's owners and admins see every key in Team → Connected clients (§5.0) and can disconnect it too.
Treat a key like a password. Anyone who has it can act as you in the companies you approved. Keep it out of shared documents, chats and code repositories. If one leaks, disconnect it.
7. Working with your AI bookkeeper
Out of the box, Claude knows it has a NumbersGame connector with accounting tools. To turn it into a bookkeeper — careful, conservative, polite, formats reports well — it needs the NumbersGame Wizard (our finance wizard skill) and per-company context. On Claude the Wizard comes inside the NumbersGame package (§6.1); each company's file is on that company's page.
1. Install the NumbersGame package (once per account). Follow §6.1, or §6.5 if your Claude Owner installs it for everyone. The package carries the Wizard, so there is no separate skill to upload. (Skills run on code execution: if the Wizard never starts, check Settings → Capabilities → Code execution and file creation.) Claude will now work as the Wizard whenever you ask it to do accounting work — trigger it naturally ("close the month", "run the weekly review", "categorize transactions") or by name: "NGWizard".
Throughout our docs, "the Wizard" means Claude running with this skill installed. The Standard Operating Procedures in the Help section are the Wizard's playbook — one page per job, each with a copyable prompt and the deliverables to expect.
What is inside. The Wizard is SKILL.md plus a reference/ folder holding
the parts only some jobs need: everything Xero-specific, the vendor-mapping
procedure and the bank-CSV import procedure. Claude opens those files only when
the work calls for them, so ordinary conversations carry about 4,400 fewer tokens
of instructions and leave more room for your books.
Claude without plugin support. If your Claude has no Plugins under
Customize, install the Wizard as a skill. On /app/setup, click Download
Finance Wizard — you get numbers-game-wizard.zip. In Claude open Customize →
Skills, click +, then Create skill → Upload a skill, and give it the zip
as it is — do not unzip it first. Add the connector separately (§6.1). If an
upload screen refuses the zip, /app/setup also links NGWIZARD.md, which holds
the same material in one longer file.
ChatGPT takes the plugin, not this zip. The ChatGPT desktop app has no way
to install a skill zip on its own. On /app/setup, download
numbers-game-plugin.zip instead: the connectors and the Wizard in one file, with
your firm's own instructions in it if your firm has published any. In the app:
Plugins (left) → Add (top right) → Upload plugin archive → drag the
zip in → Add plugin → Install Plugin. On chatgpt.com the last button is
Open in Desktop app. Call it in a chat with @numbers-game-wizard. With no
desktop app, chatgpt.com can still take the skill zip under Skills → Create →
Upload from your computer — the Wizard only, so add the connector as in §6.3.
In the Codex CLI, unzip the skill zip into ~/.agents/skills/ and call it with
$numbers-game-wizard.
On Claude Team and Enterprise, one person can do it for everybody. The Owner uploads your firm's package to the Organization library and sets its Distribution (§6.5). Colleagues then find the Wizard already there and only connect their connectors. That is the version of this page worth following if your firm is on a team plan: nobody is left running a stale copy on their own laptop. On a ChatGPT Business, Enterprise or Edu workspace the same is done with the plugin: an admin installs it, publishes it to the workspace and sets its installation policy — see §6.3.
Your firm can add its own procedures as files. On Custom Skill in the Set up menu, upload a Markdown file — your month-end close, your review checklist. It travels inside your firm's NumbersGame package, and Claude opens it only when that work comes up, so it costs nothing in an ordinary conversation. That is why a file can be 32,768 characters when the section above it is capped at 15,000: the section is in front of Claude every time, a procedure is not.
Up to eight files, 98,304 characters across all of them. Upload only plain text
or Markdown — a PDF or a Word document renamed to .md is refused, because a
skill file is instructions Claude follows and half-readable bytes are worse than
none. Files publish with your section and the same acknowledgement, and they roll
back together, so a rollback never leaves old instructions beside new
procedures.
Keeping it current. How the Wizard updates depends on how you installed it:
- The public package. To update it, use Check for updates on the plugin.
- Your firm's package, just for you: when we publish a new version, or someone at your firm changes your own section, a bar appears at the top of the dashboard with an Update button. Download the package again from Set up → Package, upload it with Customize → Plugins → Add → Upload plugin, and confirm Replace existing plugin?. Each person who installed it this way does this themselves.
- Your firm's package from the Organization library: the Owner downloads the new package and uses Upload new version (§6.5). Everyone has it in their next new chat.
- ChatGPT and the Codex CLI: download the plugin again and upload it the same way (or, for a skill zip on chatgpt.com, upload the new zip and delete the older copy so two versions are not on offer at once). In the Codex CLI, unzip over the same folder.
- A skill installed without the plugin does not update itself. Download it again and use Replace on the existing skill rather than uploading a second copy: two copies both stay active, and Claude follows whichever it picks.
Dismissing the bar hides it until the next change.
Your firm's own instructions (optional, and only if we have enabled it). Owners and admins get a Your part of the Wizard skill section in Firm settings. Two things go there:
- A trigger phrase of up to two words — your firm's name, usually — that opens the Wizard in Claude alongside the standard phrases.
- Your instructions, written as markdown: how your firm names things, what you check before closing, who deliverables are addressed to. Anything you would tell a new bookkeeper on their first week.
Saving stores a draft that nobody else can download. The package on Set up → Package always gives you the live version — the standard skill with your published section in it, never the draft. Most firms have their Claude Owner upload it to the Organization library (§6.5), which gives it to everyone in the organisation at once; uploading it in your own Claude works the same way for one person.
Once your firm publishes, everyone moves to your firm's package. The public package does not carry your instructions. Anyone at your firm who installed the public package removes it and installs your firm's package from Set up → Package.
Publish is what changes the package your team gets, and it asks you to confirm three things first, which are worth reading rather than clicking past: your instructions take precedence over the standard skill, including its safety rules. If you write "post corrections without asking me", Claude will do exactly that, and the step where it would otherwise have checked with a person is gone. The screen flags phrases that read that way and asks you to confirm you meant them — it will not stop you, because overriding is the point of the feature, but nothing should be switched off by accident.
Every published version is kept, so you can put an earlier one back. As with any change, your team has to update the package (above) before it reaches their Claude.
2. Add per-company context (once per company). Each company's page has its setup file. Download the company's .md file and add it to a Claude Project named after the company — Projects → New project → upload as knowledge file — or ask Claude to save it into the project for you (7.1). The file pins the realm ID and any client-specific rules you've entered, so every conversation in that project is scoped to the right books.
Together these teach Claude to:
- Always read before writing
- Show you a summary of every write operation before posting it to your books
- Use standard accounting categorization conventions
- Format reports as readable tables, not raw JSON dumps
- Flag anything that looks unusual or out-of-period
7.0 Attaching a document to a record
Two kinds of document, both onto QuickBooks or Xero, and both worth asking for in the same breath as the work.
A document Claude writes. "Post the journal and attach a note explaining the split." Claude composes a PDF — or a spreadsheet, for anything tabular — and attaches it. Nothing to set up.
A document you already have. Attach the supplier's PDF (or scan, or receipt photo) to the message and ask for it on the record: "attach this invoice to bill 4021". Claude uploads the file to the connector and puts it on the ledger. Two things to know:
- It needs code execution turned on in your Claude settings, because that is where your attached file physically sits. Settings → Capabilities → Code execution. If it is off, Claude will say it cannot make the upload — attach the file in QuickBooks or Xero directly instead.
- And that sandbox has to be allowed to reach us. Code execution can be switched on while the sandbox is still walled off from the internet, which is the default on many accounts. In Settings → Capabilities, scroll down, turn Allow Network Egress on, then type
mcp.numbersgame.xyzunder Additional Allowed Domains and click Add. Until you do, Claude says it cannot make outbound network requests and your file never leaves your machine — Troubleshooting has the why, the fix, and how to tell it apart from a refusal. - Claude may decline, and that is deliberate on its side, not a fault in the connector: sending a file to a server is exactly the shape of a request it is trained to be careful about. If it refuses, ask it to use the connector's own
request_attachment_uploadtool by name. It has always gone through for us on the second ask.
Watch the filename, and the two ledgers differ. On Xero a document addresses its attachments by name, so uploading a name it already has replaces that file and the original is gone — Claude refuses a collision and asks you which you meant, rather than finding out the hard way. On QuickBooks the same name simply produces a second attachment, so you end up with two rather than losing one. Both measured on 2026-09-03, not assumed. If several documents genuinely belong on one record, give them names that differ (scan.pdf and IMG_0001.jpg are the ones that bite).
What Claude should never do is re-type your document and attach that as though it were the original. It can read a PDF you paste in and write a fresh one carrying what it read — useful as a summary, never as the document of record. A misread figure in an official-looking file on the ledger is worse than no attachment at all.
7.1 Keeping company files current
The .md file you put in a Claude Project is a snapshot. When you edit a
company's Client Profile or client-specific rules in the portal, the copy sitting
in that project does not change. Claude keeps reading the old one, and nothing
about the conversation looks wrong — which is exactly why this needs a page of
its own.
Claude now replaces a stale file by itself. When Claude notices that the
company file in the project is behind, it fetches the current one with
get_company_file and saves it into the project's knowledge under the same name,
replacing the old copy. You can also ask for it at any time: "Use
get_company_file for this company and replace the company file in this
project." Only someone who can edit that project can have it replaced this way;
for anyone else, Claude says so and names who can, and the download on the
company's page still works. This needs Wizard skill 2026.09.27.1 or later.
An entity group's file is still replaced by downloading it.
Keep exactly one company file in a project. Two give Claude conflicting instructions. If an older copy is there and Claude cannot remove it, it will ask you to delete it.
The company page also has Let Claude save the file into the project: a ready-filled prompt to paste into that company's Claude project, for when its file is behind. Claude fetches the current file and replaces the old one.
If you added the connector before 27 September 2026, Claude may not have
get_company_filein its tool list yet. Refresh the tool list on the connector's page in Claude, then start a new chat (see Troubleshooting).
Near the top of every company file there is now a line like:
NumbersGame context version: 4
Every time the company's profile, its rules, or a firm instruction template attached to it changes, that number goes up. The file asks Claude to report the version it is carrying, and the Wizard skill asks Claude to report it on the first tool call of a conversation. That is how the portal knows.
Set up → Project files (/app/context) lists every company you can see,
the version it is on, and one of five statuses:
| Status | What it means |
|---|---|
| Current | Someone has been seen working with this version, or it was marked updated. |
| Updating | The file changed in the last week. People still working in older conversations have not picked it up yet — normal. |
| Behind | It changed more than a week ago and nobody has been seen with the new version. This is the one to act on. |
| Mismatch | A higher version than this company's was reported — almost always the wrong company's file in that project. |
| Not seen | Nothing has ever been reported. This is not the same as up to date — it usually means nobody has used Claude on that company yet. |
Entity groups are on this page too, marked with a Group badge. A group's
.md goes stale the same way a company's does — and more often, because adding
or removing a member changes the file for everyone using it. A group does
have a Client Manager — nameable here or on the group's own page — and for that
same reason it matters more than a company's: any member's rules moving stales
the group file, and only the person who owns that Claude Project can replace it.
What a group has no such thing as is templates, which attach to companies, so
the Templates column shows a dash rather than a warning: that field does not
exist for a group, which is not the same as one being unset. Groups are only
visible to people who can reach every company the group covers, so a colleague
may see a group on this page that you do not.
Where a company has no template attached, the Templates column is a picker rather than a dash: choose one and it is attached from the list, without opening the company. Attaching one changes that company's file, so its version moves and the row goes to Updating — which is the page doing its job, not a fault. Adding a second template, reordering them or removing one stays on the company page, because the order they render in is part of what they mean. The picker needs the instruction templates feature and an owner or admin; a group row keeps its dash, since templates attach to companies.
Every row has a Download .md button, which hands you exactly the file that company's (or group's) own page does — the current version, carrying your firm's instructions and that company's own. It is there so you can refresh a stale project without leaving the list.
Owners and admins also get an I've updated it button on any row that is not already Current. Use it when you know the file was replaced but nobody has opened a conversation yet — it records the claim so the row stops nagging. It can only ever move a company forward.
Read the honest version of what this page is. We cannot see inside anybody's Claude. Everything here is reported by Claude during a conversation, so silence means "we have not been told", never "fine". A firm where nobody has re-opened a project will show a wall of Not seen, and that is the page working correctly.
Client Managers
On each company — and on each entity group — you can name a Client Manager: the person at your firm who owns that Claude Project.
This matters more than it sounds. In a shared Claude Project, only the person who created it can replace a knowledge file. If Claude tells the wrong person their file is out of date, it has told nobody. So when Claude notices a stale file, it names the Client Manager — and if none is set, it falls back to "whoever set up this Claude Project", which is a guess.
In Firm settings → Client Manager you can press Expect one on every company. Read what that does carefully: it flags companies with nobody named — on the company page and on this dashboard, plus a count in Firm settings. A group with nobody named is flagged on the group's own page and caught by the No client manager filter on Project files, but the Firm settings count is companies only — so that number can read zero while a group still has nobody. It does not block anything. Setup files still download, and nothing about the connector changes. It is a way to see the gap, not a way to close it.
Prompts & instructions
Set up → Prompts & instructions (/app/prompts) is your firm's library. It
holds two kinds of entry:
- Instructions are the rules you would otherwise paste into fifty companies
by hand — your naming conventions, how you want journal entries described.
Owners and admins attach them to companies on each company's page, under
Firm instructions. An attached instruction is part of that company's
.mdfile, in its own section above the client-specific rules. - Prompts are one-off tasks your team copies into a chat and runs — a cleanup, the initial checks, a month-end close. A prompt is never added to a company's file, so Claude does not treat a one-off task as a standing order.
Only owners and admins open this page; it is where the library is written. Everyone else at the firm is taken to the Prompt catalog (below), which shows the same entries. The chips along the top filter by kind and by category (Onboarding, Company file, Cleanup, Initial Checks, Month-end close, Year-end close, Reference, Other, Automations, plus any your firm adds), and the search box looks in names, text and the Use when line.
- Editing an attached instruction bumps the version of every company using it. That is the point, and it is also why a small wording change can turn a page amber on Project files.
- An instruction that is still attached to a company cannot be deleted, and cannot be turned into a prompt. Detach it first — the message names the companies. Nothing is ever detached for you.
- A category your firm created can be deleted once no entry uses it. The built-in categories are fixed.
- This is switched on per firm. If you do not see it under Set up, ask us.
- The Automations category holds the prompts that Automations workflows start from, and only matters if your firm has Automations (8.8).
NumbersGame standard prompts. Entries marked NumbersGame are ours: a standard prompt for onboarding, one for saving the company file (Save the company file) and one for Initial Checks. They let you onboard a client before your firm has written anything. You cannot edit ours, but you can Copy one as it is, or use Make my own copy to adapt it; your copy is then offered instead of ours. We never change your copy — when we publish a newer version, your copy shows a notice until you click Mark as reviewed. Ours is offered only while your firm has no prompt of its own in that category, and Don't offer it hides one of ours (Offer it again brings it back).
Changing the library from Claude
Claude can read, write and publish the library too, so a firm that works in Claude does not have to open this page. Ask in plain words: "show me our month-end close prompt", "turn this checklist into an instruction and attach it to Acme", "rewrite our onboarding prompt so it also asks about payroll".
- Everyone at the firm can read the library through Claude. Only owners and admins can change it, and only from a connection that may write. A member or viewer who asks gets a clear no that says who can.
- A change from Claude is live at once, the same as a save on this page. Changing an attached instruction changes the file of every company using it, and Claude says which companies that is. To have someone look first, ask Claude to save it as a draft: the entry then shows A change is waiting as a draft here, with Publish it and Discard it.
- Every version is kept. Each entry shows who last changed it, and whether it was in Claude or on this page. To undo a change, ask Claude to restore the earlier version.
- A company whose books are read-only can still have its instructions changed: the library is your firm's own text, not the books.
- Converting a document you already have. Paste or upload an existing prompt, checklist or report, and Claude can turn it into a library entry. For your own Excel or Word report it builds a report template (8.5a): it replaces each typed number with a calculation, writes the Definitions, previews it on a company you choose and approves it only when you agree.
- In Claude, the first time: refresh the NumbersGame connector's tool list and start a new chat, so Claude sees the library tools.
Prompt catalog
Set up → Prompt catalog (/app/catalog) is how everyone at the firm,
viewers included, finds and copies a prompt. It is read-only and shows the
whole library with the same category chips and search.
- Choose a company and every prompt is filled in for it (name, ID, ledger), ready to paste into that company's Claude project.
- Under the Onboarding and Initial Checks chips, answer your firm's questions and the matching prompt comes up, outside the onboarding flow.
- With a company chosen, it names the onboarding and Initial Checks prompts last run on it, with Open the same prompt. The company page links there too.
Onboarding a new company
Connecting a new company takes you to its onboarding screen instead of the company list. Every firm has it (since 2026-10-15). It uses your firm's onboarding prompts, or ours until you have your own. The prompts run in Claude, which is why Claude is connected before the first company (§6.1):
- Answer the questions your firm wrote (on Prompts & instructions, under the Onboarding chip), if it has any. Each onboarding prompt says which answers it is for, so the list narrows as you answer. If nothing fits your answers, every onboarding prompt is shown.
- Pick the prompt. It is already filled in for this company — its name and its ID — so it works in a brand-new, empty Claude Project.
- Copy it, paste it into Claude with the NumbersGame connector on, and let it finish. It fills in the company profile. Then tick I ran this prompt and it finished successfully.
- Under Save the company file, copy the second prompt into the same chat. Claude fetches the company file and saves it into the project. Keep exactly one company file in a project: if an older one is there and Claude cannot remove it, it will ask you to delete it.
- Answer Is the company file in the Claude project? — either Finished the onboarding and the file is in the Claude project or Saving the file to the project did not work. Only the second shows Download company file: download it and add it to the project yourself (only people who can edit a project can add files to it).
- If your firm switched on the Post onboarding prompt (Firm Settings, owners and admins, off by default), the screen then offers the Initial Checks: your firm's questions about the books, then the matching prompt for a first look at their state, run in the same Claude project once the company file is there. It is optional, and recorded apart from onboarding; you can run it later from the company page, which shows when it last ran with a link to the same prompt.
- Click Finish onboarding. It needs the tick from step 3 and the answer from step 5, and nothing is recorded until you click it.
Onboarding never blocks anything: Claude, the connector and the company file all work whether or not it is done. Until someone clicks Finish onboarding, the company shows an Onboarding not done badge on the Companies list and on its own page. Anyone at the firm who can see the company can finish it, except viewers, who can read the screen but not complete it. The company page then shows who onboarded it, with which prompt and version, and when; whether the company file was saved in the Claude project or downloaded instead; and a link to redo it.
Companies that were already set up before your firm used onboarding (their profile is filled in) are never badged or sent through it. Connecting several Xero organisations at once lands on the Companies list with a Start onboarding link for each new one.
The company page and the onboarding screen also say when the company profile last changed, and whether Claude or a person changed it — the quick way to check that an onboarding prompt really wrote the profile.
Which skill everyone is running
The same page shows Skill adoption for owners and admins: who at your firm has been seen running which Wizard version, over the last 7, 14 or 30 days, with the percentage on the current one.
Two columns that look like they should agree, and should not be read as if they do: Running is what Claude reported from inside a conversation. Last downloaded is what the portal handed out. Downloading a skill is not installing it, and the gap between those columns is usually the whole story.
8. Example workflows
8.1 Read-only — financial reports
Things you can ask without granting write access:
"Show me Acme Coffee's profit and loss for May, comparing it month-over-month with April."
"What's the cash balance across all my Boba Tea companies right now? Format as a one-line summary plus a table by company."
"Pull the accounts receivable aging for Smith Logistics. Anything over 60 days?"
"List every transaction over $5,000 in the last quarter for Acme. Group by vendor."
"Has Acme's gross margin been trending up or down over the last 12 months? Plot it as a simple ASCII chart."
"Show me the top 10 expense categories year-to-date for Acme. What changed most vs last year?"
8.2 Write — with confirmation
These require qbo:write scope on the authorization screen. Claude will always show a summary first and wait for your "yes":
Invoicing
"Draft an invoice for Stellar Marketing — 40 hours at $150/hr for May consulting, terms net 30."
Claude: "I'll create invoice #1145 for Stellar Marketing, $6,000, terms Net 30, due 2026-06-15. Want me to send it via QuickBooks Email or just save it as a draft?"
Recording payments
"Pacific Vendors just paid invoice #1102 — $2,300 — by ACH today."
Claude: "Apply $2,300 ACH payment received today to invoice #1102 (Pacific Vendors). The invoice is currently $2,300 outstanding, so this fully settles it. Proceed?"
Expense entry
"Record the $84.20 office supplies receipt I'm sending you — Staples, paid by Visa ending 4242."
Claude: "I'll record an expense of $84.20 to category 'Office Supplies', payment account 'Visa 4242', vendor 'Staples', date today. Receipt attached as memo. Confirm?"
Categorization batches
"Show me all uncategorized transactions for May. I'll tell you how to categorize each batch."
Claude lists them, you reply "Anything from Stripe → Sales: Online; anything from AWS → Software Subscriptions; anything from Uber Eats → Meals: Client", Claude applies in one batch and confirms.
8.3 Recurring close
A monthly close prompt you can save and re-run:
"Run the monthly close checklist for Acme Coffee, period May 2026:
- List uncategorized transactions (don't fix them yet — just list)
- Show me unreconciled bank transactions vs the May statement total of $48,221.18
- Pull the trial balance
- Compare expense categories May vs April — flag anything ±15%
- List open invoices over 30 days"
Claude works through all five and gives you a single report. You decide what to act on.
8.4 Multi-company comparisons
Once you have several companies connected on Growth or Scale:
"For each of my coffee-shop companies, what was their May revenue and net margin? Rank them."
"Has any of my companies missed payroll runs in the last 90 days?"
8.5 Saved reports and the company dashboard
When Claude finishes a piece of work you want to keep — a monthly close summary, a review of flagged transactions — it can save the output against that company. Ask for it explicitly:
"Save that close summary as a report run for Acme Coffee."
Saved runs appear on the company's page in Companies → [company], and the most recent one is rendered on that company's Dashboard tab so you can re-read it without going back through the chat.
Each report type can carry its own retention period — set one and older runs of that type are purged automatically. Types with no retention set are kept until you delete them, or until the company or firm is deleted.
8.5a Report templates — the same report every month
Your monthly pack as your own Excel or Word file. NumbersGame pulls the books, does every calculation and fills in the file, so each run has the same numbers in the same layout, for every client. Claude only writes the commentary. (Report templates are being introduced firm by firm; if you don't see Report templates under Prompts & instructions, ask us to switch them on.)
Start from an example. Download one, open it, and adapt it to your own report:
Who does what. You decide once what the report shows and how each number is calculated; Claude can do the writing for you. After you approve the template, NumbersGame does every calculation on every run, from the books, the same way each time. Neither you nor Claude calculates anything when the report runs.
The quickest way: let Claude build it. In a Claude chat, attach the report you send today (Word or Excel) and, if you have one, the prompt you use to make it. Then ask:
Turn this report into a NumbersGame report template, as a Word file (or: Excel file). Replace every number with a marker like {{revenue}}. Turn each table that grows or shrinks into one repeating row, starting with {{each name}} in its first cell and, in Word, ending with {{end}} in its last cell. Put each piece of written explanation in {{ask "…"}}. At the end, add a Definitions section with a Setting | Value table and a Name | Formula | Description | Format table, with one formula for every marker. Use only the functions and groups in section 8.5a of the NumbersGame manual. Tell me which numbers in my report you could not express that way.
Describe a calculation in your own words if Claude asks ("net margin is profit after all costs as a share of revenue"). Check what it made, then upload it as described below. If the upload check names a problem, paste it back to Claude and ask for a corrected file.
A template has two parts.
1. Your layout, with markers where the values go
{{revenue}}— a value you define in the Definitions. Alone in an Excel cell it is written as a number, so the cell's own number format applies.{{company}},{{period}},{{period.compare}},{{run_date}}— filled in for you.- A repeating row — a row whose first cell starts with
{{each expense_lines}}, with{{.name}},{{.amount}},{{.compare}}and{{.change}}in its cells. It is copied once per line. In Word, end the row's last cell with{{end}}. {{ask "Explain the revenue change in at most three sentences"}}— the commentary, the only text Claude writes.
Put totals in your Definitions rather than as an Excel SUM() over a repeating row: rows are inserted when the report is filled.
2. Definitions — what each marker means
In Excel, a sheet called Definitions. In Word, a paragraph that reads exactly Definitions at the end, followed by two tables. Either way they are removed from every report.
- A table headed Setting | Value:
period(month, quarter, year_to_date, fiscal_year),method(accrual, cash),compare(none, prior_period, prior_year) and, if you want to fix it,fiscal_year_start. - A table headed Name | Formula | Description | Format, one row per value:
| Name | Formula | Description | Format |
|---|---|---|---|
| revenue | total(pl, "Income") | Total income for the month | money |
| gross_margin | (revenue - cogs) / revenue | Income less cost of sales, as a share of income | percent |
| expense_lines | lines(pl, "Expenses") | sort(amount, desc) | top(8) | The eight largest expense accounts | list |
| ar_over_30 | total(ar, "over_30") | Receivables more than 30 days overdue | money |
A formula reads pl (profit and loss), bs (balance sheet), ar and ap (agings), with pl.compare and bs.compare for the comparison period. Its groups — Income, Cost of sales, Expenses, Other income, Other expenses, Cash, Current assets, Fixed assets, Assets, Current liabilities, Liabilities, Equity — mean the same in QuickBooks and Xero, so one template serves both. You can also name your own groups ("Marketing"); each company maps them to its own accounts.
What a formula can use:
- Arithmetic
+ - * /, brackets, comparisons (> < >= <= = !=),and,or,not, and the name of any other value in your Definitions — so a long calculation can be built from simple steps. total(source)ortotal(source, "group")— the sum of a group of accounts, e.g.total(bs, "Current assets").line(source, "Account name")— one account's amount, e.g.line(pl, "Rent").lines(source, "group")— the group's accounts as a list. Each item hasname,amount,compareandchange.ar.rowsandap.rows— one item per customer or supplier, withcurrent,days_1_30,days_31_60,days_61_90,over_90,over_30andtotal.total(ar, "over_30")adds up one column.- On a list:
| where(condition),| sort(field)or| sort(field, desc),| top(n), andsum(list, field),count(list),avg(list, field). if(condition, then, else),round(x)orround(x, decimals),abs(x),min(a, b, …),max(a, b, …).
Formats: money, money_signed (shows + or −), percent (write the share, e.g. 0.25 shows as 25.0%), number, integer, text, and list for a repeating row.
Some calculations firms ask for:
| Name | Formula |
|---|---|
| net_margin | (revenue - cogs - expenses) / revenue |
| current_ratio | total(bs, "Current assets") / total(bs, "Current liabilities") |
| marketing_share | total(pl, "Marketing") / revenue |
| expense_growth | (expenses - total(pl.compare, "Expenses")) / total(pl.compare, "Expenses") |
| rising_costs | lines(pl, "Expenses") | where(change > 0.1 * compare) | sort(change, desc) |
| cash_warning | if(cash < expenses, "Less than one month of costs in cash", "") |
Upload, check, approve. Prompts & instructions → Report templates → New report template. Every upload is checked within seconds, and each problem is named with its place ("Monthly report!B7: {{revenu}} is not a calculation"). Preview it on a company, then approve it. A new upload is a new version; reports already made keep the version they came from.
Check the numbers before you approve. The preview is the moment that makes the numbers trustworthy. Preview a client and a month you have already closed, and compare a few figures with QuickBooks or Xero: revenue, net result, cash, receivables, and any calculation of your own. If one is off, the formula is wrong, not the books: fix it in the file and upload it again. A value the books can't answer (a group not yet mapped, a division by zero) is left blank with a warning that names it, never shown as 0.
Run it in any of three ways:
- On the company's page, the Report templates card: choose the template, the month and the format, and click Run report. It starts straight away and appears under the company's reports within seconds.
- On a schedule, on the same card: every month on a day and hour you choose, for the month just closed.
- Ask Claude: "Run the Monthly management report for Acme, September." Claude writes the commentary in the chat.
Every report can be downloaded as Excel or Word (your own file), PDF, Markdown or plain text from its page.
Your own groups. If a template names a group such as "Marketing", map it once per company — on the company's Report templates card, or ask Claude to "map Marketing for this company". Until it is mapped, that value is left blank with a warning in the report, never shown as 0.
Commentary on a button or scheduled run is written by your AI runner if your firm uses Automations. Otherwise the report says "Commentary not written" in that place, and you can ask Claude to finish it.
In Claude, the first time: after report templates are switched on for your firm, refresh the NumbersGame connector's tool list and start a new chat. Claude keeps the old list until you do, and won't see the template tools.
What a template can't calculate yet. Formulas read the profit and loss, balance sheet and the two agings, for one period and one comparison. Not yet available: budget against actual, figures per class or location, transaction detail from the general ledger, several months side by side (a 12-month trend), the number of days in the period (for DSO), and figures that are not in the books at all, such as headcount. If your report needs one of these, tell us. We add it to the template engine so it is calculated in the same way as everything else. Don't ask Claude to work it out in the commentary: a number calculated there can differ from run to run, which is the problem templates exist to solve.
8.6 Slack
If your team lives in Slack, you can connect a workspace and route each company's task updates to a channel.
- Set up → Firm Settings → Add to Slack and authorize the workspace (owners and admins)
- On a company's page, pick the channel its updates should post to
- Map your firm's members to their Slack users so only authorized people can act on tasks
Who can approve, complete or delay a task. Owners, admins and members, in Slack and on the company page alike. Viewers can't, and nobody can act on a company they are restricted from. In Slack the clicker must also be linked to their NumbersGame account; when someone leaves or is removed from the team, their link is removed with them. Editing or deleting a task stays with owners and admins.
NumbersGame posts task messages and maintains its own section in the channel's canvas. It doesn't read your messages, files, or DMs.
Private channels: Slack hides private channels from apps that haven't been invited. In the channel, type
/invite @NumbersGame, then hit refresh in the channel picker.
8.7 Parent companies — reporting across several entities
When a client owns several businesses, each one is its own company with its own realm ID, and a Claude project set up for one of them cannot see the others. A parent company groups them so you can work across the whole set in one project.
A parent is not a connected company. It has no connection of its own, no vendor mappings and no accounting basis — it holds the group's name, the list of companies in it, the rules you want followed when reporting across them, and the summaries Claude stores.
Creating one
- Companies → Parent companies
- Type the group's name — usually the holding company or the family of businesses — and click Create
- On the group's page, add each company from the dropdown. A company belongs to one group at a time.
- Write the group rules: how you want these entities reported together. This is where you say which intercompany balances to eliminate, which entity leads, and what should stay separate.
- Optionally state the group's fiscal year end and reporting currency under Company info
- Click Download group .md file and start a new Claude project with it
The file contains every company's realm ID, so that one project can pull all of them. Rules you edit afterwards reach Claude on its next call — you don't have to download the file again.
Combined, not consolidated
Adding entities together gives you a combined view. It does not eliminate intercompany balances: a loan between two of the companies shows in full on both sides, and nothing in QuickBooks knows the two are related. If eliminations matter, say which ones in the group rules.
Claude is also told to check each report's accounting basis and currency before combining, and to stop rather than add figures that disagree — cash-basis and accrual-basis numbers don't sum, and there is no currency conversion anywhere in NumbersGame.
Who can see a group
A parent company is visible only to people who can access every company it covers. If you restrict a colleague from one of the companies, the whole group disappears for them — including any summaries stored on it, since those contain that company's figures. When you add a restricted company to a group, NumbersGame tells you who will lose sight of it before you confirm.
Deleting a company that is in a group
Erasing a company also deletes any group summaries that covered it. A summary is one document, and one company's numbers cannot be lifted out of it, so the other entities' analysis goes with it. Both the company page and the staff console say how many summaries will be destroyed before you confirm.
8.8 Automations — work that runs without you
Companies → Automations. Everything above happens because you asked Claude in a conversation. Automations are the same kind of work on a schedule, run by us rather than by you sitting there.
A workflow is a saved instruction — "review last month's uncategorised transactions and write me a summary", "produce the month-end pack for this client" — with what it is allowed to read. It can start from a prompt in the Automations category of your library. Which month does it review? is either the month just ended (a close review) or the current month to the run date (a status check before month end). A schedule decides when it runs — daily, weekly, monthly or yearly — at an hour in the company's own time zone, so set the company's time zone on its page first. Run history shows every run, its status, and how many tokens it used; This month shows how many runs your firm has used.
A run can only read. It cannot create, change or delete anything in your books. The report it writes is saved on the company under Reports, next to the ones you save from Claude, so a scheduled review appears on the company dashboard the same way one you asked for does. Nothing is sent to your client.
Two things worth knowing. Automations run on a model we host rather than through your Claude subscription, so your firm consents to that separately before the first run — the same shape of permission as bank feeds and Xero. And this is in limited release: email us if you want it switched on. How to Use → Automations covers setting it up in full.
8.9 Budgets
Claude can read a client's budget, build one, change one, and compare it against what actually happened — on QuickBooks Online and Xero alike for reading and reporting, and on QuickBooks for building and changing.
Seeing what is there
"What budgets does Acme Coffee have?" "Show me the FY2027 operating budget."
A company often holds one budget per financial year, so it is worth asking which exist before assuming which one a question is about. If you don't name one and more than one budget could cover the period you asked about, Claude asks which you mean rather than picking.
Budget vs actual
"How is Acme tracking against the FY2027 budget this quarter?"
You get a line per account per period: what was budgeted, what actually happened, the difference in the company's currency and in percent, and whether that difference is good or bad — above budget is favourable for income and unfavourable for an expense, worked out from the account's own type rather than guessed. Accounts with spend but no budget line appear too, which is usually the row you most want to see.
Building one
"Build a 2027 budget for Acme: 120,000 of rent, 48,000 of software, 30,000 marketing, spread evenly across the year."
Claude can take annual figures and spread them across the months or quarters, or take a month-by-month spreadsheet you paste in. If you attach a CSV, ask for a dry run first — Claude shows you every line it would write, per account and per period, with the totals, and writes nothing until you say go.
Three things worth knowing before you start. They are QuickBooks' rules, not ours, and they are the ones that surprise people:
- A budget line can be changed or zeroed, but never removed. QuickBooks has no way to delete a single budget line. If you budget the wrong account, the tidiest fix is to set that line to zero — it stays on the budget showing nothing — or to delete the whole budget and rebuild it. So it is worth getting the accounts right even if the numbers are rough.
- Changing a budget only touches the lines you mention. Ask to change March and March changes; every other month stays exactly as it was. You do not need to re-send the whole year.
- Budgets built here are profit-and-loss budgets. QuickBooks' API cannot create a balance-sheet budget — it accepts the request and quietly makes a P&L one instead, so Claude refuses rather than hand you the wrong thing. Build a balance-sheet budget in QuickBooks itself; Claude can read and report on it afterwards.
Deleting a budget takes every line with it and cannot be undone, so Claude tells you what the budget contains and asks you to confirm on the spot. The reply includes the full contents, which is the only copy — keep it if there is any chance you want the budget back.
On Xero, budgets are read-only: Xero's API offers no way to create or change one. Build it in Xero (Accounting → Reports → Budget Manager) and Claude can read it and run budget vs actual against it here. One quirk worth knowing: Xero only returns the periods you ask for, so if a budget looks short, widen the dates.
9. Managing your account
9.1 Passkeys
Account menu → Security lets you add, rename, and remove passkeys. We recommend at least two — one on your daily-driver device and one on a backup (phone, second laptop, or hardware key).
If you remove your last passkey, you'll still be able to sign in with email + password. If you remove all your passwords too (not currently supported), you'll need account recovery via the email on file.
9.1a Two-step sign-in
By default a passkey is an alternative to your password: either one signs you in. Two-step sign-in makes it an addition — on a browser we have not seen before, you need both.
When you actually see it. Only on an unfamiliar browser. Sign out and back in on your own laptop and nothing changes; the second step appears when someone signs in from somewhere new, which is what a stolen password looks like. A browser that has completed the step is remembered for 90 days.
Turning it on.
- For yourself: Account menu → Security → Two-step sign-in.
- For everyone in the firm: Set up → Firm Settings → Two-step sign-in (owners and admins). Individuals can still switch it on for themselves; they cannot switch off a firm requirement.
What the second step is. Your passkey. If you have none on the machine you are sitting at — a new laptop, a borrowed desktop — choose email me a code and we send a six-digit code to the address on your account. So a new machine can never lock you out.
Remembered browsers. Security lists every browser that has passed the step, with when it was last used and when it expires. Forget any of them — do that for a laptop you no longer have. Resetting your password forgets all of them at once, which is the right move if you think someone else has your password.
If you are locked out. There are no recovery codes to lose. Your firm's owner or admin can reset you from Team → Reset two-step, which lets you sign in once within the hour and switches your own setting off so you can set it up again. If nobody in the firm can do it — or the locked-out person is the only owner — contact us and we will.
"Too many sign-in attempts for this address." Someone, perhaps not you, has typed wrong passwords for your email. Browsers you have signed in on before are not affected: sign in there as usual. On a new browser, choose Email me a link to sign in from this browser, open the link in that same browser within 15 minutes and press the button; then sign in with your password. The link does not sign you in by itself. A passkey also works, if you have one. Reset your password only if you think someone knows it: a reset signs you out everywhere and removes your passkeys and your Claude, ChatGPT and other AI connections.
Two notes worth knowing before you switch it on for a firm:
- Nobody is stranded. A colleague with no passkey completes the step with the emailed code, so turning it on does not require everyone to set up a passkey first.
- It does not touch Claude. The connector authorises separately (§6); two-step sign-in is about the portal.
9.1b Sign In with Xero
You can sign in with your Xero login instead of typing your password.
Linking it. Account menu → Security → Sign In with Xero → Link a Xero login. Confirm with your password (or a passkey), then sign in to Xero and allow access to your name and email address. That's all NumbersGame asks Xero for here: linking a login does not connect any Xero organisation. You can link more than one Xero login.
Signing in. On the sign-in page, choose Sign In with Xero. It takes the place of your password, and nothing more: where two-step sign-in applies (§9.1a), a new browser still asks for your passkey or an emailed code, sent to the address on your NumbersGame account.
Link only a Xero login you personally own. If you sign in to Xero with a client's email address, don't link that login. Whoever controls that mailbox can reset its Xero password, and could then sign in to your NumbersGame account, which may cover all your clients.
Removing it. Security → Sign In with Xero → Remove, confirmed with your password or a passkey. Resetting your password also removes every linked Xero login.
Not linked yet? Signing in with a Xero login that isn't linked to an account is refused, and never creates an account. Sign in with your email and password first, then link it.
Staff accounts sign in with email, password and passkey, so Sign In with Xero isn't available to them.
9.2 Changing plans
Billing → Switch plan.
- Upgrades take effect immediately and Stripe prorates the difference.
- Downgrades take effect at the end of your current billing period, not straight away. You keep the higher plan until then, and there's no refund for the remainder. A downgrade can only be scheduled once your firm already fits the smaller plan, and while it is scheduled, new connections stop at the smaller plan's limit, so the switch always fits. Until it kicks in, the pending change is shown on the Billing page and you can cancel it; cancelling lifts that limit again.
Make sure your connection count fits the smaller plan before the switch date — if you're at 6 connections on Growth and dropping to Starter (3), disconnect 3 companies before the period ends.
9.3 Invoices & receipts
Stripe handles all billing emails. To see past invoices or update your payment method, click Manage subscription under Billing — it opens Stripe's Customer Portal.
9.4 Exporting your data
Billing → Export firm data (owner-only) generates a ZIP with your firm record, members, connected companies, and every tool call on record. Click Build export, then Download the export. The download works only for a signed-in owner of your firm, each download is recorded, and it can be downloaded for 24 hours; after that it is deleted from our storage automatically. Build a new one if you need it again. You can build up to five a day. Useful for archives or migrations.
There is no link to share. The file is handed over only to a signed-in owner of your firm, so forwarding the page or its address gives nobody else the export. It still holds your firm's member list: keep the downloaded ZIP somewhere only the right people can open.
We record that the export happened — who asked and when, never what was in it. The same is true of every other file the portal hands you.
9.5 Seeing who used what
Two entries in the account menu answer this, from opposite ends of the same history.
Account menu → Usage — the summary, for owners and admins. Tool calls, active people, companies worked on, portal visits, and how many calls failed or were refused by a rule, over the last 7, 30 or 90 days. Under the counters: a day-by-day chart, a weekday-by-hour heatmap of when your team actually works, and three tables — people, companies, and which tools are being used (with how long they take).
Account menu → Audit log — the same history one line at a time, open to every role. Every tool call with its company, tool, outcome, duration and error code, filterable by company, tool, or success and failure. This is the screen for "what exactly happened at 14:03".
Worth knowing:
- Usage is owner and admin only. It reports on everyone in the firm, which is firm administration rather than your own work. The audit log is open to everybody.
- Restricted companies stay restricted. If a company is limited to specific people, an admin without access to it will not see it named on either screen. The firm owner sees everything.
- Portal visits are not tool calls. Someone with visits and no calls signed in and ran nothing — usually somebody who needs a hand getting Claude connected.
- Set the clock. Both screens have a timezone selector. "When is my team active" has a different answer in New York and Amsterdam, so pick the one your team works in.
- Nothing here is billing. Plan limits and invoices live under Billing (§9.2, §9.3); these two screens are activity, not money.
9.6 Dark mode
The sun/moon button beside your account menu — at the bottom of the left-hand menu, or in the header on the classic menu — switches between light and dark. Light is the default. Your choice is remembered on that device — so you can have dark on the laptop and light on the desktop.
9.7 Closing your account
Account menu → Security → Delete account starts a 30-day soft delete. Sign-in is blocked immediately; the data is hard-deleted after 30 days. If you change your mind, contact support before day 30.
This deletes your own account, so any member can do it — with two exceptions that stop it quietly orphaning a firm. You are refused if you are the owner of a firm that still has other users (transfer ownership first, on Team), and if any firm that would be deleted with you still has companies connected (disconnect them first). You will also be asked to re-enter your password or use your passkey, and to type your own email address.
9.8 Compliance — the page to hand your client's IT reviewer
Account menu → Compliance. When a client's IT or security people send you a questionnaire, this is the answer. It lists the controls we run, how each is verified, and when it was last checked, alongside live metrics. It prints, so it can go straight into a response.
How much detail it shows is set per firm, and it fails closed — if we have not agreed a deeper level with you, you get the summary rather than an error. Every view is logged.
One entry is worth reading before you send the page on, because reviewers ask about it directly: "Four routes carry your data out, and no others" lists exactly where your data can go — to your own people through the portal, to Claude when one of you asks it to do something, back to QuickBooks or Xero when you make a change, and to your firm's own AI provider if you have turned that on. It also says what we record: that data moved, who asked and which company.
9.9 What's new
Account menu → What's new, with a dot when there is something you have not read. A short note for each capability as it ships, written in the same voice as this manual. Nothing appears there before it is real and switched on.
10. Troubleshooting
"Claude says it doesn't see my QuickBooks companies." If the connection was approved for chosen companies only, add the company under Security → Connected applications → Change companies; no reconnect is needed. Otherwise the company is not connected to the firm yet, or it is restricted from you (§4.3, §5.1).
"Sign-in keeps failing with a CAPTCHA error."
The Cloudflare check expired between page-load and submit. Refresh and try again. If it persists, disable any aggressive privacy extensions on app.numbersgame.xyz (uBlock Origin with default lists is fine).
"My passkey works on my phone but not my laptop." Passkeys can be device-local (lives only on that device) or synced (iCloud Keychain, Google Password Manager, 1Password). The first one you registered may be device-local. Easiest fix: add a second passkey on the device that doesn't have one.
"A tool call says payment_required."
Your subscription is past-due. Stripe will retry the card a few times; check Billing → Manage subscription for the actual status. NumbersGame blocks tool calls 7 days after the start of the unpaid period — not 7 days after the card first failed, so in practice it bites sooner than it sounds.
"Claude won't write to QuickBooks or Xero." Check three things: your role (Viewers are read-only), whether Read-only mode is on in Firm Settings, and whether the company has Read-only for this company switched on in its Settings section. Re-authorizing the connector does not change any of these.
"Claude insists it can't create or update something — e.g. 'I'm not able to create an account.'"
This is almost always the connector's tool permissions in Claude, not a NumbersGame problem. Each NumbersGame tool has to be approved before Claude will use it, and the write tools — anything that creates or updates (accounts, classes, departments, customers, vendors, items) — are often still unapproved while the read tools already work. In Claude, open Customize → Connectors → NumbersGame MCP, find the tool you need (e.g. create_account), and enable/approve it. Then ask again. Setting the categories up front (§6.0) avoids this entirely. Quick way to tell this apart: if Claude flatly says it can't, it's the approval list; if it actually tries and hands back a QuickBooks error message, it's one of the two issues above instead.
Claude is connected but says no company is connected yet. That is expected when you connected Claude before your first company, as the setup checklist has you do. Connect the company on Companies (§4.3); Claude can use it straight away, with no reconnect, as long as the connection was approved for All companies I can access.
"The tool I need isn't in the connector's list at all." Claude keeps its own copy of the list of NumbersGame tools. Anything we add or rename afterwards stays invisible to you until that copy is refreshed — and a renamed tool can leave Claude calling a name that no longer exists. Nothing is wrong with your account. In Claude, open Customize → Connectors → NumbersGame MCP and refresh the tool list, then start a new chat: a chat that is already open keeps its old list. You do not need to disconnect or reconnect. Everyone who uses the connector has to do this for themselves — it is per-person, not per-firm, so a colleague refreshing does not fix it for you. A tool that appears after refreshing may still need approving before Claude will use it, as above.
"I asked Claude to add a task and it asked me a question instead." If the wording describes something that repeats — monthly, weekly, quarterly — Claude deliberately stops and asks whether you want the work done now, a single task anyway, or a real recurring schedule. This is on purpose: a one-off task for a monthly obligation gets completed once and then nothing brings it back, and nothing warns you. Answer with one of the three and Claude proceeds; ask again in the same words and you get the same question, because only you know which you meant. Recurring schedules live on the company's page under Recurring schedules, and Claude can set one up for you. See Recurring tasks in the SOP library for the details — including why "last day of month" is not the same as "day 31".
"Something failed and Claude's explanation isn't enough." Open Account menu → Audit log and filter to Failed. Every call is there with the company, the tool, how long it took, and the error code NumbersGame or QuickBooks returned — which is the thing support will ask you for. If you're an Owner or Admin, Usage counts the same failures by day and by tool, which answers the different question: is one thing broken, or is everything?
"Claude says it can't make outbound network requests when I ask it to attach my file." Your file sits in Claude's code-execution sandbox, and that sandbox has to make one ordinary HTTPS request to hand the bytes to NumbersGame. On many accounts it starts with no internet access at all, so the request never happens. This is a setting on your side; nothing is wrong with the connector.
Why Claude is strict about it. The sandbox can see every file you attach to a conversation. A sandbox that can also reach any address on the internet is, by construction, a way for your data to leave — and not only when you mean it to: a document you upload or a page Claude reads can carry instructions aimed at Claude, and a model that acted on them would be sending your books somewhere you never named. So network access is off by default and is opened one address at a time rather than in general. It is the right default and we would not ask you to switch it off wholesale.
How to change it. In Claude, open Settings → Capabilities and scroll down:
- Turn Allow Network Egress on.
- Below it, under Additional Allowed Domains, type
mcp.numbersgame.xyz. - Click Add, and check it appears in the list.
That is the same host your connector already talks to, and the only one we need — you are not opening the sandbox to the internet, you are naming one address, which is usually the answer to the question an administrator will ask. On Team and Enterprise plans these controls often belong to an administrator rather than to you, so the request may have to go to whoever runs your workspace. Nothing else stops working while you wait: documents Claude writes itself are built on our side and never touch the sandbox, so those attach normally.
How to tell this apart from a refusal. Both look like "Claude won't upload my file", and the two fixes are opposite ones. Open Account menu → Audit log: if request_attachment_upload is there but no upload_attachable follows it, the upload was prepared and the bytes never arrived — that is the network setting. If there is no row at all, Claude declined before calling anything, which is the deliberate caution described in §7.0; ask it to use request_attachment_upload by name. Both were measured on live customer accounts on 2026-09-03 and 2026-09-04.
"Claude offers the NumbersGame Wizard twice." You have the old Wizard skill and the NumbersGame package both installed. Remove the skill in Customize → Skills; the package carries the Wizard. An organisation skill is removed by your Claude Owner. Moving between the public package and your firm's package? Remove the installed NumbersGame plugin first, then install the other one (§6.1).
"Claude Code doesn't follow my firm's instructions."
At a firm with Custom Skill content, the public package was probably installed in Claude Code with claude plugin install. A plugin installed there takes precedence over the copy synced from claude.ai, so your firm's package is not loaded; /plugin shows it under Errors. Remove the plugin you installed in Claude Code; your firm's package then arrives synced from claude.ai (§6.2).
"The Code tab in Claude Desktop lists NumbersGame servers marked Plugin, with no status." That is expected. Leave the servers marked Plugin unconnected; your connectors already serve them. Connecting them as well may give Claude every NumbersGame tool twice.
"My firm's package doesn't have the change we just published." An uploaded package does not update itself. Download it again from Set up → Package and upload it, confirming Replace existing plugin?, or, for an organisation install, the Owner uses Upload new version (§7, Keeping it current). With the public package: to update it, use Check for updates on the plugin.
"I don't see my private Slack channels when assigning a channel."
Slack only lets apps see private channels they've been invited to, so a private channel stays hidden until you add the app to it. In Slack, open the private channel and type /invite @NumbersGame (or use the channel's Integrations → Add apps). Then go back to the company's page, open the channel picker, and click refresh — the private channel will now appear. Public channels show up without inviting.
11. Getting help
Start with the Help section in the dashboard (/app/help) — it has this manual, the Standard Operating Procedures (the Wizard's workflow library: one page per bookkeeping job, with copyable prompts and video demos), a guide on how to prompt with AI, a library of example prompts, a Prompts & onboarding guide (if your firm has Prompts & instructions), an Automations guide (if your firm has Automations), and a contact-support form. The SOPs can be filtered by the tool you use: QuickBooks, Xero or Plaid bank feeds.
11.1 Searching help
You don't have to know which page holds the answer. Type a question into the search box at the top of Help — "import a bank statement", "lock the period", "attach a receipt" — and you get the procedures, manual sections and prompts that answer it, each linking straight to the paragraph that matters. The ⌘K jump-to box (Ctrl+K on Windows) searches the same help in its Help group.
Claude can search it too. Ask Claude how to do something in NumbersGame — "how do I import a CSV statement?", "what should I check before I close?" — and it looks the answer up in this help (the search_help and get_help_article tools) and gives you the steps and the link, instead of guessing. If nothing in the help answers, it says so; tell us at support@numbersgame.xyz and we'll write the page.
Search covers the procedures, the help pages, your firm's prompts and the Wizard skill, including your firm's own skill instructions — never another firm's. When Claude is working on a particular company, pages for the other ledger (QuickBooks-only on a Xero company, say) are left out. The manual is open to everyone; searching, and the rest of the help, is part of an active subscription.
Beyond that:
- Email:
support@numbersgame.xyz - Security issues:
security@numbersgame.xyz(don't post publicly) - Sales / Enterprise:
sales@numbersgame.xyz - Status page:
https://app.numbersgame.xyz/status(live — current health + 7-day success rate + incident log)
Average response time during business hours (EST): under 4 hours.
Appendix A — What Claude can and can't do
Can do (with qbo:read)
- Read any report QuickBooks Online provides (P&L, balance sheet, AR/AP aging, etc.)
- List customers, vendors, invoices, bills, expenses, accounts
- Pull transaction details
- Compare periods, segments, classes, departments
- Read budgets and compare them against actuals, with variance and whether it is favourable
- Open a single customer payment in full (QuickBooks and Xero)
- Build a forward revenue schedule for companies using QuickBooks' automatic revenue recognition: what is still to be recognised, per customer (or invoice) and income account, month by month, checked against the deferred revenue balance. QuickBooks only
Can do (with qbo:write)
- Create / update: invoices, payments, bills, bill payments, expenses, journal entries, estimates, purchase orders, sales receipts, credit memos, refund receipts, vendor credits, deposits, transfers, time activities
- Create / update: customers, vendors, items, accounts (chart of accounts), classes, departments
- Apply a credit memo to an open invoice, and a vendor credit to a bill — and convert a purchase order into a bill, closing the PO in the same step
- Set sales tax per taxable line, and class or department — on QuickBooks, a class goes on each line of an expense, deposit or journal entry, and bulk classification puts it there
- Categorize uncategorized transactions, singly or in a reviewed batch
- Import a bank statement from CSV, a PDF statement or pasted transactions, with a dry run that checks every row the way the bank feed does; flagged rows post once you have answered them, the rest wait as held lines, and a whole import reverses in one step
- Create and amend budgets, including spreading an annual figure across the year — see 8.9 for the three QuickBooks rules that surprise people
- Add memos and line-item descriptions
- Write a document and attach it to an invoice, bill, journal entry or expense — a PDF or a spreadsheet Claude composes from what it knows (a workings note behind a journal, a summary for the client, a schedule). This works on QuickBooks and Xero alike
- Attach a file you already have — a supplier's PDF, a scan, a receipt photo. Attach it to the conversation and ask; Claude uploads it to the connector and puts it on the record. Requires code execution to be on in your Claude settings (see 7.0)
Can do without touching the ledger
- Save a report Claude produced against the company, so it appears on the dashboard
- Create tasks and recurring task schedules, and complete or defer them
- Read and update the company's client profile, rules and open items
Can do (with qbo:admin)
- Manage user-defined lists such as terms and payment methods — there is no tool for these; set them up in QuickBooks
Can't do (intentionally)
- Void is only for invoices and payments. Those two are voided rather than deleted, so the document and its number stay in the books at zero — the right correction when someone outside already holds a copy.
- Everything else is deleted outright, and the number goes with it. Bills, bill payments, journal entries, estimates, expenses, deposits, transfers, credit memos, refund receipts, sales receipts, purchase orders, vendor credits, and customer or vendor records. If you need a journal entry to survive at zero, reverse it with a second entry rather than deleting it — deleting leaves no trace of the first.
- Remove an attachment. Claude can put a file on a record and list what is there; taking one off is done in QuickBooks or Xero.
- Remove a single budget line, or build a balance-sheet budget. QuickBooks' API allows neither. A line can be zeroed instead, and a balance-sheet budget is built in QuickBooks itself. 8.9
- Change Intuit account settings (login, subscription, etc.)
- Initiate ACH transfers or pay bills via QuickBooks Bill Pay
- Send 1099s, W-2s, or payroll filings
- Change a reconciled transaction without saying why. QuickBooks lets an app change or delete a transaction you have already reconciled and says nothing, which silently breaks the reconciliation. So Claude stops and asks you first. Tell it the reason and it goes ahead, recording your reason. Xero refuses these changes itself.
On a Xero company, the list is shorter. Reports (balance sheet, P&L — including by month, quarter or year — trial balance, aged receivables and payables, and an Excel workbook of the financial statements), budgets (read and budget vs actual), attachments, searching customers, suppliers, invoices, bills, accounts and items, and writing customers, suppliers, invoices, bills, items and accounts — including voiding an invoice, voiding a bill, and deleting an item — plus bill payments, purchase orders, estimates, credit notes, journal entries, transfers, emailing documents, tracking categories (tagging bills, spend and receive money and manual journals, and the profit and loss by category), and reading Xero UK Payroll. What is QuickBooks-only gets you a plain refusal naming the reason rather than a guess. It runs one way too: deleting an item is Xero-only, because QuickBooks makes items inactive instead of deleting them. Budgets read and report on both, but are only writable on QuickBooks — Xero's budget endpoint is read-only (8.9). The differences that change how you word a request are in 4.11.
Every tool is labelled read-only or write, so Claude can run reads without interrupting you and always asks before a write.
Tools whose names start with stripe_ may appear in Claude's list of NumbersGame tools. They belong to a Stripe connector and only work once NumbersGame has switched Stripe on for your firm; until then they refuse.
Bulk classification is deliberately two tools: preview_bulk_classification finds and lists candidate transactions (read-only), and bulk_assign_classification applies only the ones you approved. Nothing is classified without you seeing the list first.
Appendix B — Privacy & data handling
- What we store: your firm's QuickBooks refresh tokens (AES-256-GCM encrypted), session metadata, and a log of which tools each user called when. We do not store the content of your QBO data — Claude reads it live, you see it once. Two exceptions: reports you explicitly save are stored so you can read them again, and a connected bank feed's transactions (date, amount, description, merchant) are stored so they can be coded and booked, with a record of what was booked so nothing is booked twice.
- What Claude sees: only the QuickBooks data the tool calls return. Claude does not have ambient access to your QBO file.
- Backups: encrypted nightly to Cloudflare R2, deleted automatically after 30 days. Encryption keys are not stored with the backups.
- Logs: structured logs of each tool call (firm, realm, tool name, success/fail, duration). Shipped to Better Stack and kept 3 days there (metrics 30 days), plus a 90-day archive on our own server. Usage and audit records are kept longer as business records — see the privacy policy.
- Generated PDFs: deleted automatically 24 hours after they're created, whether or not you downloaded them.
- Product analytics: we use PostHog (EU-hosted) to see which features are used and where they break. Events are recorded against your firm, not you individually. The one exception is a few onboarding milestones from your first days (signed up, email confirmed, each setup step done, and whether our reminder emails were delivered, opened or clicked), which use your user ID so we can remind you if you stop part way; they carry no email address and are deleted when your account is. Session replays of this dashboard are recorded with all text and inputs masked. Full detail in the privacy policy.
- Export anytime from Billing → Export firm data.
Full terms in the Licence Agreement, privacy policy at /legal/privacy.
