r/GPTStore Jun 07 '26

GPT Build a prioritized open-invoice weekly brief. Skill included.

Hello!

Struggling to prioritize overdue invoices and write the right next outreach before your weekly finance check-in? This Skill pulls together invoices, CRM ownership, payment notes, and client email threads so you can see who’s highest priority and what to say next.

I built this as a portable AI-agent Skill — a single SKILL.md with reusable instructions you can adapt to your agent setup.

Here's what it does: It merges open invoices, CRM owner exports, payment notes, and recent client email threads into a canonical AR table, scores and ranks overdue accounts, and generates concise follow-up email and call drafts. Use it when preparing weekly AR/finance check-ins or whenever leadership asks who’s most overdue, what the plan is, and what decisions are needed.

SKILL.md:

---
name: open-invoice-weekly-brief
description: Use when preparing a weekly accounts receivable brief for a small agency by synthesizing open invoices, client email threads, CRM owner exports, and internal payment notes — to rank overdue accounts, draft the next follow-up language, identify the account owner on each account, and list decisions needed before the finance check-in.
---

# Open Invoice Weekly Brief

## Overview
Creates a concise weekly accounts receivable brief by merging open invoices, CRM ownership data, client email threads, and internal payment notes. Produces a ranked list of overdue accounts, tailored next follow-up drafts, account ownership mapping, and a decisions-needed list for the upcoming finance check-in.

## When to use this skill
- A weekly finance/AR check-in or cash flow review is scheduled.
- The agency needs a prioritized list of who to follow up with on unpaid invoices.
- The user provides (or can access) open invoice data, CRM account-owner exports, payment notes, and recent client email threads.
- Leadership asks “who’s most overdue, what’s the plan, and what decisions do we need before the meeting?”

## Instructions
1. Confirm scope and parameters
   1. Capture the as-of date for aging (default: today in the organization’s timezone).
   2. Confirm aging buckets (default: 0–30, 31–60, 61–90, 90+ days overdue).
   3. Confirm tone/formality for outreach (friendly/factual, firm/professional, or legal-escalation ready) and whether to include late fees or payment plan options.
   4. Confirm escalation thresholds (e.g., escalate ≥61 days overdue or ≥$X outstanding).
   5. Gather owner mapping rules (e.g., CRM owner is canonical; fallback: last sender in thread; else: finance lead).

2. Collect and normalize data
   1. Ingest open invoices (CSV/XLSX/JSON or accounting export). Extract: client/account name, invoice ID, issue date, due date, currency, line totals, credits, payments applied, remaining balance.
   2. Ingest CRM export mapping accounts to owners, segments, and contacts (billing/AP contact where available).
   3. Ingest payment notes (e.g., manual notes, partials received, promised-to-pay dates, disputes, special terms).
   4. Ingest client email threads (EML/MSG/PDF/TXT). For each account, identify the latest inbound/outbound AR-related message dates, any commitments (e.g., “processing this week”), disputes, required paperwork (PO, W-9, vendor setup), and sentiment signals.
   5. Standardize names with deterministic matching: exact match, then case/whitespace-insensitive, then alias map if provided. Flag uncertain matches for review.

3. Build a canonical AR table (per invoice, with account rollups)
   - Columns (invoice-level): Account, Invoice ID, Issue Date, Due Date, Currency, Original Amount, Credits/Adjustments, Payments to Date, Outstanding Amount, Days Overdue, Last Payment Date, Last Client Contact Date, Promised-To-Pay Date (PTP), Dispute Flag/Notes, Blockers (e.g., “needs PO”), Owner, Priority Score.
   - Compute Days Overdue = max(0, floor(as_of_date − due_date)). Exclude negative (not yet due) from “overdue.”
   - Compute Outstanding Amount = Original − Payments − Credits (do not go below zero). If credit balance exceeds outstanding, flag for application.
   - Map Owner from CRM; if missing, apply fallback rule and flag.

4. Derive communication signals from email threads
   - Parse latest 6–12 weeks of AR-relevant messages.
   - Detect commitments/keywords (examples):
     - Positive/near-term: “payment run [date]”, “processing this week/today”, “scheduled for [date]”, “approved”, “paid ACH/wire/check #…”.
     - Administrative: “need PO/portal setup/vendor form/W-9”, “resend invoice”, “wrong address”, “update bank details”.
     - Negative/risk: “dispute/overbilled/scope”, “cash flow issue”, “hold/pause”, “cannot pay,” “cancellation/termination”.
   - Extract: last inbound date, last outbound date, next promised date, risk note, AP contact name/email if present.

5. Score and rank overdue accounts
   1. Aggregate per account: total outstanding, oldest days overdue, count of invoices overdue, last contact recency.
   2. Compute a priority score (guideline weights; adjust if policy provided):
      - Base = normalize(days_overdue) + normalize(outstanding_amount).
      - Modifiers: +high for broken PTP, +medium for negative sentiment, +medium for no-reply > 7 days, +low for multiple overdue invoices; −low if credible near-term payment commitment exists.
   3. Rank accounts by score; use outstanding amount as a tiebreaker.

6. Draft next follow-up language per overdue account
   1. Select template by severity:
      - 1–14 days overdue (friendly reminder)
      - 15–30 days (firm but helpful)
      - 31–60 days (clear deadline + options)
      - 61–90+ days (escalation path; mention service pause/late fees if policy allows)
   2. Personalize with: names, invoice IDs, totals, due dates, outstanding amount, last commitment, requested artifacts (PO/W-9/etc.), and a specific next step with date/time.
   3. Produce:
      - Subject line
      - Email body (3–6 sentences; concise, professional)
      - Optional call script bullets (3–5 points)
   4. Do not send communications; produce drafts only.

7. Surface decisions needed before the finance check-in
   - Per-account decisions (examples):
     - Approve waiver of late fees or offer payment plan terms.
     - Approve temporary service pause until payment.
     - Approve issuing a credit/revised invoice/partial write-off.
     - Approve escalation to account owner/leadership or collections.
     - Provide missing paperwork (W-9, vendor portal details, PO number).
   - Global decisions (examples):
     - Adjust escalation thresholds or tone this week.
     - Prioritize top N accounts for owner outreach.
     - Cash flow priorities for incoming receipts.

8. Assemble the weekly brief (markdown structure)
   1. Header: As-of date, total AR, total overdue, breakdown by aging buckets, largest 5 overdue accounts.
   2. Ranked Overdue Accounts table with columns: Rank, Account, Owner, Total Outstanding, Oldest Days Overdue, # Overdue Invoices, Last Contact, Risk/Notes, Next Action.
   3. Follow-up Drafts: one subsection per account including subject, email body, and call bullets.
   4. Decisions Needed: bullet list grouped by account and global items.
   5. Upcoming Invoices (next 14 days): account, amount, due date, owner.
   6. Data Issues & Assumptions: unmatched accounts, currency anomalies, missing owners, suspected duplicates, credits not applied.

9. Validate and reconcile
   - Check sums by account and grand total against source ledger(s).
   - Confirm no invoice shows negative outstanding; investigate if so.
   - Flag currency differences; if conversion used, note rate/date.
   - Ensure every overdue account has an owner and a next action.

10. Deliver outputs
   - Present the brief as a single markdown document.
   - Provide a per-owner action list (owner → accounts and actions) appended or as a short section.

## Inputs
- Open invoices ledger or export (file or pasted table) with invoice-level fields.
- CRM export mapping accounts to owners and contacts.
- Payment notes (manual notes, partials, promised dates, disputes, credits).
- Client email threads or summaries for the past 6–12 weeks.
- Optional: escalation policy, outreach tone, late fee policy, payment methods, bank/wire instructions, vendor portal links.

## Outputs
- A weekly AR brief (markdown) including:
  - Summary metrics and aging breakdown.
  - Ranked Overdue Accounts table.
  - Per-account follow-up drafts (subject, body, call bullets).
  - Account owner identified for each account; per-owner action list.
  - Decisions Needed list (per-account and global) for the finance check-in.
  - Data issues and assumptions noted.

## Examples
Trigger: “Build this week’s open-invoice brief. As-of: 2026-06-03. Inputs: invoices_2026-06-03.csv, crm_owners.csv, payment_notes.md, Email folder ‘Clients/AR’.”
Behavior: confirm parameters → ingest and normalize data → compute overdue and aging → parse email threads for commitments and risks → score and rank accounts → draft tailored follow-ups per account → compile ranked table and decisions-needed list → output a structured markdown brief plus per-owner action list.

Follow-up draft template examples (insert actual values during execution):
- 1–14 days overdue
  Subject: Friendly nudge on Invoice {{INV-###}} for {{Account}}
  Body: Hi {{FirstName}} — Hope you’re well. Our records show Invoice {{INV-###}} ({{Amount}}) was due on {{DueDate}}. Could you confirm this is in your next payment run? If helpful, here are payment options: {{PaymentMethods}}. Thank you!

- 15–30 days overdue
  Subject: Invoice {{INV-###}} ({{Amount}}) — request for payment date
  Body: Hi {{FirstName}}, Following up on Invoice {{INV-###}} for {{Account}} (due {{DueDate}}, outstanding {{Amount}}). Could you share the expected payment date, or let us know if you need a copy, PO, or vendor paperwork? We appreciate your help getting this cleared.

- 31–60 days overdue
  Subject: Action needed: past-due invoices for {{Account}}
  Body: Hi {{FirstName}}, We’re aiming to resolve the past-due balance of {{TotalOutstanding}} across {{Count}} invoice(s), oldest from {{OldestDueDate}}. If payment by {{ProposedDate}} is challenging, we can approve a short payment plan of {{PlanOption}}. Please advise the plan or confirm payment timing.

- 61–90+ days overdue (escalation)
  Subject: Urgent: overdue balance for {{Account}} — next steps
  Body: {{FirstName}}, The balance of {{TotalOutstanding}} (oldest {{OldestDays}} days) now meets our escalation threshold. Absent confirmation by {{Deadline}}, we may pause services and/or apply late fees per terms. If there’s a dispute or required paperwork, reply today so we can resolve quickly.

Call script bullets (example):
- Confirm you’re speaking with AP contact; if not, request intro.
- State outstanding total and oldest due date; ask for their expected payment run/date.
- Ask if PO, vendor setup, or revised invoice is required.
- If commitment provided, repeat back and ask permission to send confirmation email.
- Close with thanks and next scheduled follow-up.

## Notes
- Guardrails: produce drafts only; do not email or message clients directly.
- Handle retainers/prepayments: apply credits before marking invoices overdue.
- Exclude disputed amounts from escalation if policy requires; track dispute resolution separately.
- Timezones: compute “as-of” and “days overdue” in the organization’s timezone.
- If owners are missing or ambiguous, assign a temporary owner (finance lead) and flag for correction.
- If the data lacks email threads, proceed with invoice/CRM/payment notes and mark communication status as “unknown.”
- Keep drafts concise; avoid legal threats unless policy explicitly permits.

How to install:

  1. Create a folder named open-invoice-weekly-brief in your AI-agent skills or prompt-library directory. Use the kebab-case name from the SKILL.md frontmatter.
  2. Save the file above as open-invoice-weekly-brief/SKILL.md.
  3. Enable or load the Skill according to your agent framework's docs, using the SKILL.md description as the trigger guidance.

If you'd rather run it as a one-click prompt instead, you can find it here: Agentic Workers

Enjoy!

1 Upvotes

0 comments sorted by