Daily GEO re-engagement drafts for stalled HubSpot deals
Every weekday at 8am, an agent finds stalled early-stage HubSpot deals, checks each account's AI search visibility, and DMs each owner a ranked list of copy-ready openers.
Build me an agent workflow that runs every weekday at 8am in the org's local timezone and generates GEO-anchored re-engagement drafts for stalled HubSpot deals.
Step 1. Use HubSpot Search Deals to pull all open deals currently sitting in early-funnel stages (default: Discovery and Qualification) that have not had a stage change in the last 7 or more days. Include the deal's owner id, primary associated company id, deal name, amount, stage, and last-activity timestamp. Group results by owner.
Step 2. For each deal, use HubSpot Get Company to fetch the associated company's primary domain (and name). If a deal has no associated company or the company has no domain on file, keep the deal in the list but flag it as "no domain" and skip Step 3 for it.
Step 3. For each unique company domain, call Nexuscale Check AI Visibility (GEO) to get that account's current visibility profile across generative-AI search engines (e.g. ChatGPT, Perplexity, Gemini). Cache the result per domain so multiple deals against the same account only cost one API call.
Step 4. For each deal, draft a short re-engagement opener (max 3 sentences, plain text, no em dashes) grounded in the Nexuscale reading:
If the account's GEO score is low, lean on a "here's what your buyers are seeing in ChatGPT when they search for your category" angle, and reference the specific weak signal Nexuscale returned (e.g. missing from top answers, cited competitor, thin coverage).
If the account's GEO score is high, use an "expand share of voice / defend the position" angle.
If Nexuscale returned no data or the deal had no domain, write a neutral opener that does not mention GEO at all.
Never invent GEO numbers, engine names, or competitor citations that Nexuscale did not return. Only cite figures that are present in the API response.
Step 5. For each deal, use HubSpot Create Note to write a note on the deal record containing (a) the drafted opener and (b) a 2-3 line plain-language GEO summary derived from the Nexuscale response (overall score, standout engines, notable competitor mentions, and any "no data" flags). Associate the note with the deal id.
Step 6. For each deal owner (as returned by HubSpot Get Owner), resolve their Slack user via their email address, open a DM with Slack Open a Conversation, then use Slack Send a Message to post their personalized daily digest. The DM should contain:
A one-line intro naming today's date and how many stalled deals were found.
A ranked list of the stalled deals, ordered by amount desc then by days-since-last-activity desc. For each: deal name, amount, stage, days idle, a link to the HubSpot deal, a 1-line GEO summary, and the drafted opener in a copy-ready block.
Owners with zero stalled deals should not receive a DM at all.
Constraints:
Openers stay under 3 sentences, plain and specific, no em dashes.
Do not send emails to prospects. This workflow only writes drafts (into HubSpot notes and Slack DMs) for the rep to review.
Never fabricate visibility scores, engine names, or citations that Nexuscale did not return.
If the whole run finds zero stalled deals, skip Slack entirely and finish quietly.
Additional information
What does this prompt do?
- Pulls the HubSpot deals that have been sitting in Discovery or Qualification for 7 or more days, grouped by their owner.
- Checks each account's current visibility across generative AI search engines like ChatGPT, Perplexity, and Gemini.
- Drafts a short, specific re-engagement opener for every deal, grounded in what its buyers are actually seeing in AI search results.
- Attaches the opener plus a plain-language visibility summary to the deal as a HubSpot note, so it lives with the record.
- Sends each owner a Slack DM with their ranked stalled deals and copy-ready openers for the day.
What do I need to use this?
- A HubSpot account with permission to read deals, companies, and owners, and to create notes.
- A Nexuscale account with API access so the agent can pull AI search visibility scores for each company.
- A connected Slack workspace where the agent can send direct messages to each deal owner.
- Agreement on which pipeline stages count as "stalled early funnel" (defaults to Discovery and Qualification, 7+ days idle).
How can I customize it?
- Adjust the schedule (send it at 7am, only on Mondays, or twice a week).
- Change which stages count as stalled or how many days of inactivity trigger a nudge.
- Swap the Slack DM for a shared team channel, or add the sales manager as a CC recipient.
- Tune the opener style (more casual, more technical, or in a language other than English).
Frequently asked questions
What is a GEO visibility score and why use it as the hook?
Will the agent invent visibility numbers if Nexuscale does not return them?
Can I run this only for one pipeline or one team?
Does this send emails to prospects on its own?
What happens on days when a rep has no stalled deals?
Related templates
Turn stalled pipeline into ready-to-send openers by 8am.
Connect HubSpot, Nexuscale, and Slack once, and Geni ships each rep their daily nudge list before they open their laptop.