Route hot Smartlead replies to HubSpot and Slack

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.

Agentic Task
SmartleadHubSpotSlack BotSalesOperationsNotifications & AlertsLead EnrichmentData Sync
PromptCreate

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.

Additional information

What does this prompt do?
  • Listens for replies on your Smartlead campaigns and pulls the full email thread for context.
  • Reads the reply and tags it as interested, not interested, out of office, or unsubscribe.
  • For interested replies, creates a new HubSpot deal named after the campaign and syncs the contact.
  • Posts a formatted Slack alert with the prospect's name, a two sentence summary of what they said, and a link back to the thread.
What do I need to use this?
  • A Smartlead account with at least one active campaign you want to monitor.
  • A HubSpot login with permission to create contacts and deals.
  • A Slack workspace where the bot can be added to your sales channel.
How can I customize it?
  • Pick which Slack channel gets the alerts, or split routing by campaign or rep.
  • Adjust the reply categories, or add your own like pricing question, referral, or wrong contact.
  • Change how the Slack alert is formatted, add a suggested next step, or include the deal owner.

Frequently asked questions

Will this alert my team on every single reply?
No. Out of office and unsubscribe replies quietly update HubSpot but do not ping Slack, so your team only sees the ones worth acting on. You can change that behavior any time.
What happens when someone unsubscribes?
The workflow still updates the contact in HubSpot so their lifecycle stage reflects the outcome, but it skips the Slack alert to keep noise out of your sales channel.
Do I need a specific Smartlead plan for this?
You need any Smartlead plan that includes API access and outbound webhooks on campaigns. Most paid plans qualify. If you can already generate an API key in Smartlead settings, you are good to go.
Will it create a duplicate contact if the prospect is already in HubSpot?
No. Contacts are matched by email address, so an existing HubSpot contact is updated in place. Only brand new prospects are created.
Can I use a different classification, like splitting interested into hot and lukewarm?
Yes. The workflow is agent based, so you can add or rename categories in plain English and decide what happens for each one.

Never let a hot Smartlead reply go cold.

Connect Smartlead, HubSpot, and Slack once, and Geni triages every reply for you the moment it lands.