invoice-chase

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Invoice Chase

Invoice Chase

Quick start

快速开始

Pull the AR aging report, score each customer by payment history, draft a tone-matched reminder for each overdue invoice, and present them to the owner. Nothing sends until the owner says so.
User: "who owes me money"
→ Pull AR aging from QuickBooks
→ Cross-reference PayPal settlements (last 14 days)
→ Score each customer: good-payer / occasionally-late / repeat-late
→ Draft tone-matched reminders
→ Show summary table + drafts. Wait for "send these."
提取AR aging报告,根据付款历史为每位客户打分,为每张逾期发票起草匹配对应语气的提醒邮件,并提交给所有者。未经所有者确认,不会发送任何内容。
User: "who owes me money"
→ Pull AR aging from QuickBooks
→ Cross-reference PayPal settlements (last 14 days)
→ Score each customer: good-payer / occasionally-late / repeat-late
→ Draft tone-matched reminders
→ Show summary table + drafts. Wait for "send these."

Setup (first run only)

首次运行设置

Ask the owner two questions before running for the first time:
  1. Mail connector: "Do you use Gmail or Apple Mail for drafts?" — store the answer; use it for all non-PayPal draft queuing.
  2. Stripe: "Do you use Stripe for invoicing? I can include Stripe invoices in the overdue sweep." — if yes, pull Stripe overdue invoices alongside QuickBooks.
Do not ask again on subsequent runs.
首次运行前,向所有者询问两个问题:
  1. 邮件连接器:“您使用Gmail还是Apple Mail存储草稿?”——保存答案,用于所有非PayPal发票的草稿排队。
  2. Stripe:“您使用Stripe开具发票吗?我可以将Stripe逾期发票纳入逾期排查范围。”——如果是,在提取QuickBooks数据的同时也提取Stripe逾期发票。
后续运行时不再询问这些问题。

Workflow

工作流

  1. Pull overdue receivables. Query QuickBooks AR aging for all invoices more than 1 day past due. If Stripe is enabled (owner confirmed at setup), also pull Stripe overdue invoices.
  2. Cross-reference payment history. For each overdue customer, query PayPal for settled transactions using these parameters:
    • transaction_status: S
      (settled only — filters out pending and denied transactions that inflate result size and increase rate-limit risk)
    • Date window: last 7 days ending today (not 14 or 30 — wider windows are the primary cause of PayPal 429 rate limit errors)
    If PayPal returns a 429 rate limit error:
    • Retry once immediately with a 3-day window instead.
    • If the retry also returns 429, skip the PayPal cross-reference entirely for this run. Flag all customers in the batch as "PayPal unavailable — verify manually" in the summary table. Proceed to scoring using QuickBooks history only. Do not silently drop the caveat.
    If a customer shows a settled payment within the query window, flag as "possibly paid — verify" and exclude from the draft queue.
  3. Score each customer. Read reference/tone-matching.md for scoring logic. Result:
    good-payer
    ,
    occasionally-late
    , or
    repeat-late
    .
  4. Draft reminder emails. One email per customer — consolidate multiple overdue invoices into one email. Match tone to score. See reference/examples/gentle-reminder.md and reference/examples/firm-reminder.md.
  5. Present drafts to owner. Show a summary table first:
    CustomerAmount DueDays LateToneSend via
    Acme Corp$1,20018 daysGentlePayPal
    Smith LLC$45047 daysFirmGmail draft
    Then show each draft email in full. Wait for owner to say "send these" or approve individually.
  6. Send or queue — only after approval.
    • PayPal invoices: send the reminder via PayPal.
    • Non-PayPal invoices: queue as a draft in the owner's configured mail app.
    • Never send without explicit approval.
  7. Report what happened. List what was sent, what was queued as draft, and what was flagged (possibly paid, excluded).
  1. 提取逾期应收款项:查询QuickBooks的AR aging数据,获取所有逾期1天以上的发票。如果已启用Stripe(所有者在设置时确认),同时提取Stripe的逾期发票。
  2. 交叉核对付款历史:针对每位逾期客户,使用以下参数查询PayPal的已结算交易:
    • transaction_status: S
      (仅已结算交易——过滤掉会增大结果规模并提高限流风险的待处理和被拒绝交易)
    • 时间范围:截至今日的过去7天(不要14天或30天——更宽的时间范围是PayPal 429限流错误的主要原因)
    如果PayPal返回429限流错误:
    • 立即重试一次,改用3天时间范围
    • 如果重试仍返回429,本次运行完全跳过PayPal交叉核对。在汇总表中将该批次所有客户标记为“PayPal不可用——请手动验证”。仅使用QuickBooks历史数据进行打分。不得忽略该提示。
    如果客户在查询时间范围内有已结算付款,标记为“可能已付款——请验证”并排除出草稿队列。
  3. 为客户打分:查看reference/tone-matching.md了解打分逻辑。结果分为:
    good-payer
    (优质付款客户)、
    occasionally-late
    (偶尔逾期)或
    repeat-late
    (多次逾期)。
  4. 起草提醒邮件:每位客户对应一封邮件——将多张逾期发票合并到同一封邮件中。根据打分匹配对应语气。示例请查看reference/examples/gentle-reminder.mdreference/examples/firm-reminder.md
  5. 向所有者提交草稿:先展示汇总表:
    CustomerAmount DueDays LateToneSend via
    Acme Corp$1,20018 daysGentlePayPal
    Smith LLC$45047 daysFirmGmail draft
    然后完整展示每封草稿邮件。等待所有者确认“发送这些”或逐一批准。
  6. 发送或排队——仅在批准后执行
    • PayPal发票:通过PayPal发送提醒邮件。
    • 非PayPal发票:在所有者配置的邮件应用中作为草稿排队。
    • 未经明确批准,绝不发送。
  7. 执行报告:列出已发送的内容、已排队为草稿的内容,以及已标记的项目(可能已付款、已排除)。

Approval gates

审批规则

  • Never send or queue a draft without explicit owner approval. Present all drafts first; wait for the go-ahead.
  • Never include a customer who paid in the last 14 days. Flag as "possibly paid — verify" instead.
  • Never send to a customer not in the QuickBooks AR report (or Stripe, if enabled). No reminders from memory alone.
  • One approval covers one batch. Adding a customer or changing a draft after approval starts a new round.
  • 未经所有者明确批准,绝不发送或排队任何草稿:先展示所有草稿,等待许可。
  • 绝不包含过去14天内已付款的客户:改为标记为“可能已付款——请验证”。
  • 绝不向未出现在QuickBooks AR报告中的客户发送提醒(如果启用Stripe,则也不包含未在Stripe中的客户)。不得仅凭记忆发送提醒。
  • 一次审批仅适用于一个批次:批准后添加客户或修改草稿将启动新一轮审批。

Reference

参考资料

  • reference/tone-matching.md — scoring logic, tone guidelines, subject line formulas
  • reference/gotchas.md — known failure modes
  • reference/examples/gentle-reminder.md — good-payer email example
  • reference/examples/firm-reminder.md — repeat-late-payer email example
  • reference/tone-matching.md — 打分逻辑、语气指南、主题行公式
  • reference/gotchas.md — 已知故障模式
  • reference/examples/gentle-reminder.md — 优质付款客户邮件示例
  • reference/examples/firm-reminder.md — 多次逾期付款客户邮件示例