Triage Lemlist replies and hand them off to HubSpot and Slack

By General Input

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.

Integrations

  • Lemlist
  • HubSpot
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Operations

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.

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