Triage LinkedIn and WhatsApp DMs into HubSpot and Slack

Every 15 minutes, sort your unread LinkedIn and WhatsApp DMs, log the real ones to HubSpot, and post a Slack briefing with suggested replies.

Agentic Task
UnipileHubSpotSlack BotSalesPersonal ProductivityNotifications & AlertsLead EnrichmentFeedback Triage
PromptCreate

Every 15 minutes during business hours, triage my unread LinkedIn and WhatsApp direct messages, log the ones that matter into HubSpot, and post a single Slack briefing summarizing what happened. This is an agent workflow, not a hard-coded pipeline.

Trigger: cron, every 15 minutes, restricted to weekdays 8am to 6pm in my local timezone. Make the schedule and timezone easy to change.

Step 1. Use Unipile's List Chats operation to fetch unread chats from my connected LinkedIn and WhatsApp accounts in one call. Filter by unread state and by provider set to LinkedIn and WhatsApp, so a single run covers both inboxes.

Step 2. For each unread chat, call Unipile's List Chat Messages to read the recent conversation (last 10 messages is plenty). If the most recent message in the thread was sent by me, treat the thread as already handled and skip it. Do not process it further and do not include it in the briefing.

Step 3. Classify the sender's intent into one of these buckets: real sales prospect, existing customer, recruiter spam, community or social chatter, other. Drop anything classified as recruiter spam, community/social chatter, or clearly unrelated noise. Do NOT log those to HubSpot and do NOT include them in the Slack briefing.

Step 4. For every remaining thread (real prospects and existing customers), call Unipile's Retrieve User Profile on the sender to pull their LinkedIn title, company, and email when available.

Step 5. Upsert those senders into HubSpot using the Batch Upsert Contacts operation. Match by email when Unipile returned one, otherwise fall back to matching by LinkedIn profile URL. Populate first name, last name, job title, and company from the Unipile profile.

Step 6. For each of those threads, use HubSpot's Create Note operation to attach a short excerpt of the latest incoming message to the contact record, so the conversation is traceable on the CRM timeline. Include which inbox it came from (LinkedIn or WhatsApp) and the time it was received.

Step 7. After processing every thread, post exactly one Slack message using the Slack Bot Send a Message operation to a chosen channel (make the channel configurable). Group the digest by intent bucket, with real sales prospects first and existing customers second. For each thread include: sender name and company, the source inbox (LinkedIn or WhatsApp), a one-line summary of what they said, a link to the HubSpot contact, and a drafted suggested reply I can copy and paste back into LinkedIn or WhatsApp. If there are no real threads this cycle, post a short one-line "nothing new" note instead of skipping, so I know the workflow ran.

Rules and constraints:

Post one Slack message per run, not one per thread.

Never send anything from my LinkedIn or WhatsApp accounts. Reply text is drafted for me to review, not sent automatically.

If the same sender shows up on both LinkedIn and WhatsApp in the same run, dedupe them in HubSpot by email or LinkedIn URL, but still show both threads separately in the Slack digest so I see the full context.

Use the Slack Bot integration (bot user) for posting the briefing, since this is an automated channel message and not something I need attributed to my personal Slack user.

Additional information

What does this prompt do?
  • Sweeps your unread LinkedIn and WhatsApp DMs every 15 minutes and drops recruiter spam and community chatter.
  • Sorts what's left into real sales prospects, existing customers, and other buckets you can review at a glance.
  • Enriches each sender with their LinkedIn title and company, then logs the conversation to the matching HubSpot contact.
  • Posts one Slack briefing with a drafted reply for every thread that matters, so you can copy, paste, and send.
What do I need to use this?
  • A Unipile account with your LinkedIn and WhatsApp inboxes connected.
  • A HubSpot login with permission to create contacts and notes.
  • A Slack workspace and the channel or DM where the briefing should land.
How can I customize it?
  • Change how often it runs, or narrow it to business hours in your local timezone.
  • Add or remove intent buckets (for example, split existing customers into renewal and support).
  • Point the briefing at a different Slack channel, or send it as a DM to yourself instead.

Frequently asked questions

Does this reply to people for me?
No. The workflow only drafts a suggested reply for each real thread and posts it in the Slack briefing. You review the drafts, then copy the ones you like and send them from LinkedIn or WhatsApp yourself, so nothing goes out without your approval.
What about conversations I already replied to?
Threads where you were the last person to send a message are treated as handled and skipped. The briefing only contains conversations that are still waiting on you.
Will it flood my CRM with junk contacts?
No. Anything the workflow classifies as recruiter spam, community chatter, or clearly unrelated noise is dropped before it ever touches HubSpot.
Which inboxes does this cover?
LinkedIn and WhatsApp in one pass, because Unipile unifies both under a single connection. If you connect other messaging accounts to Unipile later, you can extend the workflow to cover them too.
Do I need a paid HubSpot plan?
No. Creating contacts and notes is available on every HubSpot tier, including the free CRM.

Stop losing warm prospects in your LinkedIn and WhatsApp inbox.

Connect Unipile, HubSpot, and Slack once, and Geni triages every unread DM every 15 minutes.