Client-by-client cold email pipeline review for agencies

Pick a client and a date range to see sent, replies, meetings booked and the real deal value your cold email produced, campaign by campaign.

App
InstantlyHubSpotSlack BotSalesMarketingAI ReportsContent Generation
PromptCreate

I run cold email for several clients out of a single Instantly workspace, and each week I open a review screen to answer one question per client: did cold email actually produce pipeline, not just opens. Build me an app for that review.

Start with a client roster that the app stores itself. Each client record holds the client name, the Instantly campaign IDs I run for them, an optional monthly retainer or spend figure, and the Slack channel where their review gets posted. When I add a campaign ID, resolve its real name with the Instantly Get Campaign operation and save that name, so every number on screen can be labeled with the campaign it came from. Instantly does not expose a campaign list or campaign tags through its API, so this roster is the client mapping: I attach campaign IDs once per client, and the picker uses them from then on.

The main screen has a client picker and a date range selector. When I choose a client, show a per-campaign performance table covering that client's campaigns over the selected range: emails sent, replies, and bounces, with bounce rate shown as a percentage of sent. Pull the per-campaign figures from Instantly Get Campaign Analytics with the date range applied, and use Get Campaign Analytics Overview for the client-level totals row. Every row is labeled with the campaign name so the client can see which sequence did the work.

Beside that, show the outcomes that actually matter. Use Instantly List Leads filtered to that client's campaigns and to interest status 1 Interested, 2 Meeting Booked, and 3 Meeting Completed. Show a count for each of those three statuses plus a combined meetings number. Never count leads marked -1 Not Interested or -2 Wrong Person toward meetings. Underneath the counts, list the individual leads with their name, their company, their interest status, and which campaign they came from.

A second panel matches those leads to real revenue. For each lead's company name, search the CRM with HubSpot Search Deals to find deals tied to that company, using HubSpot Search Companies first where it helps confirm the right company. Show each matched deal's name, stage, and amount next to the lead and the campaign that sourced it. Total up pipeline created across the client, and when the client has a retainer saved, divide it by the meeting count to show cost per meeting. Company name matching is approximate, so present suggested matches for the account manager to confirm or dismiss, keep leads with no company name or no match in a clearly marked unmatched group rather than dropping them, and remember confirmed and dismissed matches so next month's review does not ask about the same lead again.

Add a button labeled "Write this month's client review" that starts a background agent for the currently selected client and date range. The agent reads the campaign analytics, the interested and booked leads, and the matched deals, then writes a narrative review covering what worked, which sequence earned the meetings, what pipeline resulted, and what to change next month. It saves that review back into the app as a draft attached to that client and period, and the screen shows the draft as soon as it finishes.

The account manager edits the draft inside the app before anything leaves. Once it is approved, a "Post to client channel" button sends it to that client's configured Slack channel using the Slack Bot Send a Message operation, formatted for Slack rather than as raw markdown. Keep every past review on the client's record so I can see the history and check what we committed to last month.

Account managers use this weekly and again at month end, so it needs to load fast and stay readable when a client has several campaigns running. The guiding rule throughout: every number is attributable to a named campaign, never presented as a workspace-wide total, because the whole point is showing the client which sequence earned the meetings.

What does this prompt do?

  • Pick a client and a date range to see every campaign's send, reply and bounce numbers side by side, each one labeled with the campaign that earned it.
  • Counts only real outcomes: interested, meeting booked and meeting completed, leaving out anyone marked not interested or wrong person.
  • Matches those booked leads to deals in your CRM so you can show deal stage, amount, pipeline created and cost per meeting instead of open rates.
  • One button asks an assistant to write the month's client review in the background, then saves the draft in the app for your account manager to edit and post to the client's channel.

What do I need to use this?

  • An Instantly account on a plan that includes API access, running the campaigns for each of your clients
  • A HubSpot login where your clients' deals are tracked
  • A Slack workspace, if you want to post finished reviews straight to client channels
  • The campaign IDs you run for each client, plus their monthly retainer if you want cost per meeting calculated

How can I customize it?

  • Save each client's campaigns once in the client roster, then switch between clients and date ranges (last month, last quarter, or a custom window) from the top of the screen.
  • Add a monthly retainer per client to turn meeting counts into a cost per meeting figure, or leave it blank to hide that number.
  • Change which interest levels count as a meeting, and edit the tone and length of the written review before it reaches the client.

FAQs

Does this work if I run all my clients from one Instantly workspace?
Yes, that is exactly the case it is built for. You set up a client roster inside the app and attach the campaigns you run for each client. After that, the client picker keeps every number separated by client, and each figure stays labeled with the campaign it came from.
Why are the meeting numbers lower than the ones I see in Instantly?
Because leads marked not interested or wrong person are deliberately left out of the meeting count. Only interested, meeting booked and meeting completed leads are counted, so the number you show the client reflects genuine outcomes rather than every reply.
What happens if a lead's company is not in my CRM?
It appears in a clearly marked unmatched group rather than being silently dropped. Company name matching is approximate, so the app suggests likely matches for your account manager to confirm or dismiss, and it remembers those decisions so next month's review does not ask again.
Do I need a paid Instantly plan for this?
Yes. Pulling campaign and lead data requires API access, which Instantly includes on its Growth plan and above. A HubSpot account is needed for the deal matching panel, and Slack is only required if you want to post reviews to client channels.
Can the account manager change the written review before the client sees it?
Always. The assistant saves its review into the app as a draft attached to that client and period. Nothing is sent anywhere until someone edits it, approves it and presses the button to post it to the client's channel.

Related templates

Review desk for portal forms your team still fills in by hand

Stage a batch of filings overnight, then approve each completed form from a screenshot before anything is ever submitted.

Kernel
Google Sheets
Slack Bot
App
Partner tier review board for quarterly promotion calls

Work every partner tier decision from one board, with the revenue and commission numbers, clear promotion thresholds, and AI review briefs.

Introw
HubSpot
Slack
App
Reconcile partner commissions between HubSpot and Introw

Open one board at month end to find every closed deal missing a commission, every commission with no deal behind it, and every amount that does not add up.

Introw
HubSpot
Slack
App
Audit what Intercom's Fin AI actually resolved before you pay

Review every conversation Fin closed as resolved, judge which ones actually stuck, and see what the gap is worth against your bill.

Intercom
Google Sheets
Slack Bot
App
One triage console for every Jira service desk queue

Merge your IT, HR and Facilities queues into one list ranked by SLA time left, then reply, change status and escalate without ever opening Jira.

Jira Service Management
Jira
Slack Bot
App
Run your Webflow site translations from one review desk

See every page's translation status at a glance, edit translations side by side with the English, and publish only what your team has actually approved.

Webflow
JigsawStack
Slack Bot
+1
App

Stop sending clients open rates.

Show them the meetings and the pipeline your cold email actually produced, in one screen per client.