Triage Mailshake replies into HubSpot and Slack every 15 minutes

By General Input

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.

Integrations

  • Mailshake
  • HubSpot
  • Slack Bot

Type

Agentic Task

Categories

  • Sales
  • Marketing

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.

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 opensStop cold emails to anyone with a live deal in PipedriveLiveKit 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 from