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.

Agentic Task
ZoomInfoSlackHubSpotSalesNotifications & AlertsDaily DigestsLead Enrichment

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.

Additional information

What does this prompt do?
  • 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 do I need to use this?
  • 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 can I 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.

Frequently asked questions

What counts as an intent spike?
ZoomInfo gives every company a daily score on each topic you track. This workflow only surfaces companies whose score crossed a threshold you set, so you only hear about the ones worth a real outreach.
Can I track more than one topic?
Yes. You can list as many topics as your ZoomInfo plan allows. The digest groups results by account, so a single company spiking on three topics shows up as one entry with all three called out.
What if a spiking company is not in our HubSpot yet?
You can choose what happens. The default is to skip the task and just call it out in Slack as a net-new account. If you prefer, you can have the workflow create the company in HubSpot first and then attach the task.
Who gets assigned the HubSpot task?
By default it goes to the company owner already set on the HubSpot record. If there is no owner, the task is left unassigned and flagged in the Slack message so a manager can route it.
Will this work on weekends or holidays?
The schedule runs Monday through Friday at 9am ET out of the box. You can extend it to weekends or pause it for holidays by adjusting the schedule when you set the workflow up.

Stop letting buying signals go cold overnight.

Connect ZoomInfo, Slack, and HubSpot once, and every weekday at 9am your reps get a ranked list of accounts to call with the work already in their queue.