QuickBooks Skill
Sync with QuickBooks Online for accounting integration. Supports customers, invoices, and transactions with two-way sync and conflict resolution.
Capabilities
status- Check connection status- Example:
quickbooks status
- Example:
health- Health check for QuickBooks connection- Example:
quickbooks health
- Example:
customers- List customers from QuickBooks- Options:
--syncto sync from QuickBooks,--limit <n> - Example:
quickbooks customers --sync
- Options:
customer-get <id>- Get customer details- Example:
quickbooks customer-get 123
- Example:
customer-sync- Sync all customers from QuickBooks- Example:
quickbooks customer-sync
- Example:
invoices- List invoices from QuickBooks- Options:
--syncto sync,--limit <n>,--status <status> - Example:
quickbooks invoices --sync --limit 50
- Options:
invoice-get <id>- Get invoice details- Example:
quickbooks invoice-get 456
- Example:
invoice-sync- Sync all invoices from QuickBooks- Options:
--since <date>to sync only recent invoices - Example:
quickbooks invoice-sync --since 2024-01-01
- Options:
transactions- List transactions- Options:
--sync,--limit <n>,--type <type> - Example:
quickbooks transactions --sync
- Options:
transaction-sync- Sync all transactions- Example:
quickbooks transaction-sync
- Example:
sync- Full sync (customers, invoices, transactions)- Options:
--customers,--invoices,--transactionsto sync only specific types - Example:
quickbooks sync
- Options:
conflicts- List sync conflicts- Example:
quickbooks conflicts
- Example:
conflict-resolve <id>- Resolve a conflict- Options:
--use <local|remote>which version to keep - Example:
quickbooks conflict-resolve 1 --use remote
- Options:
push-customer <local-id>- Push local customer to QuickBooks- Example:
quickbooks push-customer 5
- Example:
push-invoice <local-id>- Push local invoice to QuickBooks- Example:
quickbooks push-invoice 10
- Example:
Setup
# First, set up quickbooks-auth skill
node ../quickbooks-auth/dist/cli.js connect mycompany
# Build this skill
npm install
npm run build
# Check status
npm run cli -- status
Storage
SQLite database at ~/.openclaw/skills/quickbooks/quickbooks.db:
customers- Synced customer data from QuickBooksinvoices- Synced invoice datatransactions- Synced transaction datasync_state- Last sync timestamps and sync tokensconflicts- Unresolved sync conflicts
Sync Strategy
Two-Way Sync
- Changes from QuickBooks are pulled to local database
- Local changes can be pushed to QuickBooks
- Conflict detection based on
last_updatedtimestamps
Conflict Resolution
When the same record is modified in both QuickBooks and locally:
- Conflict is recorded in conflicts table
- User must resolve with
conflict-resolve - Options: keep local, keep remote, or merge
Incremental Sync
- Uses
last_sync_timeto fetch only changes since last sync - Reduces API calls and sync time
API Limits
QuickBooks Online API has rate limits:
- 500 requests per minute per realm
- Sync operations batch requests to stay within limits