Daily ZoomInfo intent spikes to Slack with HubSpot tasks
Every weekday at 9am ET, post a Slack digest of accounts spiking on your buyer intent topics, with named decision-makers and a HubSpot task ready for the rep.
Integrations
ZoomInfo
Slack
HubSpot
Type
Categories
- Sales
Build me an agent workflow that runs on a cron trigger every weekday (Monday through Friday) at 9:00am America/New_York. The goal is a daily sales digest of accounts that are spiking on buyer intent, with named decision-makers and a HubSpot task waiting for the rep.
Configurable inputs the user should be able to edit on the workflow page:
1) intent_topics: a list of ZoomInfo intent topic names that matter for our product. Default this to a placeholder list like ["Data Integration", "Workflow Automation", "Marketing Automation"] and tell the user to replace it with topics that match their ICP. 2) score_threshold: the minimum intent score that counts as a spike. Default 75. 3) slack_channel: the Slack channel (or channel ID) to post the digest in. Default "#sales-signals". 4) lookback_hours: how far back to look for new intent activity. Default 24. 5) max_accounts: cap on how many accounts to include in the digest. Default 15.
Each morning when the workflow fires, do the following:
Step 1: Use ZoomInfo's Search Intent operation to find buyer intent signals from the last lookback_hours across the configured intent_topics. Filter to companies whose intent score is at or above score_threshold. Sort by score descending and cap the results at max_accounts. Capture the company id, company name, primary domain, the topic(s) they are spiking on, and the score for each.
Step 2: For each spiking account, call ZoomInfo's Get Contact Recommendations to pull the top 2 to 3 recommended decision-makers. Then call ZoomInfo's Enrich Contacts in a single batch (it accepts up to 25 contacts per request) to get full names, titles, verified work emails, and LinkedIn URLs.
Step 3: For each spiking account, use HubSpot's Search Companies to find the matching company record by domain. If there is no match, mark the account as "net-new" and skip task creation for it; still include it in the Slack digest so the team knows about it.
Step 4: Compose a Slack digest and post it via Slack's Send a Message to slack_channel. Use Slack Block Kit. Start with a header block like ":zap: Intent spikes for {today's date} — {N} accounts above score {score_threshold}". Then one section block per account with: the company name (linked to its HubSpot record if matched, otherwise to its ZoomInfo URL), the intent topic(s) and score, the 2 to 3 named decision-makers with title and email, and a one-sentence "Why now" reason written from the topic + score (e.g. "Score 82 on Workflow Automation, up from baseline last week"). Use a divider between accounts. If an account is net-new to HubSpot, prefix it with a "NEW" badge so it stands out.
Step 5: For every account that did match a HubSpot company, use HubSpot's Create Task to create a follow-up task on that company record. Subject: "Intent spike: {topic} — score {score}". Body: include the named decision-makers (name, title, email) and the same "Why now" sentence used in Slack. Set the task due date to today, priority HIGH, status NOT_STARTED. Associate the task with the company record. If the HubSpot company has an owner, assign the task to that owner; if not, leave it unassigned and append "(unassigned — needs routing)" to the Slack line for that account.
If Search Intent returns zero qualifying accounts, post a single short Slack message in slack_channel that says "No accounts crossed the intent threshold today." rather than an empty digest. Do not create any HubSpot tasks in that case.
Be defensive: dedupe accounts if the same company spikes on multiple topics (group all topics under one block in Slack and one task in HubSpot). Cap decision-makers to 3 per account in the Slack message even if Get Contact Recommendations returns more. Handle ZoomInfo rate limits with retry/backoff.
What it does
- Watches ZoomInfo each morning for companies showing a fresh surge of interest in the topics that matter to your product.
- Pulls the most relevant decision-makers at each spiking account and looks up their names, titles, and verified work emails.
- Posts a tidy Slack digest in your sales channel with one block per account, including the topic, the score, the people to reach, and a short reason to follow up.
- Creates a HubSpot task on each matching company record so the assigned rep has the work waiting in their queue, not buried in a thread.
What you’ll need
- A ZoomInfo seat with API access and the intent, contact, and recommendations data enabled.
- A Slack workspace and the channel where your sales team wants the digest posted.
- A HubSpot login that can create tasks and read company records.
How to customize it
- Change the list of buyer intent topics so the digest tracks what your product actually sells against.
- Raise or lower the score threshold to control how many accounts make the cut each morning.
- Swap the Slack channel, change the post time, or route different topic clusters to different channels and reps.
Use cases
- Notifications & Alerts
- Daily Digests
- Lead Enrichment