Triage Lemlist replies and hand them off to HubSpot and Slack
The moment a Lemlist reply lands, sort it into interested, not interested, out of office, or unclear, then push a clean handoff into HubSpot and Slack.
Build an agent workflow that triages Lemlist replies and hands them off cleanly to HubSpot and my sales team.
Trigger: a webhook from Lemlist on the emailsReplied event. Lemlist supports outgoing hooks at /hooks. The payload includes the lead's email, the campaign id, the reply body, and the timestamp.
When the webhook fires, the agent should:
1. Pull the lead's campaign context with the Lemlist Get Lead by Email operation so the agent knows which campaign the reply came from and who the campaign owner is.
2. Classify the reply body into exactly one of four buckets: interested, not interested or unsubscribe, out of office or later, or unclear. Keep the classifier tight. Do not rewrite or summarize the reply text beyond the short Slack summary described below.
3. Take the action for the matching bucket.
Interested: Find the contact in HubSpot by email using Search Contacts. If they do not exist, call HubSpot Create Contact with the lead's email, first name, last name, and company. Then call HubSpot Create Deal in a configured pipeline and stage with the reply pasted into the description and associate it to the contact. Then call HubSpot Create Task with a 24-hour due date, assigned to the campaign owner, associated to the contact and deal. Then call Slackbot Send a Message to a #sales-replies channel with a short summary (max three lines) that includes the lead name, company, the classification, and a link to the HubSpot deal. Finally call Lemlist Pause Lead across all campaigns so no other running sequence double-messages the same person.
Not interested or unsubscribe: Call Lemlist Delete or Unsubscribe Lead. Then call HubSpot Create Note on the contact recording the reason the lead gave (e.g. 'not a fit right now', 'wrong person', 'already using a competitor').
Out of office or later: Call Lemlist Pause Lead for the lead. Create a HubSpot Task dated to the return date the reply mentions. If no return date is present, default to seven days out. Associate the task to the contact.
Unclear: Do not touch Lemlist. Call Slackbot Send a Message to the #sales-replies channel with the raw reply body and a note asking a human to triage.
Inputs to expose in the workflow settings: the Slack channel name (default #sales-replies), the HubSpot pipeline id and stage id that new interested deals should land in, and an optional default owner if the campaign owner cannot be mapped to a HubSpot user.
Keep the Slack summary to at most three lines. Never rewrite the customer's own words when quoting them. Only take one action per bucket per webhook so a duplicate delivery does not create duplicate deals.
What does this prompt do?
- Reads every incoming Lemlist reply the moment it arrives and sorts it into one of four buckets: interested, not interested or unsubscribe, out of office or later, or unclear.
- For interested replies, creates or updates the HubSpot contact, opens a deal in your chosen pipeline, assigns a 24-hour follow-up task to the campaign owner, and pings your sales channel in Slack with a short summary and a link to the deal.
- For not interested or unsubscribe replies, quietly removes the lead from Lemlist and drops a note on the HubSpot contact recording the reason.
- For out of office replies, pauses the lead in Lemlist and creates a HubSpot task dated to the return date the reply mentions, defaulting to seven days out.
- For unclear replies, leaves Lemlist alone and posts the reply into Slack so a human can triage it in one click.
What do I need to use this?
- A Lemlist account with an outgoing webhook you can point at this workflow
- A HubSpot login with permission to create contacts, deals, tasks, and notes, plus the pipeline and stage you want new replies to land in
- A Slack workspace and the channel name you want reply alerts to post into
How can I customize it?
- Change the Slack channel, or split alerts by campaign so different reps see different threads.
- Swap the HubSpot pipeline, stage, and deal name template to match how your team tracks new opportunities.
- Tune the classifier language so replies specific to your industry (pricing questions, referrals, competitor mentions) route the way you want.
FAQs
Does this work if my team uses HubSpot Free?
What happens if the same person replies twice?
Can I keep Lemlist untouched and only route replies to HubSpot and Slack?
How does it decide between interested and unclear?
Will it stop other Lemlist sequences from double-messaging someone who replied?
Related templates
When someone leaves, we check which shared passwords they used in their final months and post a ranked rotation list to your security channel.
Every Monday, check every S3 bucket for public exposure, missing encryption and weak backup settings, then get the risks ranked in Slack.
Twice every weekday, the conversations from your social inbox land on the right HubSpot contact timelines, with a Slack recap for sales.
Every weekday at 7am, sign in to the tender portals you track, filter new notices against your bid criteria, and open a deal for the ones worth chasing.
Every morning, find the addresses that hard bounced or filed a spam complaint, update the matching HubSpot contacts, and post a short Slack recap.
Every weekday at 4pm, spot the threads that went quiet, stage a ready-to-send nudge in your mailbox, and get a ranked Slack recap.
Stop losing hot Lemlist replies to a messy inbox.
Connect Lemlist, HubSpot, and Slack once, and every reply lands in the right place with a clean handoff to your rep.