Client-by-client cold email pipeline review for agencies

By General Input

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.

Integrations

  • Instantly
  • HubSpot
  • Slack Bot

Type

App

Categories

  • Sales
  • Marketing

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.

Related prompts

Explore more prompts
A brand asset library your marketing team actually searchesTurn Mailjet email clicks into ranked HubSpot follow-upsClean out the Looker dashboards and Looks nobody opensLiveKit live operations console for room moderationWake up dormant Keap leads with a researched reasoniMessage campaign console with pre-flight checks and delivery boardLiveChat coverage board for planning next week's shiftsPhone routing control panel for LiveKit voice agentsA searchable RFP answer library your bid team drafts fromLinkedIn Ads budget pacing dashboard for every client account