Triage Mailshake replies into HubSpot and Slack every 15 minutes
Every 15 minutes, sort fresh Mailshake replies by intent, push hot ones into HubSpot with a suggested next step, and alert your sales channel in Slack.
Build me an agent workflow that triages new replies to my Mailshake campaigns every 15 minutes and routes them into HubSpot and Slack. Trigger: cron, every 15 minutes.
On each run, call Mailshake's List Replies Activity filtered to the last 15 minutes across all my campaigns. For each reply, read the body and classify the intent into exactly one of: interested, question, objection, not-now, out-of-office, unsubscribe. Be conservative. If the reply is ambiguous, prefer question over unsubscribe, and never pause a recipient unless the opt out is unambiguous.
For interested and question replies, do all of the following. First, use HubSpot Search Contacts to look up the sender by email. If a contact exists, use HubSpot Update Contact to move the lifecycle stage forward (for example, subscriber or lead becomes marketingqualifiedlead, and marketingqualifiedlead becomes salesqualifiedlead). If no contact exists, use HubSpot Create Contact with the sender's email and any name available from the reply, and set lifecycle stage to marketingqualifiedlead. Then use HubSpot Create Note associated with that contact, containing the full reply body and a short AI drafted follow-up the rep can send. Finally, post a Slack message via Slack Bot Send a Message to my sales channel that includes the prospect's email, a one line summary of the reply, the suggested follow-up, and a link to the HubSpot contact record.
For unsubscribe replies and clearly negative replies (hard objections such as "stop emailing me", "remove me", "take me off your list"), call Mailshake Pause Recipient on the campaign the reply came from so no further messages are sent, and then use HubSpot Create Note on the contact (creating the contact first via Create Contact if they do not exist) recording the outcome and the reply text. Do not post anything to Slack for these.
For out-of-office replies, extract the return date if present and use HubSpot Update Contact to record it on the contact (create the contact via Create Contact if they do not exist). Skip Mailshake pausing and skip the Slack alert. For not-now replies, treat similarly to out-of-office: log a HubSpot note capturing the requested timing but do not pause and do not alert Slack.
Inputs I should be able to configure: the Slack channel to alert, the HubSpot lifecycle stage transitions, and whether to auto pause on hard objections in addition to explicit unsubscribes (default off). The sales channel is the only Slack destination. Only ever pause a recipient once per reply. The judgement should always err on the side of keeping the recipient in the campaign so we never silently drop a real opportunity.
Additional information
What does this prompt do?
- Reads the last 15 minutes of Mailshake replies across your campaigns and classifies each one as interested, question, not now, out of office, or unsubscribe.
- For interested and question replies, updates the matching HubSpot contact or creates a new one, attaches a note with the reply and a drafted follow-up, and posts a heads up to your sales Slack channel with a link to the record.
- For unsubscribes and clearly negative replies, pauses the recipient in Mailshake so no more emails go out, and logs the outcome as a note in HubSpot.
- Leans conservative on the read, so a genuine interested reply is never treated as an opt out.
What do I need to use this?
- A Mailshake account with access to your reply activity and permission to pause recipients on a campaign.
- A HubSpot login with rights to read, create, and update contacts and to attach notes.
- A Slack workspace and a channel your sales team watches for hot replies.
How can I customize it?
- Change how often it runs. Every 15 minutes is a good default for daytime hours, but you can slow it down for nights and weekends.
- Point the alert at a different Slack channel or route by campaign, region, or rep.
- Tune the intent labels or which ones trigger a pause. For example, you can stop auto pausing on soft objections and route those to a rep instead.
Frequently asked questions
Will this pause someone who just asked a normal question?
What happens if the person who replied is not already in HubSpot?
Does the Slack message include a suggested reply?
Can I run this less often than every 15 minutes?
What if the reply is an out of office?
Related templates
Stop losing hot Mailshake replies in the shared inbox.
Connect Mailshake, HubSpot, and Slack once, and Geni triages every reply every 15 minutes so your reps only see the ones worth acting on.