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.

Agentic Task
MailshakeHubSpotSlack BotSalesMarketingNotifications & AlertsFeedback TriageData Sync
PromptCreate

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.

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.

FAQs

Will this pause someone who just asked a normal question?
No. The agent leans conservative and only pauses on clear unsubscribes or hard opt outs. Questions and objections stay active in the campaign and get surfaced to your sales channel instead.
What happens if the person who replied is not already in HubSpot?
The agent creates a new HubSpot contact from their reply email and name, then attaches the reply and a drafted follow-up as a note on that new record.
Does the Slack message include a suggested reply?
Yes. Each alert for an interested or question reply includes the prospect's email, a one line summary of what they said, a short follow-up your rep can copy and send, and a link straight to the HubSpot record.
Can I run this less often than every 15 minutes?
Yes. You can change the schedule to every 30 minutes, hourly, or business hours only. The agent always looks back over the same window it just waited, so nothing is missed.
What if the reply is an out of office?
The agent notes the return date on the HubSpot contact so your rep knows when to try again, and skips the Slack alert so the channel stays focused on live opportunities.

Related templates

A brand asset library your marketing team actually searches

Every logo, photo, video cut and ad export in one searchable grid, with previews, campaign tags and rights expiry dates at a glance.

General Input Storage
General Input Database
JigsawStack
+1
App
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
Clean out the Looker dashboards and Looks nobody opens

One board showing every dashboard and Look with its folder, owner and favorite count, so you can find dead content and retire it safely.

Looker
Slack Bot
App
Stop cold emails to anyone with a live deal in Pipedrive

Every night at 2am, pull the contacts on your open and won deals and block them from your cold outreach before the next send goes out.

Mailshake
Pipedrive
Google Sheets
Deterministic Code
LiveKit live operations console for room moderation

Watch every live room on one screen, remove disruptive guests, start recordings and end stuck sessions without anyone opening a terminal.

LiveKit
Slack Bot
General Input Database
App
Wake up dormant Keap leads with a researched reason

Every Monday we find leads who never bought, research a real reason to reach out, and send a short personal email instead of another check in.

Keap
Slack Bot
Agentic Task

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.