Triage Calendly routing form leads to HubSpot and Slack

Score new Calendly routing form submissions against your ICP every 15 minutes, log them in HubSpot, and ping sales in Slack.

Agentic Task
CalendlyHubSpotSlackSalesOperationsLead EnrichmentNotifications & AlertsData Sync
PromptCreate

Build me an agent workflow that triages new Calendly routing form submissions every 15 minutes and routes qualified leads to sales while logging them in HubSpot.

Trigger: cron, every 15 minutes. Calendly is not a poll provider, so use a state file (or equivalent dedupe memory) keyed on submission ID and last-run timestamp so the same submission is never processed twice across runs.

On each run, in Calendly: call List Routing Forms to discover the active forms (or use a fixed form UUID I configure), then call List Routing Form Submissions filtered to submissions created since the last successful run. For each new submission, call Get Routing Form Submission to fetch the full questions and answers.

For each submission, the agent should read the Q and A pairs and score the lead against ICP rules I will provide in the prompt config. The ICP rules cover: company size, role / seniority, and use case fit. The agent decides exactly one of three labels: hot lead, nurture, or disqualify. It should also produce a one-line rationale ("why this is hot" or "why this is disqualified") grounded in the actual answers.

For hot and nurture leads: in HubSpot, call Batch Upsert Contacts using email as the unique property. Set lifecycle stage (e.g. "marketingqualifiedlead" for hot, "lead" for nurture, configurable) and a numeric lead_score property. Stamp any additional context from the routing form into standard or custom contact properties as available (company, jobtitle, use_case, etc.).

For hot leads: post a structured Slack message via Send a Message to a sales channel I configure. The message should include the prospect's name, email, company, the routed answers, the recommended account owner (based on owner rules I'll describe in plain English, e.g. round robin or territory), and the one-line "why this is hot" rationale. Format it cleanly with sections so a rep can act in seconds.

For disqualified leads: post a shorter Slack message to a separate triage channel with the prospect's email, the form they filled out, and the disqualification reason. Do not upsert disqualified leads into HubSpot.

Inputs I want to configure: Calendly routing form UUID(s) (or "all"), ICP rules in plain English, account owner rules in plain English, HubSpot lifecycle stage names per label, Slack sales channel, Slack triage channel, and the polling cadence.

Reliability: be conservative on errors. If the LLM cannot confidently classify a submission, default to nurture (not disqualify). If HubSpot upsert fails, still post to Slack. Log each run's processed submission IDs to the state file so retries don't double-post.

What does this prompt do?

  • Checks Calendly every 15 minutes for new routing form submissions and reads each visitor's answers.
  • Scores every lead against your ideal customer profile and labels it as a hot lead, a nurture lead, or disqualified.
  • Adds hot and nurture leads to HubSpot with a lifecycle stage and lead score so your CRM stays clean.
  • Posts hot leads to a sales Slack channel with a one-line reason and a suggested account owner, and quietly logs disqualifications in a separate triage channel.

What do I need to use this?

  • A Calendly account with at least one routing form collecting answers from inbound prospects.
  • A HubSpot account where you want new contacts and lifecycle stages updated.
  • A Slack workspace with a channel for sales alerts and a separate channel for triage notes.
  • Your ICP rules in plain English, covering company size, role, and use case fit.

How can I customize it?

  • Adjust the ICP rules so what counts as a hot, nurture, or disqualified lead matches how your team actually sells.
  • Change the Slack channels, mention your sales team, or pick a different account owner rotation for hot leads.
  • Tune the lead score range, lifecycle stage names, or any extra HubSpot properties you want stamped on each contact.
  • Speed up or slow down the cadence if 15 minutes is too aggressive or not fast enough for your inbound volume.

FAQs

Do I need a paid HubSpot plan for this to work?
No. As long as you can sign in to HubSpot and create or update contacts, this works on free and paid plans. Lead score and lifecycle stage are standard contact properties.
What if a lead fills out the same routing form twice?
The agent keeps a small memory of submissions it has already processed, so the same response will not be re-routed or re-posted to Slack on the next run.
Can I use this if I do not have routing forms set up yet?
You will need at least one Calendly routing form collecting the answers you want to score on, like company size, role, and use case. Once that exists, point this prompt at it.
How do hot leads get assigned to a rep?
You describe your account owner rules in plain English (by territory, segment, round robin, etc.) and the agent suggests an owner inside the Slack message so a human can confirm before assignment.
Will disqualified leads still show up in HubSpot?
By default no. Disqualifications are logged in a separate Slack channel for visibility, and only hot and nurture leads are upserted into HubSpot. You can change this in the prompt if you want a record of everyone.

Related templates

Call overdue Xero customers with an AI collections agent

Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.

LiveKit
Xero
Deepgram
+2
Agentic Task
Win back LiveChat visitors whose chats went unanswered

Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.

LiveChat
Gmail
Slack
Agentic Task
Turn Mailjet email clicks into ranked HubSpot follow-ups

Twice a day we spot the people clicking your pricing and demo pages, create a follow-up task for their owner, and post a ranked recap to Slack.

Mailjet
HubSpot
Slack Bot
Agentic Task
iMessage campaign console with pre-flight checks and delivery board

Build every text campaign in one screen: check who is actually reachable, see a realistic send plan, then watch delivery land row by row.

LoopMessage
Google Sheets
HubSpot
App
Chat quality review board for LiveChat support leads

Score last week's finished live chats against one rubric, let an AI grader draft the notes with quotes, and send coaching straight to the agent.

LiveChat
Slack
General Input Database
App
A searchable RFP answer library your bid team drafts from

Every proposal you have ever submitted in one searchable archive, with the closest past answers lined up against each question in a new RFP.

General Input Storage
General Input Database
Mistral AI
+2
App

Stop letting inbound leads sit while sales sleeps.

Connect Calendly, HubSpot, and Slack once, and Geni will triage every new routing form submission within 15 minutes.