---
name: moltsets-hubspot-event-badge-list-enrichment
description: Use this skill to expand a raw event or badge-scan export of just names and companies into full contact records with MoltSets, before it lands in HubSpot for post-event outreach.
---

# HubSpot Event and Badge List Enrichment

Take a raw event or trade-show attendee export - usually just a name and a company - and expand each row into a full contact record before it goes near HubSpot. Resolve title, business email, LinkedIn, and firmographics through MoltSets, flag rows that cannot be resolved, and hand back an import-ready file so post-event outreach starts with real data rather than a name and a booth number.

## Triggers

"Enrich this event attendee list before I import it into HubSpot", "expand these badge-scan names and companies into full contacts with email and title". Use when the user has a raw attendee/badge export (name + company, sometimes title) destined for HubSpot.

## Requirements

- HubSpot remote MCP (mcp.hubspot.com) and the MoltSets MCP connected in the same client
- Custom objects are not reachable through HubSpot's remote MCP - import to standard contact properties

## Chain

```
Raw attendee export (CSV or sheet: name + company, sometimes title)
  -> normalise company name to domain  (best-effort, or ask for domain if ambiguous)
  -> MoltSets:
       search_business_profile_by_name (name + domain -> title, LinkedIn, seniority)
       linkedin_to_best_email          (LinkedIn URL -> business email)
       search_companies                (domain -> firmographics)
  -> flag unresolved rows              (ambiguous company name, no match found)
  -> hubspot/search-crm-objects        (check for existing contacts, avoid duplicate import)
  -> hubspot/create-object             (import new, enriched contacts)
```

## Inputs

- **Attendee file** - the raw export (CSV or sheet) with at minimum name and company
- **Event context** - event name and date, to tag the imported contacts
- **Company resolution** - guess domains from company name automatically, or confirm ambiguous ones with the user first
- **Import scope** - all resolved rows, or only rows above a confidence threshold

## Steps

1. Read the raw export and identify what is present per row (name, company, sometimes a title).
2. Normalise the company name to a domain, flagging ambiguous names (common names, multiple possible matches) for confirmation.
3. Run `search_business_profile_by_name` with name plus domain to return title, seniority, and LinkedIn URL.
4. Run `linkedin_to_best_email` where a LinkedIn URL was returned, to get a business email.
5. Run `search_companies` on the domain to attach firmographics to each row.
6. Check resolved contacts against existing HubSpot records to avoid duplicate import, then create the new, enriched contacts tagged with the event name and date.

## Output

| Name (as scanned) | Company | Resolved Domain | Title | Email | LinkedIn | Confidence | Action |
| --- | --- | --- | --- | --- | --- | --- | --- |

```
Rows in export:              X
Rows resolved:               X/N (XX%)
Ambiguous / flagged:         X
Already in HubSpot:          X
New contacts imported:       X
MoltSets tokens used:        X
```

## Tips

- Badge scans and business-card OCR are frequently misspelled, so check flagged rows manually rather than force-matching them.
- Tag every imported contact with the event name and date so lifecycle and attribution reporting can isolate this cohort later.
- Run a coverage check on the first 20 to 50 rows before processing a large export, to catch a systematic domain-guessing problem early.
