quickbooks-automation

Automate QuickBooks accounting workflows including invoicing, expenses, reporting, and bank reconciliation

INSTALLATION
npx skills add https://github.com/claude-office-skills/skills --skill quickbooks-automation
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

QuickBooks Automation

Comprehensive skill for automating QuickBooks accounting and bookkeeping workflows.

Core Workflows

1. Accounting Pipeline

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          │

└─────────────────────────────────────────────────────────┘

2. Automation Rules

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 Management

Invoice Creation

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

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 Tracking

Expense Categories

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 Processing

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 Reconciliation

Bank Feed Rules

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"

Reconciliation Dashboard

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

Financial Reports

Standard Reports

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]

Report Dashboard

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

Integration Workflows

E-commerce Sync

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

Payroll Integration

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

API Examples

Create Invoice

// 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 Transactions

// 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() }

});

Best Practices

  • Daily Bank Feed Review: Match transactions promptly
  • Consistent Categorization: Use standard chart of accounts
  • Monthly Reconciliation: Close books monthly
  • Document Attachment: Attach receipts to transactions
  • Class Tracking: Use for department/project tracking
  • Regular Backups: Export data periodically
  • Access Controls: Limit user permissions
  • Audit Trail: Review changes regularly
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card