
This handles the repetitive QuickBooks workflows that eat up accounting time: auto-categorizing transactions, generating recurring invoices, matching bank feeds, and running standard reports. It comes with pre-built rules for common vendors like Stripe, AWS, and Gusto, plus templates for invoice generation and expense tracking. The bank reconciliation automation is the real win here, using fuzzy matching to pair transactions and flag outliers instead of making you click through hundreds of line items. You can sync e-commerce platforms and payroll systems, though you'll want to audit the categorization rules closely before trusting them with your books. Works through the accounting MCP server, so your QuickBooks credentials stay in one place.
npx -y skills add claude-office-skills/skills --skill "QuickBooks Automation" --agent claude-codeInstalls into .claude/skills of the current project.
Comprehensive skill for automating QuickBooks accounting and bookkeeping workflows.
QUICKBOOKS AUTOMATION FLOW:
┌─────────────────────────────────────────────────────────┐
│ DATA ENTRY │
│ Invoices │ Expenses │ Payments │ Bank Feeds │
└────────────────────────┬────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ CATEGORIZATION │
│ Chart of Accounts │ Classes │ Locations │
└────────────────────────┬────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ RECONCILIATION │
│ Bank Matching │ Credit Card │ Clearing │
└────────────────────────┬────────────────────────────────┘
▼
┌─────────────────────────────────────────────────────────┐
│ REPORTING │
│ P&L │ Balance Sheet │ Cash Flow │ Tax Reports │
└─────────────────────────────────────────────────────────┘
automation_rules:
- name: auto_categorize_amazon
trigger:
vendor: "Amazon"
action:
account: "Office Supplies"
class: "Operations"
- name: auto_categorize_payroll
trigger:
vendor: "Gusto"
action:
account: "Payroll Expenses"
split:
- account: "Salaries"
percentage: 85
- account: "Payroll Taxes"
percentage: 15
- name: invoice_reminder
trigger:
invoice_days_overdue: 7
action:
send_reminder_email: true
add_late_fee: false
invoice_template:
customer:
name: "{{customer_name}}"
email: "{{customer_email}}"
billing_address: "{{billing_address}}"
header:
invoice_number: "INV-{{auto_increment}}"
invoice_date: "{{today}}"
due_date: "{{today + 30}}"
terms: "Net 30"
line_items:
- description: "{{service_description}}"
quantity: "{{quantity}}"
rate: "{{unit_price}}"
amount: "{{quantity * unit_price}}"
account: "Services Revenue"
footer:
subtotal: "{{sum_line_items}}"
tax_rate: "{{tax_percent}}"
tax_amount: "{{subtotal * tax_rate}}"
total: "{{subtotal + tax_amount}}"
delivery:
send_email: true
cc_accountant: false
attach_pdf: true
recurring_invoices:
- name: Monthly Retainer
customer: "Acme Corp"
frequency: monthly
day_of_month: 1
amount: 5000
description: "Monthly consulting retainer"
auto_send: true
- name: Quarterly Subscription
customer: "TechStart Inc"
frequency: quarterly
start_date: "2024-01-01"
amount: 2500
description: "Q{{quarter}} Software Subscription"
auto_send: true
expense_categories:
operating_expenses:
- Advertising
- Bank Charges
- Insurance
- Legal & Professional
- Office Supplies
- Rent
- Utilities
cost_of_goods:
- Materials
- Shipping
- Direct Labor
payroll:
- Salaries & Wages
- Payroll Taxes
- Employee Benefits
receipt_automation:
capture:
sources:
- email_forward
- mobile_app
- bank_feed
extraction:
fields:
- vendor
- date
- amount
- payment_method
matching:
auto_match:
threshold: 0.95
rules:
- amount_exact
- date_within_3_days
- vendor_fuzzy_match
categorization:
use_history: true
default_category: "Ask Accountant"
bank_rules:
- name: Stripe Deposits
conditions:
description_contains: "STRIPE"
action:
category: "Sales Revenue"
class: "Online Sales"
auto_match_invoices: true
- name: Payroll
conditions:
description_contains: "GUSTO"
amount_range: [-50000, -1000]
action:
category: "Payroll"
split_by_historical: true
- name: AWS Charges
conditions:
description_contains: "AMAZON WEB SERVICES"
action:
category: "Cloud Hosting"
class: "Technology"
BANK RECONCILIATION STATUS
═══════════════════════════════════════
Account: Business Checking ****4567
Bank Balance: $125,450.23
QuickBooks Balance: $124,890.45
Difference: $559.78
UNMATCHED TRANSACTIONS:
┌────────────┬────────────────────┬──────────┐
│ Date │ Description │ Amount │
├────────────┼────────────────────┼──────────┤
│ 01/15 │ CHECK #1234 │ $450.00 │
│ 01/16 │ WIRE TRANSFER │ $109.78 │
└────────────┴────────────────────┴──────────┘
PENDING ITEMS:
Outstanding Checks: $1,234.50
Deposits in Transit: $674.72
LAST RECONCILED: January 10, 2024
reports:
profit_loss:
type: standard
period: this_month
comparison: previous_period
columns:
- actual
- budget
- variance
- percent_change
balance_sheet:
type: standard
as_of_date: period_end
show_totals: true
cash_flow:
type: standard
method: indirect
period: this_quarter
ar_aging:
type: aging
aging_buckets: [30, 60, 90, 120]
ap_aging:
type: aging
aging_buckets: [30, 60, 90]
FINANCIAL DASHBOARD - JANUARY 2024
═══════════════════════════════════════
PROFIT & LOSS:
Revenue: $185,450
COGS: $45,230
Gross Profit: $140,220 (75.6%)
Operating Exp: $82,340
Net Income: $57,880 (31.2%)
vs. Budget:
Revenue ████████████████░░ +8%
Expenses ██████████████░░░░ -3%
Profit ██████████████████ +15%
BALANCE SHEET:
Assets: $456,780
Liabilities: $123,450
Equity: $333,330
CASH POSITION:
Operating Cash: $125,450
Receivables: $89,230
Payables: $34,560
Net Cash: $180,120
AR AGING:
Current ████████████████ $45,230
1-30 days ████████░░░░░░░░ $23,450
31-60 days ████░░░░░░░░░░░░ $12,340
61-90 days ██░░░░░░░░░░░░░░ $5,670
90+ days █░░░░░░░░░░░░░░░ $2,540
shopify_sync:
frequency: daily
orders:
create_invoice: true
match_customer: true
create_customer_if_new: true
products:
sync_inventory: true
update_cogs: true
payments:
record_deposits: true
account: "Undeposited Funds"
refunds:
create_credit_memo: true
link_to_original: true
gusto_sync:
frequency: per_payroll
mapping:
gross_pay: "Salaries & Wages"
employer_taxes: "Payroll Taxes"
benefits: "Employee Benefits"
journal_entry:
debit:
- account: "Payroll Expenses"
amount: total_gross
credit:
- account: "Payroll Liabilities"
amount: withholdings
- account: "Cash"
amount: net_pay
// QuickBooks API - Create Invoice
const invoice = {
CustomerRef: {
value: "123"
},
Line: [
{
DetailType: "SalesItemLineDetail",
Amount: 1000,
SalesItemLineDetail: {
ItemRef: { value: "1" },
Qty: 10,
UnitPrice: 100
}
}
],
DueDate: "2024-02-15"
};
const response = await qbo.createInvoice(invoice);
// Query recent expenses
const expenses = await qbo.findPurchases({
TxnDate: { $gt: '2024-01-01' },
AccountRef: { value: '50' } // Operating Expenses
});
// Query unpaid invoices
const unpaid = await qbo.findInvoices({
Balance: { $gt: 0 },
DueDate: { $lt: new Date().toISOString() }
});