Route hot Smartlead replies to HubSpot and Slack

By General Input

The moment a prospect replies to a Smartlead campaign, classify the reply, log a HubSpot deal, and ping your rep in Slack so nothing hot goes cold.

Integrations

  • Smartlead
  • HubSpot
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Operations

Build me an agent workflow that routes Smartlead campaign replies to HubSpot and Slack based on how the prospect responded. The goal is: the sales team only sees the hot ones, and every reply still leaves a clean trail in HubSpot.

Trigger: a Smartlead outbound webhook on the reply received event. When the workflow is first set up, register the webhook on the target campaign using Smartlead's Create or Update Webhook operation, subscribed to the reply received event. Let me pick which campaign (or all campaigns) at setup time.

When the webhook fires, use Smartlead's Get Lead Message History operation to pull the full email thread for that lead in that campaign. That gives us the sequence context plus the actual reply text.

Then classify the latest reply into one of four buckets using an AI step: interested (positive), not interested (negative), out of office, or unsubscribe. Also produce a two sentence summary of what the prospect actually said in plain English.

If the reply is interested: upsert the prospect into HubSpot using Batch Upsert Contacts matched by email (name, company, job title if we have them, plus a lifecycle stage of salesqualifiedlead). Then create a new HubSpot deal using Create Deal with a name like "[Campaign name] — [Prospect name]", associate it to the contact, and if we have a company set the company association too. Then post a Slack message using Slack Bot's Send a Message to the sales channel. The message should include the prospect's name and company, the two sentence summary, the campaign name, and a link back to the Smartlead thread. Format it nicely with Slack mrkdwn (bold prospect name, a short blockquote for the summary).

If the reply is not interested: upsert the contact in HubSpot and set the lifecycle stage to something appropriate (e.g. "other" or leave the stage but stamp a custom property). Do post a Slack alert but keep it low key, no @channel, no urgent styling, so the rep can still learn from the loss.

If the reply is out of office: upsert the contact in HubSpot so we keep the record fresh, do not create a deal, and do not post to Slack. The workflow should just log that it saw an OOO.

If the reply is unsubscribe: update the HubSpot contact to mark them as unsubscribed / do not contact (use the appropriate HubSpot lifecycle or opt out property), skip the deal, and skip the Slack alert.

Make the Slack channel, the deal pipeline/stage for new deals, and the campaign filter (all campaigns vs a specific one) configurable at setup. Default the Slack channel to #sales-replies if I do not specify.

Use Slack Bot (not the user OAuth Slack integration) so the message is authored by the bot. Match HubSpot contacts by email to avoid duplicates.

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