Skip to content

For agencies

Show the client the receipts: a weekly proof that every flow fired

Attribution reports get argued; a receipt gets checked. A weekly format that shows, flow by flow, that each one reached a new customer this week, what it costs in hours, and how to send it without claiming more than it proves.

To show a client their email flows ran, send a weekly flow receipt: for each flow (welcome, basket, checkout, post purchase, back in stock), what you did as a new customer, the email that arrived with its time and Gmail tab, a status of fired, late, did not fire or not due, and the dates any fix was found, approved, live and checked again. It proves delivery, not revenue.

On this page
  1. Why a number gets argued and a receipt gets checked
  2. The weekly receipt: an email marketing report template for each client
  3. How to run it by hand, flow by flow
  4. What it costs in hours across a client list
  5. How to show clients email marketing value without overclaiming
  6. What a run by hand can’t tell you
  7. Start with the clients whose renewal comes first
  8. Questions

Klaviyo’s help page on attribution says it itself: “Every platform or vendor may define event or message attribution slightly differently.” By default it gives a sale to the last eligible touchpoint before the order, and for new accounts the email windows are 5 days after a click and 5 days after an open. A client who sets that report beside the store’s own numbers can end up with two figures and no way to settle which is right.

January is when the retainer gets read. The client has a revenue number it can’t reconcile and a set of flows it has never watched send, and it asks what it is paying for. An agency owner on r/agency put the cost in one line.

I kept losing clients who couldn’t see what they were paying for

An agency owner on r/agency, 2026

In retention agency client reporting, an attribution figure gets argued and a receipt gets checked. A flow receipt is a dated record, made as a new customer, that one flow’s email reached an inbox: what you did, the email itself, the minute it arrived and the tab it landed in. It proves delivery. It doesn’t prove revenue, and you should never present it as if it did.

Nearly 41%

of email revenue comes from flows, which are 5.3% of sends, across 183,000+ Klaviyo customers

Klaviyo (vendor data), 2026 benchmarksklaviyo.com

Flows are where the retainer earns, and where the client sees least. A campaign lands in the client’s own inbox on send day. A flow sends to strangers one at a time, so when one stops, nobody on the client’s side is likely to notice.

A customer side test shows how common the silence is. When Joy Joya signed up to 362 ecommerce brands with fresh email addresses and phone numbers, and recorded what reached a real inbox and phone, 158 never sent a welcome email.

43.6%

of 362 ecommerce brands never sent a new subscriber a welcome email

Joy Joya, page updated 27 July 2026joyjoya.com

Why a number gets argued and a receipt gets checked

A flow report answers a different question. Klaviyo’s flow report shows recipients, opens, clicks and, in its 30 day snapshot, the revenue attributed to the email. Its email metrics reference defines Received Email as “When a recipient receives an email” and doesn’t mention inbox placement or Gmail tabs. Suped, an email deliverability vendor, is plainer still in its seed list guide: “Delivery means the receiving server accepted the message.” That is what a platform report is for.

A receipt records what a customer got, and the client can check it by opening their own inbox. Leave opens out of it. The same metrics reference says tracked opens can include automated opens from Apple Mail Privacy Protection, so an open proves less than an arrival.

Keep both documents and never merge them. Print the attribution window on the revenue report and put the receipt beside it. One says what the flows earned by the platform’s rules. The other says they ran.

The weekly receipt: an email marketing report template for each client

One table per client, sent on the same day every week, one row per flow. The table below is for an invented client, Tarn Tea Co (tarntea.example), for the week of Monday 19 October 2026. Every name, time and fix in it is made up.

FlowYou didWhat arrivedStatusIf it broke
WelcomeSigned up at the pop up, Mon 19 Oct 09:00Welcome email with code, 09:01, PromotionsFiredNone
BasketLeft Smoked Oolong (£14) in the basket, Mon 09:06Reminder at 10:08, PromotionsFiredNone
CheckoutLeft checkout with a £28 tea set, Mon 09:14Nothing at 48 hours, Wed 09:14Did not fireFound Wed 21 Oct 09:14. Cause: a filter left from the summer sale. Approved by the client 15:10. Live 15:40. Checked again Thu 22 Oct: left at 09:00, reminder at 10:02.
Post purchaseNo order this weekNone expectedNot dueNext run Mon 2 Nov, with an order the client OKs
Back in stockAsked to be told about Jade Gunpowder (sold out), Mon 09:20Not restocked this weekNot dueCloses when the client restocks
A weekly flow receipt for one client. Invented example: Tarn Tea Co, tarntea.example

Fired is an email inside its deadline. Late is an email after its deadline but inside 48 hours. Did not fire is nothing at 48 hours, the window the September store check used. Not due is a flow that can’t start until the client does something, such as take an order or restock a product. Set each deadline with the client, from the flow’s own delay, and write it down before the first run. A flow built to send after 1 hour can have a 2 hour deadline. Without that, “late” becomes the next argument.

Above the table, put the verdict in one line: 2 of 3 flows run this week fired on time. Checkout did not; it was fixed on Wednesday and fired when checked again on Thursday. Post purchase and back in stock were not due. Under it, give each fix its four dates: found, approved, live, checked again. Attach every email as it arrived, forwarded with the received time showing. A screenshot starts an argument. The email settles it.

How to run it by hand, flow by flow

Use a new address for every flow, every client and every run. Klaviyo says Smart Sending caps how many emails one person gets inside a window, 16 hours by default, that it is enabled for flow messages in many of its ready made flows, and that a message it skips isn’t rescheduled. One address that signs up at 09:00 can lose its basket reminder at 10:00 to a rule real shoppers meet too. List triggered flows add a second reason: Klaviyo’s default for new ones is that a profile enters only once, so an address that has been through the welcome series won’t go through it again. The rules quoted here are Klaviyo’s. The receipt works on any platform, because every row is something a customer does; look up your own platform’s equivalents.

That is a lot of addresses: 3 flows across 20 clients is 60 a week. Mail to a tagged address such as receipts+tarncheckout@yourdomain.example may reach one inbox, if your mail host supports it and the sign up form accepts the plus sign. Test that first. Use Gmail where you can, because the tab is part of the receipt.

1. Welcome: sign up through the pop up

Sign up on a phone in a private window and write down the minute you submit. A pass: the welcome email arrives inside its deadline with the code the pop up promised, and the code works at checkout. A code that arrives and fails is a break the customer finds before you do. If nothing arrives, check which list the form feeds, whether double opt in is waiting for a confirmation click, and whether the address already existed.

2. Basket: leave one product behind

Give the store your address the way a real shopper does, for example by signing up, then add 1 product and close the window. A pass: a reminder inside the deadline with the product’s name, photo and price filled in. If the sign up also sent a welcome email, say so in the row, because Smart Sending can explain a missing reminder and a real shopper meets it too. If nothing arrives, check the event that starts the flow is still being recorded, especially after a theme or app change, then the flow’s filters.

3. Checkout: start it and stop before paying

Enter the new address at the first step of checkout, tick the marketing box if the store shows one, and leave before payment. A pass: exactly 1 reminder inside the deadline. If two tools can send it, 2 emails is a fail too. A missing one reads like the row above: nothing at 48 hours. In the September store check, a £40 basket and a £21 checkout got no reminder in 48 hours.

4. Post purchase: start it with an order

This flow starts from an order, so it can’t run weekly for free. Run it monthly and after any change, with an order the client agrees to. Shopify lists a test payment gateway, Shopify Payments test mode, or a real order you cancel and refund, which may cost a processor fee. Its help page says test orders can confirm email notifications. It doesn’t say they start a flow in a separate email platform, so confirm once, in that platform, that the test order registers. A pass: the post purchase email arrives on its delay with the right order in it. Until then the row reads Not due.

5. Back in stock: wait for the restock

Ask to be told about a sold out product. Klaviyo says the flow starts at that request and sends once stock reaches the restock minimum set in the flow, so the row stays Not due until a restock lands. Ask the client to tell you when one does. A pass: the email arrives after the restock. A restock below the minimum sends nothing, so check the minimum before you call silence a break.

What it costs in hours across a client list

Time one client before you commit the team. A run has 3 parts: starting the flow, filing the email when it lands, and checking back at the deadline. Hours a week = clients × flows × minutes per flow ÷ 60.

Take placeholder timings of 6 minutes a flow, 3 flows that can run on demand (welcome, basket, checkout) and 20 clients. 20 × 3 × 6 ÷ 60 is 6 hours a week, or 312 hours across 52 weeks, before any fix. They are placeholders, not a measurement. Put your own minutes in, and time your second run of a client, because the first includes setup.

With 5 clients or fewer, do it by hand and buy nothing. At the same timings that is 1.5 hours a week, and a shared sheet with the five columns above is the whole tool.

How to show clients email marketing value without overclaiming

Send the receipt on the same day each week, verdict first, table under it.

  • Say what it proves, at the top of every receipt: these flows reached a new customer’s inbox, and this is not a revenue report.
  • Show breaks the way you show passes. A receipt that only ever passes stops being read.
  • Word the tab as one address’s view: Promotions in a new Gmail address, not “your emails go to Promotions”.
  • Ask before you test, and keep the tests out of their numbers. You are signing up and leaving baskets on their store. Tell whoever reports their numbers which addresses you used, and delete the test profiles afterwards.

Nothing here is a promise that a client stays. It isn’t measured against renewals. It shows the client one part of the work, dated, in their own inbox.

What a run by hand can’t tell you

Run by hand, the receipt has limits to know before you put a verdict in front of a client.

  • 1 inbox, 1 moment. A pass on Monday says nothing about Thursday’s theme update. Run it again after any launch, rebuild or flow edit.
  • Silence needs a control. If a welcome never came, check that a second new address got the client’s newsletter. If it did, sending works and the flow is the fault. If neither got anything, look at the form or the sending first.
  • A receipt shows silence, not its cause. Why it happened is your diagnosis, inside the platform.
  • 1 Gmail address shows 1 view. A new subscriber’s tab can differ from a loyal customer’s. Seed lists test where a campaign lands in a set of test mailboxes and are, in their own vendor’s words, a directional diagnostic. They answer a different question from a receipt.
  • History starts on your first run. A week you skipped has no receipt, and nobody can make one afterwards.

An assistant can read the receipts inbox for you. Claude’s Gmail connector searches the mail you connect and cites the messages it used, but it is read only: it can’t send, and it can’t see images embedded in emails, so a missing product photo is yours to catch. It reads email. It doesn’t do the signing up, so at 20 clients the hours are still in starting flows. For 5 clients, summarising the week’s receipts is a sound use.

Where the run outgrows a Monday, Obsession’s AI test customers do the signing up: a real inbox and mobile number for each store, a fresh sign up every week and after every launch you tell it about, and every email kept as it arrived. It does the outside half, and your audit still does the inside. It checks a client’s store with the client’s OK.

ExampleThe same job, run by Obsession’s customer agents.

Start with the clients whose renewal comes first

Pick the 3 clients whose retainer is reviewed next. Give each a fresh inbox, run welcome, basket and checkout on Monday, and send the first receipt on Wednesday, when the 48 hours are up. The first one you send is a receipt the client didn’t have to ask for.

Questions

Two documents kept apart. The revenue report from the email platform, with its attribution window printed on it, and a weekly flow receipt: for each flow, what you did as a new customer, the email that arrived with its time and tab, a status of fired, late, did not fire or not due, and the dates of any fix. The first says what the flows earned. The second shows they ran.

Show what the flows earned and show that they ran: the platform’s revenue report with its attribution window, beside a dated receipt that each flow reached a new customer.

No. It proves an email reached a new customer’s inbox, at a time you can read off it. Revenue stays in the platform’s report, under its attribution rules.

Weekly for the flows that can run on demand, and again the same day after any theme, app, discount or flow change. Post purchase fits a monthly run with an order the client agrees to, and back in stock closes when the client restocks.

Klaviyo documents two ways. List triggered flows default to letting a profile enter only once, and Smart Sending skips a message when the person got another inside its window, 16 hours by default for email, without rescheduling it. A receipt shows the silence, not which cause it was.

Nothing here is measured against renewals, so it makes no promise about them. A receipt removes one argument, whether the email went, and leaves the rest of the retainer to be judged as before.

Part of it. Claude’s Gmail connector can search and summarise the inbox you connect, with citations, but it is read only, can’t see images embedded in emails and doesn’t sign up to stores. Starting the flows is still yours.

ShareLinkedInX

Sources

  1. Understanding Klaviyo message attributionKlaviyo Help Center, Updated 10 Mar 2026; read 23 Oct 2026 · help.klaviyo.com
  2. Understanding flow analyticsKlaviyo Help Center, Updated 7 Oct 2026; read 23 Oct 2026 · help.klaviyo.com
  3. Email metrics referenceKlaviyo Help Center, Updated 3 Oct 2025; read 23 Oct 2026 · help.klaviyo.com
  4. Understanding Smart SendingKlaviyo Help Center, Read 23 Oct 2026 · help.klaviyo.com
  5. How to create a segment or list triggered flowKlaviyo Help Center, Updated 8 Oct 2026; read 23 Oct 2026 · help.klaviyo.com
  6. How to build a back in stock flowKlaviyo Help Center, Read 23 Oct 2026 · help.klaviyo.com
  7. 2026 email marketing benchmarks by industryKlaviyo, 2026 · klaviyo.com
  8. Why your welcome email isn’t working (I tested 362 brands)Joy Joya (Laryssa Wirstiuk), 27 Jul 2026 · joyjoya.com
  9. Placing test ordersShopify Help Center, Read 23 Oct 2026 · help.shopify.com
  10. How accurate are seed lists for email deliverability testing?Suped, Published 2025-06-08; updated 2026-10-16 · suped.com
  11. Gmail connectorClaude docs, Read 23 Oct 2026 · claude.com
  12. I kept losing clients who couldn’t see what they were paying forr/agency, 2026 · reddit.com
  13. Sample output: the September store checkObsession, Run 22 to 24 Sep 2026 · useobsession.com
  14. Leak checks for retention agenciesObsession, Read 23 Oct 2026 · useobsession.com

Send declared AI agents to every company on your list.

Join the waitlist and tell us the first job to set up. We confirm the plan with you before anything runs.

We keep your email to set up your first run and tell you about Obsession. Privacy notice