Warm-visitor alert: tell the owning rep in Slack who was on the site
Warmly + HubSpot + Slack
Who it's for
SDRs and their managers who want the rep who owns an account to hear about a high-intent visit the same day, with the pages viewed and a suggested next step. Warmly can be swapped for 6sense, HubSpot for Salesforce, Attio or Pipedrive.
What you get
One owner's Slack DM, drafted for your approval. Sample output: every company and person in it is fictional.
To: @priya (Priya Raman, fictional) Hi Priya, two of your accounts were on our site in the last 24 hours: - Quarry Lane Analytics (fictional): 3 visitors, including Sam Whitlock (VP Operations). Pages: /pricing, /integrations/hubspot, /case-studies/logistics. Came from a paid search ad. Suggested next step: Sam has no open deal with us. A short note on the HubSpot integration, since that's the page he spent time on. - Mossgate Labs (fictional): 1 visitor, contact not identified. Pages: /pricing (twice), /security. Suggested next step: ask your champion there whether security review has started. Nothing has been changed in HubSpot or Warmly. --- Run summary: 9 warm accounts in Warmly, 6 matched to a HubSpot company, 4 owners. 3 drafts ready. Larkspur Freightworks (fictional) has no HubSpot owner, so it's listed for you instead of sent. No third-party signals were pulled, so no Warmly credits were used. Reply 'send all' or 'send 1, 3' to approve.
Time and cost
Estimate About 10 minutes, most of it checking owner matches and reading the drafts.
Assumptions: One daily run over about 10 warm accounts and 4 account owners, using only the free Warmly visitor and account tools.
- Warmly: Two reads: warm visitors and warm accounts for the last day. No third-party signal calls, so no credits. Some tools use credits. Only list_third_party_signals uses credits: 1 per new company plus 1 per new contact per row (max 2), deduped per calendar month. preview: true calls are free. list_warm_visitors, list_warm_accounts and get_credits_remaining are free. The credit pool is shared with the rest of the Warmly product. Rate limits are 60 requests/min on free and 120 on paid. Source: help.warmly.ai, checked 2026-10-16
- HubSpot: Reads only: one company search per warm account to find the owner. Credit use not confirmed by HubSpot.
- Slack: A user lookup per owner, plus one direct message per owner after you approve it. Credit use not confirmed by Slack.
Exact credit costs depend on your plan with each vendor. Check the tool pages before a large run.
MCP servers
Every server is confirmed in: Claude
-
ClaudeClaude CodeCursorRead onlySome tools use credits
https://opps-api.getwarmly.com/api/mcp -
ClaudeChatGPTRead + writeCredits not confirmedNeeds admin or IT
https://mcp.hubspot.com -
ClaudeClaude CodeCursorRead + writeCredits not confirmedNeeds admin or IT
https://mcp.slack.com/mcp
Set up in a chat app
Every server in this recipe is confirmed for Claude. Connect each one, then paste the prompts below into one conversation.
- Connect Warmly without code (Claude)
- Connect HubSpot without code (Claude, ChatGPT)
- Connect Slack without code (Claude)
Developer setup
Auth setup and mcp.json for Claude Code and Cursor
- Warmly: Sign in with OAuth in your client (run
/mcpin Claude Code). Do it once interactively, and the client stores and refreshes the token. - HubSpot: Sign in with OAuth in your client (run
/mcpin Claude Code). Do it once interactively, and the client stores and refreshes the token. - Slack: Sign in with OAuth in your client (run
/mcpin Claude Code). Do it once interactively, and the client stores and refreshes the token.
Put this in .mcp.json (Claude Code, project root) or ~/.cursor/mcp.json (Cursor). Swap the example keys for your own, and don't commit real ones. Remove the // comment lines if your client requires strict JSON.
{
"mcpServers": {
"warmly": {
"url": "https://opps-api.getwarmly.com/api/mcp"
},
"hubspot": {
"url": "https://mcp.hubspot.com"
},
"slack": {
"url": "https://mcp.slack.com/mcp"
}
}
}
Step-by-step prompts
- Using Warmly's list_warm_accounts and list_warm_visitors, show me the companies that visited our site in the last {time window}, with identified visitors, pages viewed and UTM source. Leave out visits from {our domain}. Don't use list_third_party_signals.
- For each company, find the matching HubSpot company by website domain and its owner. Show me a table of Warmly company, HubSpot company, owner and whether it's an exact domain match. Don't change any records.
- Look up each owner in Slack by email. Then draft one short direct message per owner: which of their accounts visited, who (if identified), which pages, and one suggested next step based only on those pages. List anything without an owner or Slack match for me instead.
- Send each direct message only after I approve it. Then tell me how many accounts were checked, how many alerts went out and how many were skipped.
Run it on a schedule (optional)
- Run it once each morning, so reps hear about yesterday's visits while they still matter.
- In a scheduled run, stop at the drafts: send them to yourself and approve before anything reaches the reps.
- Warmly allows 60 requests a minute on the free plan and 120 on paid. A daily run is far below that, but don't loop it every few minutes.
- Warmly, HubSpot and Slack all use OAuth, and Slack needs a workspace admin to approve the integration. Test one manual run before you schedule it.
Where this goes wrong
- Alert goes to the wrong rep. A visitor's company can match the wrong HubSpot company (parent and subsidiary, two companies with similar names). Match on website domain first, show the Warmly company and the HubSpot company side by side, and skip anything that isn't an exact domain match.
- Credits spent without asking. list_third_party_signals is the only Warmly tool that uses credits, and the pool is shared with the rest of your Warmly account. Tell it not to call that tool. If you want signals, ask for a preview: true call first, which is free, and check get_credits_remaining before approving a real one.
- Your own team or customers flagged as warm. Employees, partners and existing customers browse the site too. Drop visitors from your own domain, and have the draft say when the HubSpot company is already a customer so the next step fits.
- Reading too much into one page view. A single blog visit is not buying intent. Only include accounts with more than one visit or a visit to a page your team treats as high intent (pricing, demo, integrations), and list the exact pages so the rep can judge.
Gotchas
- Warmly's MCP server is read-only by design, so this recipe can't update anything in Warmly.
- If you belong to more than one Warmly org, add ?organization_id=<id> to the server URL or you'll get a 401 missing_org_context error.
- In Claude, Warmly is added as a custom connector with its endpoint URL. ChatGPT support isn't confirmed.
- HubSpot needs a Super Admin to approve the connector for non-admin users, and Slack needs a workspace admin to approve the MCP integration.
- Messages are sent through the Slack account you connected, so reps will see them as coming from you.
Download
Get the prompts, guardrails and expected output as one Markdown file. Paste it into a Claude Project or ChatGPT project's instructions, or save it as CLAUDE.md for Claude Code.
Download warm-visitor-alert-slack.md
New recipe and breakage notes every week
Vendor sites: HubSpot · Slack. If we join an affiliate program, these links will be labeled as affiliate links.