Install
openclaw skills install @bsalaeddin/superbooks-chasing-unpaid-invoicesReviews money owed to the business in SuperBooks: unpaid and overdue invoices, who owes the most, the total outstanding, and an open invoice's details, and drafts a reminder for the user to send. Use when the user asks 'which invoices are unpaid', 'who owes me the most', 'what's overdue', 'how much is outstanding', 'show my accounts receivable', or 'which customers should I chase'. Read-only.
openclaw skills install @bsalaeddin/superbooks-chasing-unpaid-invoicesGive the user a clear picture of receivables: what is open, what is overdue, and who owes what.
Every operation in this skill comes from the superbooks MCP server, the SuperBooks connector. The server defaults to Code Mode, so the operations below are written as the external_* functions you call inside superbooks:execute_typescript. On a server set to the per-tool surface, the same operation is listed as superbooks:<name> without the external_ prefix, for example superbooks:invoices_list.
superbooks:search_tools and superbooks:execute_typescript listed (Code Mode, the default): call superbooks:search_tools first, then call each tool inside superbooks:execute_typescript as external_<tool> (for example external_invoices_list); the program must return its result. Scopes, confirmations and gates are identical on both surfaces.superbooks:invoices_list.superbooks:search_tools does not return the tool either, its OAuth scope was not granted; the user reconnects SuperBooks and approves that scope.superbooks tools at all: SuperBooks is not connected yet. Install the SuperBooks power, which adds the server; it signs in with OAuth on first use.The superbooks MCP server has two tools: superbooks:search_tools (call it first, for example with invoice, to get the exact input shapes) and superbooks:execute_typescript (run a short program calling the declared external_* functions; the program must return its result).
If the connection lists the operations by name instead (the per-tool surface), call them directly without the external_ prefix.
Operations this skill uses:
external_invoices_list: invoices filtered by status (for example unpaid), with amounts and due dates.external_invoices_get: one invoice with line items, customer, totals and sent_at.external_customers_get: contact details for a customer the user wants to follow up with.external_reports_top_customers: customers ranked by revenue, for context.external_team_get: the team currency.external_invoices_list with status: "unpaid" and external_team_get with await Promise.all.external_invoices_get and external_customers_get together and draft a short, polite reminder e-mail for the user to send themselves, with invoice number, amount, due date and the customer's billing e-mail.const [open, team] = await Promise.all([
external_invoices_list({ status: "unpaid" }),
external_team_get({}),
]);
return { open, currency: team.currency };
external_invoices_send is for sending a draft, so never use it to nudge a customer about an invoice already sent.external_invoices_void or any other write operation. Payments are recorded in the app.