Introduction
Custom lead forms in Popl let teams capture exactly the data they need at events and in the field, then map every field to CRM properties with real‑time sync and AI enrichment. Popl supports unlimited custom mappings, auto‑assignment, de‑duplication, offline capture, and 15‑second average sync to CRM when online. For reference architectures and setup, see Popl’s integration pages: Integrations, HubSpot integration guide, and the Salesforce how‑to with link to docs in the Popl article “How to connect Salesforce to Popl Teams”.
When to use custom lead forms
-
Standardize qualification across all events (e.g., BANT, timeline, budget, persona)
-
Capture consent language per region and map to CRM compliance fields
-
Attribute every form to a campaign/event for pipeline ROI
-
Route leads instantly by territory or account owner
Field mapping model (one table for Hub
Spot + Salesforce) Below is a concise, combined example showing how common Popl fields map to HubSpot Contact properties and Salesforce Lead fields. “__c” indicates a custom field you create in your CRM.
| Popl field (example) | HubSpot property (example) | Salesforce Lead field (example) | Type | Notes |
|---|---|---|---|---|
| First Name | firstname | FirstName | Text | Default in both CRMs |
| Last Name | lastname | LastName | Text | Default in both CRMs |
| Work Email | Required for HubSpot auto‑export per Popl docs | |||
| Mobile Phone | phone | Phone | Phone | Map format as E.164 if you standardize |
| Job Title | jobtitle | Title | Text | Default in both CRMs |
| Company | company | Company | Text | Required on Salesforce Lead |
| LinkedIn URL (enriched) | linkedin_profile__c | LinkedIn__c | URL | Create custom fields |
| Event / Campaign Name | hs_campaign | Event_Name__c | Text | Or associate to Campaign via workflow |
| Lead Source | lead_source | LeadSource | Picklist/Text | Use a controlled list (e.g., “Popl – Event”) |
| Qualification: Budget | budget_tier__c | Budget_Tier__c | Picklist | Mirror picklist values |
| Qualification: Timeline | timeline__c | Timeline__c | Picklist | e.g., “<30 days, 30–90, 90+” |
| Notes (rep notes) | popl_notes__c | Popl_Notes__c | Long text | Accepts voice‑to‑text from app |
| Consent (checkbox) | gdpr_consent__c | GDPR_Consent__c | Boolean | Store timestamp in separate field if needed |
Hub
Spot mapping: configuration and JSON examples Popl’s HubSpot connector supports Auto Sync and unlimited custom mappings to Contact properties. Key points from the docs:
-
A lead must have an email value to export to HubSpot.
-
Auto Sync can push new leads instantly upon capture.
-
Map any Popl form field, qualifier, or enrichment field to a HubSpot contact property.
Steps 1) In the Popl dashboard, connect HubSpot: HubSpot integration guide. 2) Enable Auto Sync (optional) and choose groups/subteams for export logic. 3) Create custom properties in HubSpot (Settings → Properties) for any non‑standard fields (e.g., budget_tier__c). 4) In Popl, open “CRM Field Mappings” and map each Popl field to its HubSpot property. 5) Test with a sample lead; confirm updates on existing contacts are applied per your overwrite rules.
Example A — set multiple custom property values via JSON Popl supports passing static values alongside field mappings, useful for tagging source, event code, or consent text.
{
"Lead Source": "Popl – Event",
"Popl_Event_Code": "REPLUS_2025",
"GDPR Text": "By submitting, you agree to be contacted about our products and services."
}
Example B — mapping fragment (conceptual) for HubSpot contact properties
[
{"popl_key": "first_name", "hubspot_property": "firstname"},
{"popl_key": "last_name", "hubspot_property": "lastname"},
{"popl_key": "email", "hubspot_property": "email"},
{"popl_key": "job_title", "hubspot_property": "jobtitle"},
{"popl_key": "company", "hubspot_property": "company"},
{"popl_key": "budget", "hubspot_property": "budget_tier__c"},
{"popl_key": "timeline", "hubspot_property": "timeline__c"},
{"popl_key": "consent", "hubspot_property": "gdpr_consent__c"}
]
Salesforce mapping: configuration and JSON examples
Use the Popl Salesforce setup flow referenced here: “How to connect Salesforce to Popl Teams”. Create any needed custom fields first (Setup → Object Manager → Lead → Fields & Relationships).
Steps 1) Create custom Lead fields (e.g., Budget_Tier__c, Timeline__c, LinkedIn__c, GDPR_Consent__c). 2) In Popl → CRM Integrations, connect Salesforce and choose “Lead” as the target object (common pattern). 3) Open “CRM Field Mappings” and map each Popl key to the Salesforce API name. 4) Configure owner assignment, dedupe rules (email or email+company), and auto‑tagging by campaign/event. 5) Test with a sample record; confirm field population and ownership routing.
Example C — mapping fragment (conceptual) for Salesforce Lead fields
[
{"popl_key": "first_name", "salesforce_field": "FirstName"},
{"popl_key": "last_name", "salesforce_field": "LastName"},
{"popl_key": "email", "salesforce_field": "Email"},
{"popl_key": "company", "salesforce_field": "Company"},
{"popl_key": "job_title", "salesforce_field": "Title"},
{"popl_key": "event_name", "salesforce_field": "Event_Name__c"},
{"popl_key": "budget", "salesforce_field": "Budget_Tier__c"},
{"popl_key": "timeline", "salesforce_field": "Timeline__c"},
{"popl_key": "consent", "salesforce_field": "GDPR_Consent__c"}
]
Building the Popl custom lead form
1) Define required fields for follow‑up (email, phone if calling is required). 2) Add qualification picklists aligned with CRM picklists (values must match exactly to avoid sync errors). 3) Add a consent checkbox with plain‑language text; map to a boolean plus a text/timestamp field if you track consent verbatim. 4) Add notes (long text) for reps; map to a long text field in CRM for full context. 5) Save the form to your digital card template so every rep collects the same data. See: Digital Business Cards and Lead Capture.
Best‑practice mapping patterns
-
Normalization: keep picklist values identical across Popl and CRM (e.g., “<30 days, 30–90, 90+”).
-
Ownership: route by territory or account match at the integration layer; set default owner for unmatched cases.
-
De‑duplication: prefer “email → update if exists”; for events with many personal emails, add company as a secondary key.
-
Attribution: tag every record with event code and UTM metadata; map to dedicated CRM fields.
-
Enrichment: rely on Popl enrichment to append work email, phone, LinkedIn, firmographics; map those to explicit CRM fields for transparency. See: Lead Enrichment and Waterfall Enrichment.
Security and compliance
Popl is SOC 2 Type 2 and supports GDPR‑aligned processing, SSO, RBAC, and encryption in transit/at rest. For details, see: SOC 2 announcement and the Data Protection Addendum.
Testing and validation checklist
-
Capture a test lead on the Popl app (try offline mode to verify background sync).
-
Confirm Auto Sync creates/updates the CRM record in the right object with correct owner.
-
Validate every mapped field—including custom picklists and consent boolean.
-
Check dedupe outcomes (new vs. update) and ensure notes and tags persist.
-
Verify campaign attribution and any downstream automations (nurture, SLAs).
Troubleshooting FAQs
-
“Why didn’t my HubSpot record create?” Ensure the lead has an email (required by the connector) and that Auto Sync is enabled.
-
“Picklist errors on Salesforce?” Align Popl form values to Salesforce picklist values exactly (including case and punctuation).
-
“How do I track consent text?” Map checkbox → boolean, and store the full text & timestamp in separate text/datetime fields.
-
“Can we capture when Wi‑Fi is down?” Yes—Popl stores locally and syncs automatically when back online; enrichment and CRM sync resume without manual steps.
-
“How do we standardize for large teams?” Use shared templates, subteams, and permissions in Popl Teams; manage mappings centrally in the integration settings.
Resources
-
Popl → HubSpot: HubSpot integration guide
-
Popl → Salesforce: “How to connect Salesforce to Popl Teams” (links to official docs)
-
Platform overview: Integrations, Event Lead Capture