Skip to content

Invoice Follow-Up Digest: A Weekly Email Listing the Invoices to Chase

For Copyeditor / Proofreader (Freelance / Publishing)s ·

Zapier

For Copyeditors and Proofreaders

Tools: Zapier + Google Sheets + Gmail | Time to build: 1 to 2 hours | Difficulty: Advanced Prerequisites: basic comfort with Google Sheets formulas, and the Level 1 late-payment reminder ladder prompt (the digest tells you which invoice to chase, and that prompt helps you word the reminder)


What This Builds

Freelance work ends twice: once when you deliver the edit, and again when the money arrives. The second ending is the one that slips, because it depends on someone else's accounts department and your own habit of checking.

This build keeps a list of your invoices as codes and dates, and emails you once a week with the ones that are past due by more than the grace period you set, plus any invoice with no due date. It holds no amounts and no contact details. Those stay in your invoicing tool or accounts. It never contacts a client. You send every reminder yourself and record it in the sheet.

The sheet builds the digest, so there is no AI step, and nothing about a client goes to an AI vendor.

Prerequisites

  • A new Google Sheet for invoices alone, separate from your deadline and follow-up sheets
  • A Google account with Gmail and Google Sheets
  • A Zapier account on a paid plan, because this Zap has three steps and the free plan allows two-step Zaps only. Currently Professional at $29.99/month
  • Your own invoice numbers and due dates, copied from your invoices
  • Permission to hold client codes and invoice numbers in a Google Sheet and a Zapier account (see "What Zapier Sees" below)

Total ongoing cost: the Zapier subscription above. Google Sheets and Gmail come with the Google account you already have, and there is no AI subscription. If you run all three digest builds in this series on one Zapier plan, that is one subscription.

The Concept

Think of a bookkeeper who reads you one card each Monday. The bookkeeper never sees your invoices, only the card, so your sheet writes the card, and it writes one every week.

The Summary tab holds one row that always exists. Zapier reads that row and emails you its contents. The design matters because a Zapier lookup that finds no row stops the Zap ("Safely halted" in Zap History), no later step runs and no email is sent. A Zap that searched your invoices for late ones would go quiet in the weeks when nothing is late, and a quiet inbox would look exactly like a broken Zap. A Summary row that always exists keeps the email coming.

What Zapier Sees and Keeps

Zap History stores the data that each step received and returned. For this Zap that means the Summary row (the Grace Days setting, the Action Count and the full Digest Lines text) and the recipient and subject of the Gmail step. Google holds the sheet and the email too.

So the sheet holds only:

  • Your invoice number, such as "INV-031", a client code such as "Client B" and a project code such as "P104"
  • The due date from the invoice and the status
  • Never an amount, a rate, a client's contact details, a bank detail, a confidential client's name, or an unpublished title

Amounts stay in your invoicing tool or accounts. Before you start, check the client contract or the publisher's policy, since some contracts speak to coded data held in outside services too. If a client says no, leave that client's invoices out of the sheet and track them in your accounts.


Build It Step by Step

Part 1: Lay Out the Sheet

Create two tabs named exactly Invoices and Summary. The formulas refer to those names.

Invoices tab, row 1 headers:

ColumnHeaderWhat goes in itEntered or formula
AInvoice NoYour own number, such as INV-031Entered
BClientA code such as Client BEntered
CProjectA code such as P104Entered
DDue DateThe due date printed on the invoiceEntered
EStatusDropdown: Sent, Reminder sent, Paid, CancelledEntered
FDays Past DueToday minus Due DateFormula
GFlagOne label per rowFormula
HDigest LineOne line of text per rowFormula

Format column D as a date and column F as a plain number. Dropdowns come from the Insert menu in Sheets.

Summary tab, row 1 headers with one data row in row 2:

CellHeader (row 1)Row 2 contains
AKeyThe word summary, typed exactly, in lowercase
BGrace DaysA number you choose, for example 7
CAction CountFormula
DDigest LinesFormula

Zapier reads row 1 as field names, so keep these headers as written. Grace Days is your settings cell. Pick a number that suits your own terms and clients. This guide states no payment rule, and the real terms come from your contract and your invoice.

Part 2: Add the Formulas

Enter each formula in row 2 and fill down to row 200. If you need more rows, change every 200 in every formula to the same larger number.

Invoices!F2 (Days Past Due):

Copy and paste this
=IF(OR(A2="",D2=""),"",TODAY()-D2)

Blank when the invoice number or the due date is blank. Positive means days past the due date. Zero or negative means the due date has not passed.

Invoices!G2 (Flag):

Copy and paste this
=IF(A2="","",IF(OR(E2="Paid",E2="Cancelled"),"Closed",IF(D2="","Missing date",IF(F2<=0,"Not yet due",IF(F2>=Summary!$B$2,"CHASE","In grace")))))

Invoices!H2 (Digest Line):

Copy and paste this
=IF(A2="","",A2&" | "&B2&" | "&C2&" | "&IF(D2="","no date","due "&TEXT(D2,"yyyy-mm-dd")&IF(F2>0,", "&F2&IF(F2=1," day"," days")&" past due",""))&" | "&E2&" | "&G2)

TEXT turns the date into readable text. Without it, a date joined into a sentence prints as a serial number such as 46285.

Summary!C2 (Action Count):

Copy and paste this
=COUNTIF(Invoices!$G$2:$G$200,"CHASE")+COUNTIF(Invoices!$G$2:$G$200,"Missing date")

Summary!D2 (Digest Lines):

Copy and paste this
=IFERROR(TEXTJOIN(CHAR(10),TRUE,FILTER(Invoices!$H$2:$H$200,(Invoices!$G$2:$G$200="CHASE")+(Invoices!$G$2:$G$200="Missing date")>0)),"No invoices past your grace period")

FILTER keeps the Digest Line of every CHASE or Missing date row, and TEXTJOIN stacks them with line breaks. If nothing matches, FILTER returns an error and IFERROR replaces it with the fallback sentence, so a quiet week still produces a readable email. Both ranges inside FILTER run from row 2 to row 200, so they have the same height.

Part 3: Walk the Flag Formula Through Each Case

Assume Grace Days is 7 and today is 2026-10-12.

  • A blank row. Invoice No is blank, so the first test returns an empty string and the other columns are blank too. COUNTIF counts only the labels CHASE and Missing date, so blank rows are never counted.
  • Closed. Status is Paid or Cancelled, so the Flag is Closed whatever the date. Closed comes first so that a paid invoice does not keep appearing as late.
  • Missing date. The invoice exists, it is not closed and Due Date is blank. This test sits ahead of the day tests because a blank Days Past Due is empty text, and Sheets treats empty text as larger than any number, which would label the row CHASE by mistake.
  • Not yet due. Due 2026-10-26 gives -14. Zero or below means the date has not passed, so Not yet due. An invoice due today gives 0 and is also Not yet due.
  • In grace. Due 2026-10-09 gives 3 days past due. Positive but below 7, so In grace.
  • CHASE. Due 2026-10-05 gives 7, which is at least 7, so CHASE. A due date of 2026-09-20 gives 22, also CHASE.

Reminders do not change the Flag. When you record "Reminder sent" in Status, the row still says CHASE and still appears in the digest each week until you mark it Paid. That is deliberate: the digest keeps showing what is unpaid, and you decide whether to follow up again.

Part 4: Build the Zap

Open zapier.com, create a new Zap and add three steps. Check each event name against what Zapier shows. These names were current on 2026-10-09.

Step 1. Trigger: Schedule by Zapier, event Every Week. Choose the day and the time of day, for example Monday morning. Test the trigger.

Step 2. Action: Google Sheets, event Lookup Spreadsheet Row. Connect your Google account, choose the invoice spreadsheet and the Summary worksheet. Set the lookup column to Key and the lookup value to summary. Leave off any option that creates a row when none is found. Test: you should see one row with fields named Grace Days, Action Count and Digest Lines.

Step 3. Action: Gmail, event Send Email.

  • To: your own address, typed in. Nobody else.
  • Subject: build it from three pieces in this order: the text "Invoice digest: ", the Action Count field from Step 2, and the text " to chase".
  • Body: insert the Digest Lines field from Step 2. If the step offers a body type, choose plain text so the line breaks stay.

Test the step, which sends a real email to you. Then turn the Zap on.

Each run uses its successful action steps (the lookup and the send) as tasks. The schedule trigger is not counted. Zapier's pricing page states your plan's task allowance.

Part 5: Send the Reminders Yourself

For each line in the digest, check the invoice and your contract or invoice terms, and then decide what to send. The Level 1 late-payment reminder ladder gives you three drafts of rising firmness, and you add the amount and terms from your own records. Late fees and any legal step depend on your contract and invoice terms. If you are unsure what applies, ask the client's accounts contact or your own adviser. Nothing in this build states a rule for you. After you send a reminder, set Status to Reminder sent. When the payment lands, set it to Paid.

Part 6: Keep the Sheet Honest

  • TODAY() is recalculated by Sheets, not by Zapier. Google's calculation settings offer Automatic and Manual modes, with no scheduled recalculation, so keep Calculation Mode on Automatic and open the sheet before the run if the counts look a day behind.
  • Move Paid and Cancelled rows to an Archive tab every quarter so the 200 rows last.

Real Example

Invented date for TODAY(): Monday 2026-10-12. Grace Days: 7. All numbers and codes are invented.

RowInvoice NoClientProjectDue DateStatusDays Past DueFlag
2INV-029Client BP1012026-09-20Sent22CHASE
3INV-030Client CP1042026-10-05Reminder sent7CHASE
4INV-031Client DP1072026-10-09Sent3In grace
5INV-032Client BP1092026-10-26Sent-14Not yet due
6INV-028Client CP1022026-09-15Paid27Closed
7INV-033Client DP111(blank)Sent(blank)Missing date
8(blank)(blank)(blank)

Check each difference: September 20 to September 30 is 10 days, plus 12 in October, which is 22. The 12th minus the 5th is 7. The 12th minus the 9th is 3. The 26th is 14 days after the 12th, so -14. September 15 to September 30 is 15 days, plus 12, which is 27.

Summary row result:

  • Action Count: 2 CHASE + 1 Missing date = 3
  • Digest Lines (in sheet order):
Copy and paste this
INV-029 | Client B | P101 | due 2026-09-20, 22 days past due | Sent | CHASE
INV-030 | Client C | P104 | due 2026-10-05, 7 days past due | Reminder sent | CHASE
INV-033 | Client D | P111 | no date | Sent | Missing date

The email: subject "Invoice digest: 3 to chase", sent to you on Monday morning with those three lines as the body. INV-031 is inside the grace period, INV-032 is not due, and INV-028 is paid, so none of them appears. You then check INV-029 and INV-030 against your contract, send or skip a reminder, and find the missing due date on INV-033.


What to Do When It Breaks

  • No email arrived. This failure is silent. Check that the Zap is switched on, that Summary!A2 still holds exactly the word summary, and that the Google connection has not expired. Open Zap History for the scheduled day. A "Safely halted" status on the lookup step means the Key no longer matches, and no run at all means the Zap was off.
  • Check the check. A monthly calendar reminder asking "Did the invoice digest arrive in the last four weeks?" catches a dead Zap before you miss a late payment.
  • A date prints as a five-digit number. The Digest Line formula has lost its TEXT wrapper, or the Due Date was typed as text. Re-enter the date.
  • A paid invoice keeps appearing. Status is not set to Paid or Cancelled, or has a different spelling from the dropdown. Reselect it from the dropdown.
  • A blank Due Date shows as CHASE. The Missing date test sits after the day tests in your Flag formula. Move it ahead as in Part 2.
  • The counts look a day old. Open the sheet, let it recalculate and confirm Calculation Mode is Automatic.

Variations

  • Simpler version: drop the Reminder sent status and use Sent and Paid only.
  • Extended version: add a second weekly schedule on a Thursday, to yourself, using the same Summary row.

What to Do Next

  • This week: enter your open invoices by number, client code and due date, and run the test email.
  • This month: adjust Grace Days to match your own terms, and check each week's digest against your accounts for a few weeks.
  • Advanced: combine with the deadline digest and the follow-up digest, each in its own spreadsheet.

Advanced guide for Copyeditors and Proofreaders. Zapier's menus and plan limits change. If a step looks different from this guide, search for the event name on the app's Zapier integrations page.