Webinar or Typeform responses to enriched, routed leads

Typeform + Apollo + HubSpot

IntermediateMarketingRevOps

Who it's for

Marketing and RevOps teams who collect webinar sign-ups or demo requests in Typeform and want each respondent enriched, matched to an owner and in the CRM the same day, without creating duplicates. Apollo can be swapped for Lusha, ZoomInfo or Cognism, and HubSpot for Salesforce, Attio or Pipedrive. Teams on Typeform's EU data center can use Typeform EU.

What you get

Routing table for one webinar, waiting for approval. Sample output: every company and person in it is fictional.

Form: 'Forecasting without spreadsheets' webinar sign-up, 46 responses since Oct 9
Removed before enrichment: 3 test entries, 2 duplicates, 4 already in HubSpot with an owner.
Enriched in Apollo: 37 new respondents (credits used, as shown in Apollo).

| # | Name           | Company                            | Size  | Region | Rule hit        | Proposed owner | HubSpot action      |
|---|----------------|------------------------------------|-------|--------|-----------------|----------------|---------------------|
| 1 | Dana Okafor    | Fernhill Software (fictional)      | 140   | US     | US mid-market   | Alex Rivera    | Create contact      |
| 2 | Sam Whitlock   | Quarry Lane Analytics (fictional)  | 1,200 | CA     | Enterprise 1000+| Priya Raman    | Update (no owner)   |
| 3 | Mira Castell   | Larkspur Freightworks (fictional)  | blank | US     | No size, check  | none           | Hold for review     |
| 4 | Tomas Elling   | Mossgate Labs (fictional)          | 60    | DE     | EMEA            | Jordan         | Create contact      |
...33 more

Conflicts: #2 said '51–200 employees' on the form, Apollo says 1,200. Routed on the form answer? Reply 'form' or 'apollo'.
Already owned (not changed): 4 contacts, listed below with their current owner.

Nothing has been created or updated in HubSpot. Reply 'approve 1-2, 4-37' to go ahead.

Time and cost

Estimate About 15–20 minutes per batch, most of it checking the routing table.

Assumptions: One webinar form with about 50 responses, 40 of them new to HubSpot, and four routing rules.

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: ClaudeChatGPT

Set up in a chat app

Every server in this recipe is confirmed for Claude and ChatGPT. Connect each one, then paste the prompts below into one conversation.

Developer setup

Auth setup and mcp.json for Claude Code and Cursor
  • Typeform: Sign in with OAuth in your client (run /mcp in Claude Code). Do it once interactively, and the client stores and refreshes the token.
  • Apollo: Use OAuth sign-in for interactive use. For headless runs, use an API key in the X-Api-Key header.
  • HubSpot: Sign in with OAuth in your client (run /mcp in 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": {
    "typeform": {
      "url": "https://api.typeform.com/mcp"
    },
    "apollo": {
      "url": "https://mcp.apollo.io/mcp"
      // headless alternative: "headers": { "X-Api-Key": "YOUR_APOLLO_API_KEY" }
    },
    "hubspot": {
      "url": "https://mcp.hubspot.com"
    }
  }
}

Step-by-step prompts

  1. Find my Typeform form called {form name} and list the responses since {date}: name, email, company, and the answers to {routing questions}. Flag test entries and duplicate emails. Don't change anything in Typeform.
  2. Search HubSpot for each respondent by email, and by name plus company. Show me who already exists, their current contact owner, and any near-matches. Don't change any records.
  3. For the respondents not in HubSpot, tell me how many there are and wait for my OK. Only after I approve it, enrich them with Apollo people enrichment, at most {max} people. Show me what came back for title, company size and country, and mark anything blank.
  4. Apply these routing rules: {routing rules, e.g. 'US under 500 employees: Alex Rivera; 500+: Priya Raman; EMEA: Jordan'}. Show me a table with each person, the rule they matched, the proposed owner, and whether HubSpot would create or update them. Flag conflicts between the form answer and Apollo.
  5. After I approve the table, create or update only the rows I approved in HubSpot, set the contact owner, and add a note with the form name and response date. Don't touch the owner on contacts that already have one.

Run it on a schedule (optional)

Where this goes wrong

Gotchas

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 form-responses-to-routed-leads.md

Vendor sites: Apollo · HubSpot. If we join an affiliate program, these links will be labeled as affiliate links.