Spend and Close Desk Official

Financev1.0.018 components

The finance team's spend side and month-end close, prepared. An expense claim is checked against your policy the moment it is submitted (limits, receipts, duplicates, weekend and personal merchants) with the approve or query note drafted. A purchase request is routed by amount to the right approver with the budget line checked. Card transactions without a receipt are chased and their coding suggested from the vendor history. Bank lines are matched every morning. On the first of the month the close checklist is built with owners and due dates, the owners are chased, and the variance notes are drafted. Budget lines over 80 percent with two months left get a note to their owner every Monday. Works with Expensify, Procurify or Coupa, Mercury, Xero or FreeAgent, and Google Sheets. QuickBooks Online, Plaid, Ramp, Spendesk and ApprovalMax cannot be connected yet. No agent ever approves, pays, posts or reimburses. Comes with Quinn, a Spend Coordinator, an internal Spend Helpdesk and an approver portal.

Installs in about 35 min, verified with a smoke test.

Install this pack How the install works

How the pack is wired

One named coworker, the agents it orchestrates, and the data, knowledge, and tools underneath. This is the real manifest, not a mockup.

AI EmployeeQuinn, Spend Coordinator coordinator
Agentic TeamSpend Helpdesk2 specialists
AgentsExpense Policy CheckerPurchase RouterCard MatcherBank ReconcilerClose RunnerBudget WatcherMonthly Digest Writer
Data & KnowledgeStaff read/writeBudgets read/writeExpense Claims read/writePurchase Requests read/writeCard Transactions read/writeBank Lines read/writeClose Checklist read/writeMonthly Digest read/writeSpend Policy and Close Playbook RAG
ToolsStackone ExpensifyStackone ProcurifyStackone MercuryStackone XeroGoogle SheetsTurtle Notify

The employee routes each request to the right worker. Specialists collaborate behind a router in the agentic team, while single-purpose agents handle focused jobs. Agents read and write the tables, ground answers in the knowledge bases, and act through your connected tools. Every write is gated and traced.

The full blueprint

Every agent's tasks, every table's schema, every trigger. Read it all before you sign in.

Quinn, Spend Coordinator

Precise, calm, allergic to a number without a source. Quinn never approves, pays, posts or reimburses anything and says so when asked to.

7 agents · 8 tables · 1 KBs
Spend Helpdesk routing

The chat on the approver portal and for staff. Answers expense policy questions from the playbook (what is claimable, the limits, the bands) and says where the viewer's own claim or request stands. Never approves anything.

Expense Policy SpecialistClaim Status Specialist
Expense Policy Checker
Careful expenses clerk who knows the policy line by line and writes a kind note
2 tasks · 8 in

When a claim is submitted it reads the claim and its receipt from the expenses tool, checks limits, receipts, duplicates, weekend spend and excluded merchants against the policy, works out the band and the approver, and drafts the approve, query or reject note. A person approves; nothing is reimbursed by software.

Expense ClaimsStaffCard TransactionsStackone Expensify
  1. 01Claim {{claim}} from {{person}}: {{merchant}}, {{amount}}, {{category}}, on {{date}}, receipt {{receipt}}, purpose "{{purpose}}". Read the claim and receipt in the expenses tool. Read the policy. Check receipts, limits, excluded merchants, weekend spend, and duplicates against Expense Claims and Card Transactions in the last 90 days. Output: Each check with its result, plain text.
  2. 02Set the Band from the approval bands and name the approver from Staff (the person's manager, or the finance lead for the top band; never the person). Write the Policy Check: the verdict (within policy, query, or reject recommendation), why in one or two lines, and the note the approver can send as it is. Set Status to Awaiting approval, Queried, or leave it Checked with the reject recommendation for a person. Plain text. Output: The policy check and the status set, plain text.
Purchase Router
Purchasing coordinator who knows who signs what and what is left on every line
2 tasks · 7 in

When a request arrives it works out the band from the approval rules, names the approver, checks the budget line and the vendor history in the purchasing tool, and drafts the note the approver reads. A person approves and orders.

Purchase RequestsStaffBudgetsStackone Procurify
  1. 01Request {{request}} from {{requester}}: {{vendor}}, {{amount}}, {{category}}, budget line {{budget_line}}, because "{{justification}}". Read the approval bands. Read the budget line in Budgets. Read the vendor's history and any open request for the same thing in the purchasing tool. Output: The band, the approver, the budget position and the vendor history, plain text.
  2. 02Set the Band and write the Router Note: band and why, the approver's name, the line after this spend (percent and months left), whether the vendor is known, and the note or query for the approver in plain words. Set Status to Awaiting approval, or Queried when the total or the vendor is unclear. Plain text. Output: The router note and the status set, plain text.
Card Matcher
Tidy bookkeeper who wants every card line coded by the third of the month
2 tasks · 1 in

Every weekday morning it reads new card transactions from the expenses tool, marks which have a receipt, suggests the code for each from the merchant's history, and drafts a chase note to the cardholder for anything without a receipt (to the manager after 7 days). Sending waits for a person; nothing is posted.

Card TransactionsStaffStackone ExpensifyStackone XeroTurtle Notify
  1. 01Read card transactions from the last {{days}} days (default 7) from the expenses tool. Create or update the Card Transactions rows. For each, suggest the code from the merchant's history in the table and the ledger and write it into Suggested Code. Output: The transactions updated and the codes suggested, plain text.
  2. 02For each transaction with Receipt Matched "No", draft the chase note (to the cardholder up to day 7, to the manager after) at the end of Suggested Code, send it with Turtle Notify (waits for a person), set Status Chased and Days Chased. Transactions with a receipt and a code become Matched. Plain text. Output: The chases drafted and the statuses set, plain text.
Bank Reconciler
Patient reconciler who matches what it can and says plainly what it cannot
2 tasks · 1 in

Every weekday morning it reads new lines from every connected bank account, matches each to an open invoice, bill, card transaction or payout in the ledger (exact reference first, then amount and date, then amount alone), suggests transfers, interest and fees for exclusion, and writes a note for anything it could not match. A person confirms every match; nothing is posted.

Bank LinesCard TransactionsStackone MercuryStackone Xero
  1. 01Read bank lines from the last {{days}} days (default 3) from every connected account. Create a Bank Lines row for each new line. Read the open invoices, bills, payouts and card transactions from the ledger and the Card Transactions table. Output: The new lines and the open items to match against, plain text.
  2. 02Match each line in the playbook's order. Write Matched To and the Match Note (what matched and how, or what was looked for and not found) and set Status Matched, Suggested or Unmatched. Mark transfers, interest and fees Suggested with an exclude recommendation. Plain text. Output: Lines matched, suggested and unmatched with the notes, plain text.
Close Runner
Close manager who runs the same checklist every month and never forgets a task
2 tasks · 1 in

On the first of the month it builds the close checklist from the playbook with owners and due dates, then each morning of the close it checks what is done, chases the owners whose tasks are due, collects the evidence, exports the checklist to the spreadsheet tool, and drafts the variance notes from the ledger. Never posts, never sets the lock date.

Close ChecklistBank LinesCard TransactionsBudgetsStaffStackone XeroGoogle SheetsTurtle Notify
  1. 01Period {{period}} (default the month that just ended). If no Close Checklist rows exist for the period, create one per task from the playbook's template with Owner Name and Due. Then read the checklist, Bank Lines and Card Transactions and write a Note on each open task: what is left and what it is waiting on. Output: The checklist for the period with a note per open task, plain text.
  2. 02Draft a chase for each owner with a task due today or overdue and send it with Turtle Notify (waits for a person). Read the actuals from the ledger and draft the variance note for every line more than 10 percent or 2,000 off plan into the Budgets rows' Watch Note and the variance task's Note. Write the checklist and the notes to the review pack spreadsheet. Plain text. Output: The chases drafted, the variance notes and the export, plain text.
Budget Watcher
Budget analyst who spots the line that will be over before it is
2 tasks · 1 in

Every Monday it reads the actuals by line from the ledger, updates spent, forecast and variance on every budget line, marks lines over 80 percent with more than two months left as Watch and lines forecast over budget as Over, and drafts the note to the line's owner with what is driving it and the options. Never changes a budget.

BudgetsPurchase RequestsStaffStackone XeroTurtle Notify
  1. 01Read the actuals by line for the year to date from the ledger. Update Spent, Forecast, Variance and Months Left on every Budgets row. Mark Watch at {{threshold}} percent (default 80) with more than two months left, Over when the forecast exceeds the budget. Output: Every line with its numbers and status, plain text.
  2. 02For each Watch or Over line write the Watch Note: the numbers, what drove the spend (from the ledger and open purchase requests), two options. Send it to the Owner with Turtle Notify (waits for a person). Plain text. Output: The notes written and sent, plain text.
Monthly Digest Writer
Finance analyst who writes the one page the finance lead reads on the fifth
2 tasks · 1 in

On the fifth of the month it counts the month's spend, claims, requests, card lines still without receipts and the days the close took, names the budget lines to watch and three things to fix, writes the digest and emails it to the finance lead.

Monthly DigestExpense ClaimsPurchase RequestsCard TransactionsBank LinesClose ChecklistBudgetsTurtle Notify
  1. 01Month {{month}} (default the month that just ended). Read every table for the month and count: spend against plan, claims by outcome and days to approval, requests by outcome, card lines without a receipt, unmatched bank lines, close days against the target, budget lines Watch or Over. Output: The month's numbers with their source table, plain text.
  2. 02Write the digest: the numbers, the budget lines to watch, three things to fix next month. Create the Monthly Digest row and email it to the finance lead with Turtle Notify. Set Status Sent. Plain text. Output: The digest written and sent, plain text.
Staff
Everyone who can claim, request or approve: name, work email, department, manager and approval band. The approver portal identifies the viewer against this table.
6 cols
Name textWork Email emailDepartment selectManager textApproval Band selectStatus select
Budgets
One row per budget line for the year: the budget, what is spent, the forecast to year end and the variance. The watcher flags lines running hot every Monday.
10 cols
Line textDepartment selectOwner foreign_keyBudget numberSpent numberForecast numberVariance numberMonths Left numberWatch Note agent_outputStatus select
Expense Claims
Every expense claim with the policy check, the band it falls in, the approver, and where it stands. The expenses tool stays the record of the reimbursement.
13 cols
Claim textPerson foreign_keyDate dateMerchant textAmount numberCategory selectReceipt selectPurpose textPolicy Check agent_outputBand selectApprover userStatus selectReimbursed On date
Purchase Requests
Every purchase request with the band from the approval rules, the approver, the budget line check and the drafted note for the approver. The purchasing tool stays the record of the order.
11 cols
Request textRequester foreign_keyVendor textAmount numberCategory selectBudget Line foreign_keyJustification textRouter Note agent_outputBand selectApprover userStatus select
Card Transactions
Every company card transaction from the expenses tool: whether a receipt is matched, the coding suggested from the vendor history, and where it stands.
11 cols
Transaction textCardholder foreign_keyCard selectDate dateMerchant textAmount numberReceipt Matched selectSuggested Code agent_outputCoded selectDays Chased numberStatus select
Bank Lines
Every line from the connected bank accounts with what it matched to in the ledger, the note when it did not, and where it stands. The bank and the ledger stay the record.
8 cols
Line textAccount selectDate dateDescription textAmount numberMatched To textMatch Note agent_outputStatus select
Close Checklist
One row per close task per month: owner, due date, evidence, the note the runner wrote, and where it stands.
8 cols
Task textPeriod textOwner userOwner Name textDue dateEvidence textNote agent_outputStatus select
Monthly Digest
One row per month: spend, claims, requests, how many days the close took, and the digest written for the finance lead.
7 cols
Month textSpend numberClaims numberRequests numberClose Days numberDigest agent_outputStatus select
Spend Policy and Close Playbook

The expense policy (limits, receipts, excluded merchants), the approval bands, the card rules, the bank matching rules, the close checklist template and the budget rules. Replace the starter text with your own.

2 sources

How the install works

  1. Overview. You see the entire department before anything is created: every component, every tool it needs connected.
  2. Setup questions. A few plain-language choices set your sources, limits, and approval gates, so the department arrives configured for your rules, not defaults.
  3. Conflicts. Nothing in your workspace gets clobbered: anything that already exists, you keep, rename, or replace.
  4. Install. Tables → knowledge → agents → wiring → employee, in dependency order, ending in a smoke test that proves it works.
  5. Done. A working department, not a project plan. Open your new coworker and assign the first task.

Setup asks the governance question before anything runs: for example, should the employee require human approval before sending external emails?

Built on

Connects to

Stackone ExpensifyStackone ProcurifyStackone MercuryStackone XeroGoogle SheetsTurtle Notify

Governance defaults

  • Per-table Read / Create / Update / Delete grants, Delete off by default
  • Approval gates on external writes (email, records) until you loosen them
  • Budget ceiling and run-trace on every component

More like this

All packs