Token导航 LogoToken导航

Agent Skill · 开发

qbo-automation(昆博自动化)

qbo-automation 用于辅助前端页面、组件、样式和交互逻辑开发,适合在 OpenClaw 中需要维护前端项目、生成组件或检查界面实现时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

qbo-automation 是开发类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描有提醒项,按安装量在开发类的 21,746 个 Skill 里排第 4,550。

总安装 8,023周安装 331GitHub Stars 公开资料未说明下载 2,622核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
98.0.1

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:qbo-automation(昆博自动化)
来源仓库:https://github.com/samledger67-dotcom/qbo-automation
安装命令:
openclaw skills install qbo-automation
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install qbo-automation

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

自动化 QuickBooks Online 的科目表设置、银行规则和对账流程。适合财务系统初始化或周期性账务模板配置的辅助开发场景。支持日记账分录生成与交易分类映射,提升会计工作效率。需获取 QBO API 凭证并确认组织权限范围。涉及财务数据操作时应遵循企业内控与审计要求。

qbo-automation 属于开发类 Skill,可作为该场景下的辅助能力补充。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install qbo-automation;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

qbo-automation 怎么安装?

在终端执行 openclaw skills install qbo-automation。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

qbo-automation 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

qbo-automation 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

qbo-automation 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

qbo-automation 用的人多吗?

公开数据是累计安装 8,023 次,近一周安装 331 次,下载 2,622 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

qbo-automation 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
qbo-automation

昆博自动化 · 本页

8,023—接触敏感数据MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
qbo-automation
description
>
metadata
openclaw
requires
bins
[]
tags

QBO Automation Skill

Automates QuickBooks Online operations: chart of accounts, bank rules, recurring transactions, reconciliation, and journal entries. Backed by accounting domain knowledge.


Prerequisites

  • QBO account with admin or accountant access
  • QBO API credentials (Client ID, Client Secret, Refresh Token) stored in environment:

- QBO_CLIENT_ID - QBO_CLIENT_SECRET - QBO_REFRESH_TOKEN - QBO_REALM_ID (Company ID)

  • Node.js or Python environment for API calls (or use QBO's web UI with guided steps below)

1. Chart of Accounts Setup

Standard Account Hierarchy (US Small Business)

ASSETS
  1000  Checking Account              (Bank)
  1010  Savings Account               (Bank)
  1100  Accounts Receivable           (Accounts Receivable)
  1200  Inventory Asset               (Other Current Asset)
  1500  Computer Equipment            (Fixed Asset)
  1510  Accumulated Depreciation      (Fixed Asset)

LIABILITIES
  2000  Accounts Payable              (Accounts Payable)
  2100  Credit Card                   (Credit Card)
  2200  Payroll Liabilities           (Other Current Liability)
  2300  Sales Tax Payable             (Other Current Liability)
  2700  Notes Payable                 (Long Term Liability)

EQUITY
  3000  Owner's Equity                (Equity)
  3100  Owner's Draw                  (Equity)
  3200  Retained Earnings             (Equity)

INCOME
  4000  Services Revenue              (Income)
  4100  Product Sales                 (Income)
  4200  Other Income                  (Other Income)

COST OF GOODS SOLD
  5000  Cost of Goods Sold            (Cost of Goods Sold)

EXPENSES
  6000  Advertising & Marketing       (Expense)
  6010  Bank Charges & Fees           (Expense)
  6020  Dues & Subscriptions          (Expense)
  6030  Insurance                     (Expense)
  6040  Meals & Entertainment         (Expense)
  6050  Office Supplies               (Expense)
  6060  Professional Fees             (Expense)
  6070  Rent or Lease                 (Expense)
  6080  Utilities                     (Expense)
  6090  Vehicle Expense               (Expense)
  6100  Travel                        (Expense)
  6200  Payroll Expenses              (Expense)
  6300  Depreciation                  (Expense)

QBO API — Create Account (Python/requests)

import requests, json, base64, os

def get_access_token():
    """Exchange refresh token for access token."""
    credentials = base64.b64encode(
        f"{os.environ['QBO_CLIENT_ID']}:{os.environ['QBO_CLIENT_SECRET']}".encode()
    ).decode()
    resp = requests.post(
        "https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer",
        headers={
            "Authorization": f"Basic {credentials}",
            "Content-Type": "application/x-www-form-urlencoded"
        },
        data={
            "grant_type": "refresh_token",
            "refresh_token": os.environ["QBO_REFRESH_TOKEN"]
        }
    )
    return resp.json()["access_token"]

def create_account(access_token, realm_id, name, account_type, account_sub_type, acct_num=None):
    """Create a QBO account."""
    payload = {
        "Name": name,
        "AccountType": account_type,
        "AccountSubType": account_sub_type
    }
    if acct_num:
        payload["AcctNum"] = acct_num
    resp = requests.post(
        f"https://quickbooks.api.intuit.com/v3/company/{realm_id}/account",
        headers={
            "Authorization": f"Bearer {access_token}",
            "Content-Type": "application/json",
            "Accept": "application/json"
        },
        json=payload
    )
    return resp.json()

# Example: Create a new expense account
token = get_access_token()
realm = os.environ["QBO_REALM_ID"]
result = create_account(token, realm,
    name="Software Subscriptions",
    account_type="Expense",
    account_sub_type="OtherMiscellaneousExpense",
    acct_num="6025"
)
print(result)

Bulk Account Import (CSV → QBO)

QBO supports bulk import via Accountant Toolbox > Chart of Accounts > Import.

CSV format:

Account Name,Type,Detail Type,Account Number,Description,Balance
Checking Account,Bank,Checking,1000,Main operating account,0
Accounts Receivable,Accounts receivable,Accounts Receivable (A/R),1100,,0
Software Subscriptions,Expense,Other Miscellaneous Service Cost,6025,SaaS tools,,

2. Bank Rules Configuration

Bank rules auto-categorize imported bank/credit card transactions.

Rule Types

  • Category Rules — assign account + class/location
  • Split Rules — divide transaction across multiple accounts
  • Vendor Rules — auto-assign payee name

QBO UI Steps (no API — bank rules not in QBO API v3)

  1. Go to Banking > Rules > New rule
  2. Set:

- Rule name: descriptive (e.g., "AWS Monthly Charges") - Apply to: Money out / Money in - Bank account: select account - Conditions: - Description contains AMAZON WEB SERVICES - Then: - Category: Software Subscriptions (6025) - Payee: Amazon Web Services - Class (if tracking): Operations

  1. Save and run rule against unreviewed transactions

Common Bank Rule Templates

Rule NameConditionCategoryNotes
AWS ChargesDescription contains "AMAZON WEB SERVICES"Software Subscriptions
Stripe PayoutsDescription contains "STRIPE" + Money InServices Revenue
Payroll - GustoDescription contains "GUSTO"Payroll Expenses
RentDescription contains "ACH RENT"Rent or Lease
Google AdsDescription contains "GOOGLE ADS"Advertising & Marketing
Bank FeeDescription contains "SERVICE FEE"Bank Charges & Fees
Owner DrawDescription contains "OWNER DRAW"Owner's DrawEquity

Split Rule Example (Mixed Expense)

  • Rule: "Office & Meals Split"
  • Condition: Payee is Costco
  • Split:

- 60% → Office Supplies (6050) - 40% → Meals & Entertainment (6040)


3. Recurring Transaction Templates

Recurring Bill Template (API)

def create_recurring_transaction(access_token, realm_id):
    """Create a monthly recurring bill template."""
    payload = {
        "RecurDataRef": {
            "type": "Bill",
        },
        "RecurType": "Scheduled",
        "ScheduleInfo": {
            "StartDate": "2026-01-01",
            "NextDate": "2026-04-01",
            "EndDate": None,
            "NumRemaining": None,
            "RecurFrequency": "Monthly",
            "IntervalType": "Monthly",
            "MaxOccurrences": None
        },
        "Name": "Monthly Rent - 123 Main St",
        "Active": True,
        "VendorRef": {"value": "VENDOR_ID_HERE"},
        "Line": [
            {
                "DetailType": "AccountBasedExpenseLineDetail",
                "Amount": 3500.00,
                "AccountBasedExpenseLineDetail": {
                    "AccountRef": {"value": "ACCOUNT_ID_FOR_RENT"}
                }
            }
        ]
    }
    resp = requests.post(
        f"https://quickbooks.api.intuit.com/v3/company/{realm_id}/recurringtransaction",
        headers={
            "Authorization": f"Bearer {access_token}",
            "Content-Type": "application/json",
            "Accept": "application/json"
        },
        json=payload
    )
    return resp.json()

Common Recurring Templates

TemplateTypeFrequencyAmountAccount
Office RentBillMonthlyFixedRent or Lease
AWSBillMonthlyVariableSoftware Subscriptions
Liability InsuranceBillMonthlyFixedInsurance
Owner's DrawCheckBi-weeklyFixedOwner's Draw
Depreciation EntryJournal EntryMonthlyCalculatedDepreciation

Depreciation Journal Entry (Straight-Line)

Monthly entry template:

DEBIT  Depreciation Expense (6300)    $[amount]
CREDIT Accumulated Depreciation (1510) $[amount]
Memo: Monthly depreciation - [asset name]

4. Reconciliation Workflows

Monthly Reconciliation Checklist

  1. Gather statements — Download bank/CC statements for the period
  2. Review unreviewed transactions — Banking > For Review; categorize all
  3. Run reconciliation — Accounting > Reconcile > select account
  4. Match ending balance to bank statement
  5. Investigate discrepancies:

- Duplicate transactions - Missing transactions (manually add) - Wrong amounts (edit/split) - Timing differences (outstanding checks/deposits)

  1. Finish reconciliation — generate reconciliation report
  2. Document — save PDF of reconciliation report

Reconciliation Discrepancy Quick-Fix Guide

DiscrepancyLikely CauseFix
$X off exactlyTransposition errorSearch for transposed digits
Amount doubledDuplicate importDelete duplicate
Amount missingManual transaction neededAdd from source doc
Off by fractionRoundingCheck bank rounding rules
Persistent gapBeginning balance wrongCorrect prior period

API: Fetch Unreconciled Transactions

def get_unreconciled_transactions(access_token, realm_id, account_id, start_date, end_date):
    """Query unreconciled transactions for reconciliation."""
    query = f"""
        SELECT * FROM Purchase
        WHERE AccountRef = '{account_id}'
        AND TxnDate >= '{start_date}'
        AND TxnDate <= '{end_date}'
        AND Cleared = 'false'
        ORDERBY TxnDate ASC
        MAXRESULTS 1000
    """
    resp = requests.get(
        f"https://quickbooks.api.intuit.com/v3/company/{realm_id}/query",
        headers={"Authorization": f"Bearer {access_token}", "Accept": "application/json"},
        params={"query": query}
    )
    return resp.json()

5. Journal Entry Generation

Standard Journal Entry Template

def create_journal_entry(access_token, realm_id, txn_date, memo, lines):
    """
    Create a QBO journal entry.
    
    lines: list of dicts with keys:
      - account_id: QBO account ID
      - posting_type: "Debit" or "Credit"
      - amount: float
      - description: str (optional)
    """
    line_items = []
    for i, line in enumerate(lines):
        line_items.append({
            "Id": str(i + 1),
            "Description": line.get("description", memo),
            "Amount": line["amount"],
            "DetailType": "JournalEntryLineDetail",
            "JournalEntryLineDetail": {
                "PostingType": line["posting_type"],
                "AccountRef": {"value": line["account_id"]}
            }
        })
    
    payload = {
        "TxnDate": txn_date,
        "PrivateNote": memo,
        "Line": line_items
    }
    
    resp = requests.post(
        f"https://quickbooks.api.intuit.com/v3/company/{realm_id}/journalentry",
        headers={
            "Authorization": f"Bearer {access_token}",
            "Content-Type": "application/json",
            "Accept": "application/json"
        },
        json=payload
    )
    return resp.json()

# Example: Record depreciation
entry = create_journal_entry(
    access_token=token,
    realm_id=realm,
    txn_date="2026-03-31",
    memo="March 2026 Depreciation",
    lines=[
        {"account_id": "DEPR_EXPENSE_ID", "posting_type": "Debit", "amount": 250.00},
        {"account_id": "ACCUM_DEPR_ID", "posting_type": "Credit", "amount": 250.00}
    ]
)

Common Journal Entry Templates

Accrued Revenue

DEBIT  Accounts Receivable (1100)   $X
CREDIT Services Revenue (4000)       $X
Memo: Accrue revenue for [client] - [period]

Prepaid Expense Recognition

DEBIT  Insurance Expense (6030)     $X
CREDIT Prepaid Insurance (1200)      $X
Memo: Recognize prepaid insurance - [month]

Owner Investment

DEBIT  Checking Account (1000)      $X
CREDIT Owner's Equity (3000)         $X
Memo: Owner capital contribution [date]

Crypto Asset Purchase (On-Chain)

DEBIT  Crypto Assets (1201)         $X   [at cost basis in USD]
CREDIT Checking Account (1000)       $X
Memo: Purchased [X ETH] at $[price] on [date] - TxHash: [0x...]

6. Reporting & Queries

Useful QBO Queries (SQL-like)

def run_qbo_query(access_token, realm_id, sql):
    resp = requests.get(
        f"https://quickbooks.api.intuit.com/v3/company/{realm_id}/query",
        headers={"Authorization": f"Bearer {access_token}", "Accept": "application/json"},
        params={"query": sql}
    )
    return resp.json()

# Trial Balance components - fetch all accounts with balances
accounts = run_qbo_query(token, realm,
    "SELECT * FROM Account WHERE CurrentBalance != '0' ORDERBY AccountType ASC MAXRESULTS 200"
)

# Unpaid invoices (AR aging)
ar = run_qbo_query(token, realm,
    "SELECT * FROM Invoice WHERE Balance > '0' ORDERBY DueDate ASC MAXRESULTS 200"
)

# Monthly P&L check — all transactions this month
txns = run_qbo_query(token, realm,
    "SELECT * FROM Transaction WHERE TxnDate >= '2026-03-01' ORDERBY TxnDate ASC MAXRESULTS 1000"
)

Negative Boundaries — When NOT to Use This Skill

  • Tax filing — use qbo-to-tax-bridge for IRS schedule mapping and tax workpaper generation
  • Payroll processing — QBO Payroll and Gusto have dedicated APIs; this skill doesn't cover payroll runs or W-2/1099 filing
  • OAuth setup — Getting QBO Client ID/Secret and initial token exchange requires a separate auth flow; this skill assumes credentials already exist
  • Multi-entity consolidations — Each QBO realm is separate; consolidation across entities requires a dedicated reporting layer
  • Audit-level assurance — This produces bookkeeping outputs; CPA review and sign-off are required for audit-level work
  • Non-QBO accounting software — Xero, FreshBooks, Wave, Sage have different APIs; this skill is QBO-specific
  • Real-time inventory management — QBO inventory has limitations; dedicated WMS systems (Fishbowl, etc.) are better for complex inventory

Environment Variables Reference

export QBO_CLIENT_ID="your_client_id"
export QBO_CLIENT_SECRET="your_client_secret"
export QBO_REFRESH_TOKEN="your_refresh_token"
export QBO_REALM_ID="your_company_id"

# Sandbox vs Production
export QBO_BASE_URL="https://quickbooks.api.intuit.com"  # Production
# export QBO_BASE_URL="https://sandbox-quickbooks.api.intuit.com"  # Sandbox

Quick Reference — QBO Account Types & Sub-Types

Account TypeCommon Sub-Types
BankChecking, Savings, MoneyMarket
Accounts ReceivableAccountsReceivable
Other Current AssetPrepaid Expenses, UndepositedFunds
Fixed AssetMachinery, FurnitureAndFixtures, Vehicles
Accounts PayableAccountsPayable
Credit CardCreditCard
Other Current LiabilityDirectDepositPayable, SalesTaxPayable
Long Term LiabilityNotesPayable, OtherLongTermLiabilities
EquityOpeningBalanceEquity, OwnersEquity, RetainedEarnings
IncomeSalesOfProductIncome, ServiceFeeIncome
Cost of Goods SoldSuppliesMaterialsCogs
ExpenseAdvertisingPromotional, Insurance, RentOrLeaseOfBuildings
Other IncomeOtherMiscellaneousIncome
Other ExpenseDepreciation, OtherMiscellaneousExpense

平台分布

OpenClaw

98.97%
按下载量换算2,595

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills