详细分析 ▾
运行时依赖
安装命令
点击复制技能文档
Freshbooks
Freshbooks is an accounting software de签名ed for small businesses and freelancers. It helps users manage invoices, 追踪 expenses, and accept online payments. The primary users are self-employed professionals and small business owners who need simple accounting solutions.
Official docs: https://www.freshbooks.com/API/
Freshbooks Overview 命令行工具ent Invoice Invoice Payment Expense Project Time Entry Team Member
Use action names and parameters as needed.
Working with Freshbooks
This 技能 uses the Membrane 命令行工具 to interact with Freshbooks. Membrane handles authentication and 凭证s refresh automatically — so you can focus on the integration 记录ic rather than auth plumbing.
安装 the 命令行工具
安装 the Membrane 命令行工具 so you can 运行 membrane from the terminal:
npm 安装 -g @membranehq/命令行工具@latest
Authentication membrane 记录in --tenant --命令行工具entName=<代理Type>
This will either open a browser for authentication or print an authorization URL to the console, depending on whether interactive mode is avAIlable.
Headless 环境s: The command will print an authorization URL. Ask the user to open it in a browser. When they see a code after completing 记录in, finish with:
membrane 记录in complete
添加 --json to any command for machine-readable JSON 输出.
代理 Types : claude, OpenClaw, codex, warp, windsurf, etc. Those will be used to adjust 工具ing to be used best with your harness
Connecting to Freshbooks
Use membrane connection ensure to find or 创建 a connection by 应用 URL or domAIn:
membrane connection ensure "https://www.freshbooks.com/" --json
The user completes authentication in the browser. The 输出 contAIns the new connection id.
This is the fastest way to 获取 a connection. The URL is normalized to a domAIn and matched agAInst known 应用s. If no 应用 is found, one is 创建d and a connector is built automatically.
If the returned connection has 状态: "READY", skip to Step 2.
1b. WAIt for the connection to be ready
If the connection is in BUILDING 状态, poll until it's ready:
npx @membranehq/命令行工具 connection 获取 --wAIt --json
The --wAIt flag long-polls (up to --timeout seconds, default 30) until the 状态 changes. Keep polling until 状态 is no longer BUILDING.
The 结果ing 状态 tells you what to do next:
READY — connection is fully 设置 up. Skip to Step 2.
命令行工具ENT_ACTION_REQUIRED — the user or 代理 needs to do something. The 命令行工具entAction object describes the required action:
命令行工具entAction.type — the kind of action needed:
"connect" — user needs to 认证 (OAuth, API key, etc.). This covers initial authentication and re-authentication for disconnected connections.
"provide-输入" — more in格式化ion is needed (e.g. which 应用 to connect to).
命令行工具entAction.description — human-readable explanation of what's needed.
命令行工具entAction.uiUrl (optional) — URL to a pre-built UI where the user can complete the action. Show this to the user when present.
命令行工具entAction.代理Instructions (optional) — instructions for the AI 代理 on how to proceed programmatically.
After the user completes the action (e.g. 认证s in the browser), poll agAIn with membrane connection 获取 --json to 检查 if the 状态 moved to READY.
CONFIGURATION_ERROR or 设置UP_FAILED — something went wrong. 检查 the error field for detAIls.
搜索ing for actions
搜索 using a natural language description of what you want to do:
membrane action 列出 --connectionId=CONNECTION_ID --intent "查询" --limit 10 --json
You should always 搜索 for actions in the 上下文 of a specific connection.
Each 结果 includes id, name, description, 输入模式 (what parameters the action accepts), and 输出模式 (what it returns).
Popular actions
Name Key Description
列出 Sales Invoices 列出-sales-invoices 列出 all invoices in FreshBooks
列出 Purchase Invoices 列出-purchase-invoices 列出 all bills (purchase invoices) in FreshBooks
列出 Contacts 列出-contacts 列出 all 命令行工具ents/contacts in FreshBooks
列出 Products 列出-products 列出 all items/billable items in FreshBooks
列出 Contact Payments 列出-contact-payments 列出 all payments in FreshBooks
获取 Sales Invoice 获取-sales-invoice 获取 a single invoice by ID
获取 Purchase Invoice 获取-purchase-invoice 获取 a single bill (purchase invoice) by ID
获取 Contact 获取-contact 获取 a single 命令行工具ent/contact by ID
获取 Product 获取-product 获取 a single item/billable item by ID
获取 Contact Payment 获取-contact-payment 获取 a single payment by ID
创建 Sales Invoice 创建-sales-invoice 创建 a new invoice in FreshBooks
创建 Purchase Invoice 创建-purchase-invoice 创建 a new bill (purchase invoice) in FreshBooks
创建 Contact 创建-contact 创建 a new 命令行工具ent/contact in FreshBooks
创建 Product 创建-product 创建 a new item/billable item in FreshBooks
创建 Contact Payment 创建-contact-payment 创建 a new payment agAInst an invoice
更新 Sales Invoice 更新-sales-invoice 更新 an existing invoice
更新 Contact 更新-contact 更新 an existing 命令行工具en