Work your Lemlist replies as people, not campaign rows

Open one queue every morning with every interested reply across all your campaigns, deduped to one row per human, with research and CRM handoff built in.

App
LemlistHubSpotSalesLead EnrichmentData Sync
PromptCreate

Build me an internal app my SDRs open every morning to work our Lemlist replies as people rather than as campaign rows. Lemlist reporting is sequence-centric, so the same human shows up separately in every campaign they are enrolled in. This app is the contact-centric surface that gap implies: one row per human, not per sequence enrollment.

The main view is a single queue of every lead currently in the interested or warmed state across all running campaigns. Build it from Lemlist List Campaigns to get the running campaigns, then List Campaign Leads on each one filtered by lead state to interested and warmed. Use Get Lead by Email to collapse someone who sits in three campaigns into one row, so the rep sees the full touch history in one place instead of three near-identical entries. Sort the queue by how long the reply has gone unworked, longest wait at the top.

Each row shows the person, their company, which campaigns they are enrolled in, their state in each one, and how long the reply has been sitting. Clicking a row opens a detail panel with the merged touch history across every campaign: which sequence steps ran, on which channel, and when they replied.

Put a "Prep this lead" button on the detail panel that kicks off a background agent. The agent gathers that person's records across campaigns with Get Lead by Email, checks whether they already exist in our CRM with HubSpot Search Contacts, researches the company on the web, then writes a call prep brief and a suggested reply. Both land back in the app on that lead's detail panel so the rep can read them there, and when a matching CRM contact exists the agent also files the brief on it with HubSpot Create Note. Show the run state on the panel so the rep can tell prep is in progress and come back to it.

Two more actions live on the panel. Pause Lead calls the Lemlist Pause Lead operation to stop the remaining sequence steps the moment a rep takes the conversation over, so nobody receives an automated follow up after a real conversation has started. Send to CRM creates the record with HubSpot Create Contact and opens a deal with Create Deal, into a pipeline stage the rep picks from a dropdown populated by HubSpot List Pipelines.

Each rep should see their own queue. Store worked state in the app: a lead is marked worked once it has been paused or pushed to the CRM, so nobody double taps the same reply. Worked leads drop out of the default queue view but stay reachable behind a filter so a rep can go back and see what was done.

One important constraint to bake in: Lemlist rate limits at 20 requests per 2 seconds per API key. The queue handler should page campaign leads deliberately, one campaign at a time with paced requests, rather than fanning out across every campaign at once. Cache the assembled queue so opening the app does not refetch everything, and give the view a manual refresh control.

What does this prompt do?

  • One queue of every lead who replied with interest or warmed up across all your running campaigns, with the longest unworked reply at the top.
  • Someone sitting in three campaigns shows up once, with their full touch history in one place instead of three near-identical rows.
  • A Prep this lead button hands the lead to a background assistant that researches the person and their company, checks whether they are already in your CRM, and writes back a call prep brief and a suggested reply.
  • Stop the rest of the sequence the moment a rep takes the conversation over, or push the lead into your CRM as a contact plus a new deal in the stage the rep picks.

What do I need to use this?

  • A Lemlist account with at least one running campaign
  • A HubSpot account where your team tracks contacts and deals
  • Reps who work replies as part of their morning routine, each with their own login

How can I customize it?

  • Choose which reply states land in the queue, interested only or interested plus warmed.
  • Change the sort so the queue leads with your highest value campaigns instead of the longest wait.
  • Pick which deal pipeline and stage new leads land in when a rep sends them to the CRM.
  • Adjust what the prep brief covers, for example adding recent funding news or headcount growth.

FAQs

Does this send emails or replies for me?
No. It drafts a suggested reply that the rep reads and sends from wherever they normally reply. The app never sends anything on your behalf.
What happens if the same person is in several campaigns?
They appear once. The app pulls every campaign record tied to their email address and merges them into a single row, so you can see every touch across every sequence before you reply.
Will two reps end up working the same reply?
No. Each rep sees their own queue, and a lead is marked worked as soon as it has been paused or pushed to the CRM, so it stops showing up as open work.
Does pausing a lead delete them from the campaign?
No. It stops the remaining steps in their sequence so nobody receives an automated follow up after a real conversation has already started.
Do I need a paid HubSpot plan?
It works with HubSpot's free CRM as long as you can create contacts, deals, and notes. Free accounts have a single deal pipeline, so the stage picker will simply show that one pipeline.

Related templates

Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
iMessage campaign console with pre-flight checks and delivery board

Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.

LoopMessage
Google Sheets
HubSpot
App
A searchable RFP answer library your bid team drafts from

Every proposal you have ever submitted in one searchable archive, with the closest past answers lined up against each question in a new RFP.

General Input Storage
General Input Database
Mistral AI
+2
App
See which target accounts just started advertising on LinkedIn

Open one board each Monday to see which of your target accounts are running LinkedIn ads right now, and which only switched them on this week.

LinkedIn Ad Library
HubSpot
General Input Database
App
Account health board that puts product usage next to your CRM

Your customer success team opens one board where every account's logins, seats and usage trend sit beside its owner, plan and renewal date.

Looker
HubSpot
Slack Bot
App
Look up a customer's full chat history mid conversation

Your agent types an email and sees every past conversation, rating and tag next to the CRM record, then files notes without ever leaving the chat.

LiveChat
HubSpot
App

Stop working replies as campaign rows.

Give your reps one queue where every interested reply is a person with full context, not a line item scattered across three separate sequences.