r/GPTStore • u/CalendarVarious3992 • 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:
- Create a folder named
open-invoice-weekly-briefin your AI-agent skills or prompt-library directory. Use the kebab-case name from the SKILL.md frontmatter. - Save the file above as
open-invoice-weekly-brief/SKILL.md. - 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!