# Webinar or Typeform responses to enriched, routed leads

Source: https://mcpforgtm.com/recipes/form-responses-to-routed-leads (StackMCP, independent directory of official MCP servers)

## Goal

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.

## Connected tools

- Typeform: https://api.typeform.com/mcp (setup: https://mcpforgtm.com/tools/typeform)
- Apollo: https://mcp.apollo.io/mcp (setup: https://mcpforgtm.com/tools/apollo)
- HubSpot: https://mcp.hubspot.com (setup: https://mcpforgtm.com/tools/hubspot)

## Guardrails

- Read only in Typeform. Don't edit forms, contacts or automations.
- Check HubSpot for an existing contact before enriching anyone in Apollo.
- Enrich no more people than the cap I set for the run, and stop to confirm the count before spending credits.
- Never change the owner of a contact that already has one.
- Show me the routing table first, and create or update HubSpot contacts only after I approve it.

## Steps

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.

## Expected output

Routing table for one webinar, waiting for approval. Example (all names 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.
```

## Watch for

- Duplicate contacts in HubSpot: People often sign up with a personal email while HubSpot has their work email. Search HubSpot by email and by name plus company, list near-matches separately, and decide on those by hand.
- Reassigning a lead a rep already owns: A territory rule can quietly move an existing contact to a new owner. Never change the owner on a contact that already has one. List those with their current owner instead.
- Credits spent on junk responses: Test submissions, spam and people who signed up twice all cost an enrichment. Remove duplicates by email, drop obvious test entries, and run the HubSpot check before any enrichment. Confirm the final count before Apollo runs.
- Routing on the wrong data: The form answer and the Apollo data can disagree on company size or country, which changes the owner. Show both values side by side, flag any conflict, and pick one rule (form or Apollo) before you approve.
