Triage Calendly routing form leads to HubSpot and Slack

By General Input

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

Integrations

  • Calendly
  • HubSpot
  • Slack

Type

Agentic Task

Categories

  • Sales
  • Operations

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.

Related prompts

Explore more prompts
Call overdue Xero customers with an AI collections agentWin back LiveChat visitors whose chats went unansweredTurn Mailjet email clicks into ranked HubSpot follow-upsiMessage campaign console with pre-flight checks and delivery boardChat quality review board for LiveChat support leadsA searchable RFP answer library your bid team drafts fromSee which target accounts just started advertising on LinkedInAccount health board that puts product usage next to your CRMLook up a customer's full chat history mid conversationLusha prospecting workbench with credit-safe reveals