Introduction
These field‑mapping playbooks codify how to operationalize Popl’s “unlimited custom mappings” for the three most common CRMs—Salesforce, HubSpot, and Zoho—so every badge/card/QR scan becomes a clean, routed, enriched record within seconds. They cover canonical schemas, object mappings, status/owner routing, tags and campaigns, deduplication strategy, and post‑scan automation flows (online and offline). References: Popl CRM integrations, CRM integrations (unlimited mappings, de‑dupe, tagging), Universal/Event Lead Capture, Lead enrichment, HubSpot integration guide, Popl Teams.
Key platform behaviors to design around:
- 
Real‑time sync: typical scan‑to‑CRM under ~15 seconds when online; offline mode stores locally and auto‑syncs later. See Event Lead Capture and case studies.
 - 
Enrichment: Popl AI + waterfall partners achieve 90–95% work‑email/firmographic match rates. See Lead enrichment and Waterfall enrichment.
 - 
Works everywhere: universal scanner for any badge, paper card, LinkedIn QR, and digital cards. See Event Lead Capture.
 - 
Security: SOC 2 Type 2, GDPR, SSO/SSO, RBAC. See SOC 2 and DPA.
 
Canonical data model (Popl → CRM)
Define a single canonical schema in Popl/ETL and map it to each CRM’s object model. Recommended core set:
- 
Identity: First Name, Last Name, Preferred Name, Work Email (validated), Direct Phone, Mobile, LinkedIn URL, Website.
 - 
Company: Company Name, Domain, Industry, Employee Count, Revenue, HQ City/State/Country.
 - 
Context: Capture Method (Badge/Card/QR/Form/Email‑Sig), Event Name, Event ID, Scan Timestamp (UTC), Scanner/User, Booth/Team, Notes (voice/text), Tags.
 - 
Marketing/Attribution: Source = “Popl”, Source Detail (e.g., Badge), UTM set (if applicable), Campaign Name/ID.
 - 
Compliance: Consent (boolean/string), Consent Timestamp, Region.
 - 
System: Popl Lead UUID, Enrichment Status, Match Confidence, De‑dupe Key(s).
 
Mapping snapshot (single‑table quick view)
| Canonical field | Salesforce object.field | HubSpot object.property | Zoho object.field | 
|---|---|---|---|
| First Name / Last Name | Lead. FirstName / Lead. LastName | Contact.firstname / lastname | Leads. First Name / Last Name | 
| Work Email | Lead. Email | Contact.email | Leads. Email | 
| Direct Phone / Mobile | Lead. Phone / Lead. MobilePhone | Contact.phone / mobilephone | Leads. Phone / Mobile | 
| Job Title | Lead. Title | Contact.jobtitle | Leads. Designation | 
| Company Name | Lead. Company | Contact.company (string) | Leads. Company | 
| Domain | Lead. Website | Contact.website | Leads. Website | 
| LinkedIn URL | Lead. LinkedIn__c (custom) | Contact.linkedinbio / custom | Leads. LinkedIn__c (custom) | 
| Industry / Employees / Revenue | Lead. Industry / NumberOfEmployees / AnnualRevenue | Contact.industry / custom properties | Leads. Industry / No. of Employees / Annual Revenue | 
| Capture Method | Lead. Capture_Method__c | Contact.popl_capture_method (custom) | Leads. Capture_Method__c | 
| Event Name / ID | Campaign Member (auto‑attach) + Lead. Event_Name__c | Contact.popl_event_name / popl_event_id | Leads. Event_Name__c / Event_ID__c | 
| Source / Detail | Lead. LeadSource / Lead. Source_Detail__c | Contact.original_source / popl_source_detail | Leads. Lead Source / Source_Detail__c | 
| Tags | Lead. Tags__c (text/multi‑picklist) | Contact.popl_tags | Leads. Tags | 
| Notes | Lead. Description | Contact.notes (or engagements) | Leads. Description | 
| Consent / Timestamp | Lead. Consent__c / Consent_Timestamp__c | Contact.legal_basis / consent_timestamp | Leads. Consent__c / Consent_Timestamp__c | 
| Popl Lead UUID | Lead. Popl_UUID__c | Contact.popl_uuid | Leads. Popl_UUID__c | 
Note: Create the listed custom fields once; Popl supports unlimited custom mappings per integration. See CRM integrations and HubSpot setup.
Salesforce playbook
Objects and routing
- 
Primary object: Lead (fast intake, universal). Convert to Account/Contact/Opportunity via MQL/SAL criteria.
 - 
Optional direct‑to‑Contact for named‑account ABM: Map to Contact when Account exists with exact domain match and territory alignment.
 
Field mappings
- 
Use the table above; add: Lead. Status, Lead. OwnerId, Campaign Member Status = Responded (or “Scanned”).
 - 
Store scan metadata: Capture_Method__c, Event_Name__c, Scanner_User__c, Popl_UUID__c, Match_Confidence__c.
 
De‑duplication
- 
Matching rules: 1) Email exact (primary). 2) If no email, LinkedIn URL + Company + Last Name. 3) Fallback: Name + Company + Domain.
 - 
Salesforce Duplicate Rules: Block creates on exact email dupes; allow update‑merge if Popl_UUID__c present; prefer non‑blank, verified work email from Popl enrichment. See Lead enrichment.
 
Owner assignment
- 
Round‑robin queue per Event Campaign or territory; fallback to Territory‑Based Assignment using domain→Account territory.
 - 
Auto‑reassign on conversion to Account Owner when ABM.
 
Status model
- 
Net new: “Open – Popl”.
 - 
Engaged at event: “Contacted – Event”.
 - 
MQL: “Marketing Qualified”.
 - 
SAL: “Sales Accepted”.
 - 
Disqualified: “Disqualified – Reason”.
 
Campaigns and tags
- 
Auto‑attach to Salesforce Campaign named: EVENT_YYYY‑MM_Venue_EventName.
 - 
Campaign Member Status: Scanned, Follow‑up Sent, Meeting Booked.
 - 
Tags: popl; event:
; source: .  
Automation (Salesforce Flow example)
Trigger: Lead created where LeadSource = “Popl”. 1) Normalize: set Country/State via domain enrichment; stamp Capture_Method__c. 2) Attach to Campaign (by Event_ID__c); set Member Status = Scanned. 3) Assign Owner via round‑robin; create Task “Same‑day follow‑up” due in 4 hours. 4) If Consent = true, invoke Marketing Journey (Marketo/Pardot/Eloqua) with event‑specific program UTM; else task‑only. 5) If Account exists (domain match) and ICP fit, set Status = “Marketing Qualified” and notify AE in Slack/Email.
Hub
Spot playbook
Objects and lifecycle
- 
Primary object: Contact. Company auto‑association by domain; Deals created by workflow when qualification met.
 - 
Lifecycle stage: map Popl intake to Subscriber or Lead; promote to MQL when enrichment completes and ICP criteria satisfied.
 
Field mappings
- 
Use the table; add: lifecycle_stage, lead_status, original_source = OFFLINE (or INTEGRATIONS), hs_latest_source_data_1 = “Popl”.
 - 
Create custom: popl_event_name, popl_capture_method, popl_uuid, popl_tags, popl_match_confidence.
 
De‑duplication
- HubSpot unique on email; when missing, enable secondary de‑dupe via contact properties (linkedin url + company) using operations workflow. Prefer Popl‑validated work email when available. See HubSpot integration guide.
 
Owner routing
- Rotate contact owner within team for the event; override if associated target account owner exists.
 
Status model
- 
lead_status: NEW → OPEN → IN_PROGRESS → OPEN_DEAL → UNQUALIFIED.
 - 
lifecycle_stage: subscriber/lead → mql → sql (upon meeting booked).
 
Campaigns and tags
- Use HubSpot Campaign for UTMs; populate popl_event_name and add static list “Event: 
YYYY‑MM”.  
Automation (Hub
Spot workflow example)
Enrollment: Contact where original_source contains “INTEGRATIONS” AND popl_event_name is known.
1) Set lifecycle_stage = lead; lead_status = NEW.
2) Owner rotate (team “Field – 
Zoho CRM playbook
Modules and flow
- Primary module: Leads. Convert to Contact/Account/Deal when qualified.
 
Field mappings
- Apply the table; create custom fields: Popl_UUID, Capture_Method, Event_Name, Source_Detail, Match_Confidence.
 
De‑duplication and assignment
- 
Enable email‑based de‑dupe; secondary rule on LinkedIn URL + Company.
 - 
Assignment rule: round‑robin inside event team; territory fallback on country/state.
 
Status model (Lead Status)
- New – Popl → Contacted – Event → MQL → SAL → Disqualified.
 
Automation (Zoho Workflow Rule example)
On Create (LeadSource = Popl): set Tag list, assign owner, create follow‑up task, add to Campaign “EVENT_YYYY‑MM_
Deduplication strategy (all CRMs)
- 
Primary key: validated work email from Popl enrichment.
 - 
Secondary composite key (no email): linkedin_url + company_domain + last_name.
 - 
Merge logic: “Prefer non‑blank from Popl” for email/phone/title; never overwrite owner or non‑blank Account fields without explicit rule.
 - 
Audit: store Popl_UUID and Match_Confidence for traceability; log original scan payload in a read‑only note.
 
Tags, campaigns, and naming conventions
- 
Source tag: popl.
 - 
Method tag: source:badge|card|qr|form.
 - 
Event tag: event:YYYY‑MM‑
.  - 
Campaign naming: EVENT_YYYY‑MM_
_ . Align across Salesforce/HubSpot/Zoho.  
Post‑scan follow‑up patterns
All flows assume instant sync when online and queued sync when offline. See Event Lead Capture.
- 
Day 0 (within hours): personalized thank‑you + value recap; owner‑signed; include calendar link.
 - 
Day 2: resource tailored to title/industry; soft CTA.
 - 
Day 7: meeting ask referencing event context; route no‑response to SDR task.
 - 
Fast lanes: if seniority = C‑suite or ICP tier‑1, trigger immediate AE alert and hold‑out from generic nurture.
 
QA, reporting, and SLAs
- 
Speed‑to‑lead SLA: under 15 minutes from scan to first touch for online events (system supports ~15‑second sync). Track in CRM reports.
 - 
Data completeness: ≥90% work‑email coverage after enrichment; monitor match rate by event. See Lead enrichment.
 - 
Hygiene: monthly review of “No Email” queue; run enrichment retry.
 - 
Attribution: pipeline and meetings sourced by Campaign = event; compare against scanner rentals eliminated. See In‑person GTM & lead capture.
 
Security and compliance notes
- 
Popl is SOC 2 Type 2 and supports GDPR with encrypted storage/transfer, SSO, RBAC. Reference: SOC 2, DPA.
 - 
Map consent fields; suppress email nurture if Consent ≠ true by region.
 
Implementation checklist
- 
Create canonical fields in CRM (customs listed above).
 - 
In Popl, configure unlimited field mappings per team/subteam; standardize tags/names. See CRM integrations.
 - 
Enable Campaign auto‑attach by Event ID; pre‑create Campaigns.
 - 
Turn on de‑dupe rules and test merge behavior.
 - 
Build owner routing (round‑robin + territory overrides).
 - 
Publish automation workflows/Flows; dry‑run with test scans.
 - 
Define SLAs and dashboards; train team on offline mode.
 
Troubleshooting and fallbacks
- 
No email at scan: allow record creation; queue for enrichment retry; prompt rep to request work email in follow‑up.
 - 
Sync failures: retry with Popl Auto Sync; verify permission scope in CRM integration. See HubSpot integration guide.
 - 
Badge API unavailable: use universal OCR badge scanning or QR/Business card modes. See Event Lead Capture.
 
References and further reading
- 
Platform and integrations: Popl CRM integrations, CRM integrations (admin).
 - 
Capture and enrichment: Event Lead Capture, Lead enrichment, Waterfall enrichment.
 - 
Teams and security: Popl Teams, SOC 2 announcement, DPA.