One contact shape for every source
Before anything is sent, each lead becomes the same standard contact:
| Standard field | Where it comes from |
|---|---|
| First / last name | The person's full name, split at the first space (owner, founder, maker or member) |
| Company | Business, channel, page, product or startup name |
| Email, phone, website | The lead's main email, phone and site |
| Address, city, state, postal code, country | When the scraper has them |
| Tag and source | Your tags; source "Prospect Cheap — <scraper>" |
| Custom fields | Everything else useful: rating, reviews, MRR, subscribers, TrustScore… |
Where the person's name comes from
| Scraper | Person |
|---|---|
| Google Maps, Yelp, Trustpilot | Owner found on the business website |
| YouTube | Channel owner |
| Product Hunt | Founder or owner |
| TrustMRR | Founder |
| Skool | The member (first and last name already separate) |
| FB Ads | No person — page name only |
How each tool receives it
- GoHighLevel: first name, last name, a full name (or the company when there's no person), email, phone, company, website, address and tags.
- Instantly: first_name, last_name, company_name, phone, website, plus custom variables.
- Smartlead: first_name, last_name, company_name, phone_number, website, plus custom fields.
- lemlist: firstName, lastName, companyName, phone, companyDomain, plus custom fields.
You never map columns by hand.
When there's no person
The lead still goes through with the company name. If your template starts with {{first_name}}, filter first with Has first name or Has first & last name — or write a greeting that works without one. See leads without owner names.
CSV exports use the same logic
The Instantly and GoHighLevel export layouts produce the same columns, so a CSV import gives the same result as Send to.