Skip to content

Weekly Estimate, Insertion Order and Invoice Status Digest Sent Only to You

For Advertising & Promotions Managers ·

Tools:Zapier, Google Sheets, Gmail
Time to build:1 to 2 hours
Difficulty:Advanced
Prerequisites:Comfortable with spreadsheet formulas and with reading a Zap's run history. The Level 3 guide "Reconcile Insertion Orders and Invoices From Uploaded Documents With Claude" covers the line-by-line checking this digest prompts you to do.
ZapierGoogle Workspace

What This Builds

Estimates wait for your review, queries sit with a vendor, approved invoices wait to go to finance, and each of them slips quietly. This build emails you once a week with only the documents that need a move from you: review now, chase the vendor, send to finance, or fix a missing update date.

The email goes to you alone. Nothing is sent to agencies, printers, media sellers or finance, and no amounts appear anywhere in the sheet. Amounts stay in finance's system and in your Level 2 Excel tracker ("Track Budget Lines and Insertion Orders With Microsoft Copilot in Excel").

Prerequisites

  • A Google account with Sheets and Gmail. If your company uses Microsoft 365 for mail, ask whether a Google account may hold even coded vendor data.
  • A Zapier account on a plan that allows a three-step Zap. Zapier's free plan has been limited to two-step Zaps, so check current plans at zapier.com. The Professional plan is listed at $29.99/month. That is the full ongoing cost, since Sheets and Gmail come with your Google account.
  • Your company's AI and software policy, checked for whether Zapier and a Google account may hold coded vendor data
  • The estimate, insertion order and invoice references you want to track

The Concept

Picture a clipboard hung by your desk with one row per vendor document, and a note pinned above it that always says how many items need you and which ones. You maintain the clipboard. Zapier is a courier who photographs the pinned note every week and drops the photo in your inbox.

The pinned note is a Summary row that exists whether or not anything needs action. That matters because a Zapier search that finds zero rows halts the Zap ("Safely halted" in Zap History) and sends nothing. With a Summary row that always matches, a quiet week produces an email that says so, and a missing email means something is actually wrong.

What Zapier Sees and Keeps

Zap History records each step's data. Here that is promotion codes, vendor codes, document types, the vendor's short document reference, status values, dates, counts and the digest text. Keep the following out of the sheet:

  • Amounts of any kind, including totals and rates
  • Real vendor names where your contract is confidential. Use codes such as Agency B and Printer C.
  • Unreleased product names. Use a promotion code.
  • Any consumer's personal data

Use short labels and references with no meaning outside your team. Then confirm with your policy that Zapier may hold them.


Build It Step by Step

Part 1: The Documents tab

Create a new spreadsheet for this digest only. Rename the first tab Documents and add these headers in row 1:

ColumnHeaderWhat goes in it
APromoPromotion code, such as SPRING-A
BVendorVendor code, such as Agency B or Printer C
CDoc TypeDropdown: Estimate, Insertion order, Invoice
DDoc RefThe vendor's short reference. No amounts.
EStatusDropdown: Awaiting my review, Query with vendor, Approved, Sent to finance, Paid, Cancelled
FLast UpdateThe date you last changed Status
GDays SinceFormula
HStageFormula
IDigest LineFormula

Add the dropdowns with Data > Data validation and set column F to accept only dates. Format G2:G200 as Format > Number > Number. Whenever you change a Status, change Last Update to that day in the same moment. The Days Since count depends on it.

Part 2: The Summary tab and your setting

Add a tab named Summary. Row 1 is headers and row 2 is the single data row:

CellHeader (row 1)Row 2 contents
AKeythe word summary, typed exactly
BNudge After Daysa number you choose, for example 5
CAction Countformula
DOpen Countformula
EDigest Linesformula

Cell B2 is your setting. A document that has sat in the same status for that many days or more gets nudged.

Part 3: The formulas

Fill each Documents formula down to row 200. Extend every range below if you pass 200 rows.

Days Since, Documents!G2:

Copy and paste this
=IF(OR(C2="",F2=""),"",TODAY()-F2)

Stage, Documents!H2:

Copy and paste this
=IF(C2="","",IF(OR(E2="Paid",E2="Cancelled"),"Closed",IF(F2="","Missing update date",IF(E2="Awaiting my review",IF(G2>=Summary!$B$2,"REVIEW NOW","Awaiting review"),IF(E2="Query with vendor",IF(G2>=Summary!$B$2,"CHASE VENDOR","Query open"),IF(E2="Approved","SEND TO FINANCE",IF(E2="Sent to finance","With finance","Check status")))))))

Digest Line, Documents!I2:

Copy and paste this
=IF(C2="","",A2&" | "&B2&" | "&C2&" | "&D2&" | "&E2&", "&IF(F2="","no update date",G2&" days since update")&" | "&H2)

Action Count, Summary!C2:

Copy and paste this
=COUNTIF(Documents!H2:H200,"REVIEW NOW")+COUNTIF(Documents!H2:H200,"CHASE VENDOR")+COUNTIF(Documents!H2:H200,"SEND TO FINANCE")+COUNTIF(Documents!H2:H200,"Missing update date")

Open Count, Summary!D2:

Copy and paste this
=C2+COUNTIF(Documents!H2:H200,"Awaiting review")+COUNTIF(Documents!H2:H200,"Query open")+COUNTIF(Documents!H2:H200,"With finance")

Digest Lines, Summary!E2:

Copy and paste this
=IFERROR(TEXTJOIN(CHAR(10),TRUE,FILTER(Documents!I2:I200,(Documents!H2:H200="REVIEW NOW")+(Documents!H2:H200="CHASE VENDOR")+(Documents!H2:H200="SEND TO FINANCE")+(Documents!H2:H200="Missing update date"))),"Nothing needs action this week")

Every range in the FILTER is rows 2 to 200, so the heights match. If no row matches, FILTER errors and IFERROR supplies the fallback sentence.

Part 4: Walk the Stage formula through every case

The tests run top to bottom and the first true one decides.

  • Blank row. Doc Type is empty, so Stage is blank, nothing is counted and nothing is filtered in.
  • Paid or Cancelled. Stage is "Closed". This is tested before the date check, so a paid invoice with no update date never nags you.
  • Last Update blank. Stage is "Missing update date". Days Since is blank here, so no later test compares it to a number.
  • Awaiting my review. With Days Since at or above the Nudge After Days, Stage is "REVIEW NOW". Below it, "Awaiting review".
  • Query with vendor. At or above the setting, "CHASE VENDOR". Below it, "Query open".
  • Approved. "SEND TO FINANCE". Approved documents are flagged straight away because only you can move them on.
  • Sent to finance. "With finance". It is counted as open and stays out of the digest, since the next move is finance's.
  • Status left blank on a filled row. Stage reads "Check status". It is not counted and not in the digest, so glance down the Stage column when you update the tab.

Part 5: Build the Zap

  1. In Zapier, create a Zap and choose the trigger Schedule by Zapier, event Every Week. Pick the weekday and hour you want, for example Monday morning.
  2. Add an action: Google Sheets, event Lookup Spreadsheet Row. Choose this spreadsheet and the Summary worksheet. Set the lookup column to Key and the lookup value to the typed word summary. Test it and confirm you see Nudge After Days, Action Count, Open Count and Digest Lines.
  3. Add an action: Gmail, event Send Email. Send it to your own address only. Build the subject with the field picker: Vendor documents: [Action Count] need action, [Open Count] open. Put the Digest Lines field in the body. If line breaks collapse in the test email, look for a plain-text body option in the step.
  4. Add nothing else. No AI step, no vendor addresses, no finance address.

A normal run uses two tasks, since only successful action steps count. The trigger does not count, and a halted search is not billed. Confirm the current rules on Zapier's pricing page.

Part 6: Test and refine

Open the sheet so the formulas recalculate. Then test the Gmail step and compare the email with the Documents tab row by row. Check File > Settings > Calculation is set to recalculate on change and every hour, because TODAY() only moves when the sheet recalculates. Before acting on any line, open the actual estimate, order or invoice and read it against the vendor's document. The digest tells you what is waiting, never what it says.


Real Example: Monday 2026-10-12, Nudge After Days 5

The date used for TODAY() is invented, as are all codes and references.

RowPromoVendorDoc TypeDoc RefStatusLast UpdateDays SinceStage
2SPRING-AAgency BEstimateEST-101Awaiting my review2026-10-057REVIEW NOW
3SPRING-APrinter CEstimateEST-102Awaiting my review2026-10-102Awaiting review
4SPRING-AAgency BInsertion orderIO-210Query with vendor2026-10-075CHASE VENDOR
5SUMMER-BPrinter CInsertion orderIO-211Query with vendor2026-10-102Query open
6SUMMER-BAgency BInvoiceINV-330Approved2026-10-093SEND TO FINANCE
7SUMMER-BPrinter CInvoiceINV-331Sent to finance2026-10-0111With finance
8SUMMER-BAgency BInvoiceINV-332Paid2026-09-2814Closed
9SPRING-AAgency BEstimateEST-103Awaiting my review(blank)(blank)Missing update date
10(blank row)(blank)

Checking by hand from 2026-10-12: the 5th is 7 days back, the 10th is 2 days back, the 7th is 5 days back (exactly at the setting, so row 4 is nudged), the 9th is 3 days back, and October 1 is 11 days back.

Action Count: REVIEW NOW 1 (row 2), CHASE VENDOR 1 (row 4), SEND TO FINANCE 1 (row 6), Missing update date 1 (row 9), so 4. Open Count: those four plus Awaiting review 1 (row 3), Query open 1 (row 5) and With finance 1 (row 7), so 7. Row 8 is Closed and the blank row counts for nothing. Seven open and one closed makes the eight documents on the tab.

The subject reads Vendor documents: 4 need action, 7 open, and the body reads:

Copy and paste this
SPRING-A | Agency B | Estimate | EST-101 | Awaiting my review, 7 days since update | REVIEW NOW
SPRING-A | Agency B | Insertion order | IO-210 | Query with vendor, 5 days since update | CHASE VENDOR
SUMMER-B | Agency B | Invoice | INV-330 | Approved, 3 days since update | SEND TO FINANCE
SPRING-A | Agency B | Estimate | EST-103 | Awaiting my review, no update date | Missing update date

Time saved: The Monday trawl through inboxes and trackers to find what is waiting becomes a four-line read. Updating Status and Last Update when something changes takes seconds per row.


What to Do When It Breaks

  • No digest arrived and nothing looks wrong → This is the silent failure. Open Zap History and look for the scheduled run. No run means the Zap is off or its schedule changed. A "Safely halted" lookup means the Key cell no longer reads exactly summary, or the Summary tab was renamed. An error on the Sheets step usually means an expired Google connection, so reconnect it. Add a calendar reminder to confirm the email arrived each week for the first month.
  • A document you changed still shows the old stage → The sheet has not recalculated. Open it and rerun the test. Also confirm you updated Last Update when you changed Status.
  • Everything shows REVIEW NOW or CHASE VENDOR → Nudge After Days is blank or zero. Enter a number in Summary!B2.
  • Digest Lines is empty while Action Count is above zero → A range in the FILTER is a different height from the others. Make them all rows 2 to 200.
  • A row is missing from the digest and its Stage reads Check status → Status is blank. Pick a value from the dropdown.

Variations

  • Simpler version: Mail only the Action Count and Open Count in the subject, with the sheet link in the body.
  • Extended version: Add a Google Form for logging new documents. Its answers land on a responses tab, which you copy into Documents by hand after checking them.

What to Do Next

  • This week: Enter every open estimate, order and invoice reference and send yourself a test.
  • This month: Tune Nudge After Days to the response time of your slowest vendor.
  • Advanced: Use the digest as the agenda for a short weekly check-in with finance, bringing the real documents.

Advanced guide for Advertising & Promotions Manager professionals. These techniques use more sophisticated features that may require paid subscriptions.