From Manual Registration Chaos to
Real-Time Attendee Sync —
4 Form Types. One Automated Pipeline.
A mid-market event management platform running conferences and board events across the US was drowning in manual data entry — form submissions weren't reaching Salesforce or Meetmax reliably. Twopir built a full Apex integration that now creates every Account, Contact, Opportunity, and Attendee record automatically and syncs attendees to Meetmax in real time, eliminating manual data entry entirely.
Six Integration Gaps That Blocked Seamless Event Registration — and Six Fixes That Resolved Them
Sync_Status__c field captures every outcome: every Attendee record now stores its Meetmax sync result (Success or Failed) and the Attendee_ID_Meetmax__c returned by Meetmax — full traceability for the ops team at a glance.Five Phases That Took From Manual Data Chaos to a Fully Automated Registration Pipeline
Mapped All Four Registration Paths Before Writing a Line of Code
We analysed the complete form submission journey for each registration type — Delegate, Sponsor, Board Event, and Additional Attendee — documenting exactly which Salesforce objects each form needed to create and how they differed. This mapping identified the three Opportunity scenarios (Prefill, Unique Code, New) and the edge cases — same-address flags, parent-company reuse, TBA placeholders — that would break a generic integration.
Designed a Configuration-First Architecture with Zero Hardcoded Values
We built the entire integration around custom settings — Form_Entry_To_Account_Mapping__c for field mappings, Salesforce_to_Meetmax__c for sync config, and Meetmax__c for encrypted API credentials — so every value is editable through Salesforce Setup. Custom Labels store Meetmax role IDs and Salesforce stage names, and Trigger_Control__c provides a two-checkbox master kill switch to pause all processing without a deployment.
Built FormEntryTrigger — Routes Every Submission to the Right Processing Path
We built FormEntryTrigger as the routing layer — on every Form_Entry__c insert it reads the record type and dispatches to the correct processing class: DelegateProcessor, SponsorProcessor, BoardEventProcessor, or AdditionalAttendeeProcessor. Each processor creates Account, Contact, and Opportunity records using the configurable field mappings, handles the three Opportunity match scenarios, and applies TBA/TBD blocking before attempting Contact or Attendee creation.
Built AttendeeTrigger — Real-Time OAuth Sync to Meetmax REST API
We built AttendeeTrigger as an after-insert trigger on the Attendee__c object that fires immediately after each Attendee record is created. It retrieves OAuth credentials from the encrypted Meetmax__c custom setting, constructs the REST API payload with the correct Meetmax role ID (Employee for Delegates, Board Member for Board Events), posts to the Meetmax endpoint, and writes the returned Attendee_ID_Meetmax__c and Sync_Status__c back to the record — creating a full audit trail for every sync attempt.
Added Edge-Case Handling and Operational Controls for Production Readiness
We hardened the integration against the edge cases that break event operations at scale: composite-key deduplication blocks duplicate Attendees before they're created, a Before Insert trigger copies billing address automatically for Board Event same-address registrations, Additional Attendee processing reuses the parent company Account rather than creating duplicates, and the Trigger_Control__c kill switch lets the ops team pause either trigger independently — all without touching code.
The operations team was rebuilding attendee lists by hand before every event — cross-referencing form submissions, Salesforce, and Meetmax manually. Now the data flows automatically: a registration comes in, Salesforce has the record, Meetmax has the attendee. The team doesn't touch it.
— Twopir Integration Lead · US Event Management Platform · 2024What Changed — In Numbers and in Practice
One integration handles four distinct registration types end-to-end
Delegate, Sponsor, Board Event, and Additional Attendee forms each follow a separate, correctly configured processing path — no form type is forced through a generic handler that creates wrong or missing records.
Attendees reach Meetmax the moment they register
The AttendeeTrigger fires on Attendee insert and pushes data to Meetmax via OAuth REST API immediately — event scheduling and meeting management in Meetmax are never waiting on a manual export.
Composite-key deduplication prevents conflicting Attendee records
Every Attendee creation is checked against Main Registration + Opportunity Name + First Name + Last Name before it's written — duplicate records that previously required manual cleanup no longer make it into the system.
Every sync attempt is logged against the Attendee record
Sync_Status__c (Success/Failed) and Attendee_ID_Meetmax__c are written back to every Attendee record — the operations team can see exactly which attendees synced, which failed, and what Meetmax ID was assigned.
Configuration changes require no code deployment
Role IDs, stage names, field mappings, and API credentials are all managed through Salesforce Custom Settings and Labels — admins update values in Setup without raising a developer ticket or deploying to production.
Operations team can pause either trigger in under 30 seconds
Trigger_Control__c provides two independent checkboxes — isActive__c and Attendee_Trigger__c — giving the ops team a safe, immediate way to pause processing during data migrations or maintenance windows without touching code.
Running a Similar Event Management Operation?
If your team is manually moving registration data between your CRM and attendee platform, we can fix that. We'll audit your current registration flow and deliver a clear integration architecture — in 5 business days, no commitment required. Twopir works with event platforms across the US, UK, and Australia with EST, GMT, and AEST coverage.
The Tools and Techniques Behind This Engagement
Related Case Studies
Stop rebuilding data by hand. Automate the whole flow.
Twopir has spent 12+ years building Salesforce integrations for 500+ clients across the US, UK, Australia, UAE, and Canada — and we've seen every variation of the manual-data-entry problem. We know how to eliminate it. Let us show you.
12+ Years · 500+ Clients · Salesforce Partner · HubSpot Partner · US · Canada · UK · UAE · Australia · New Zealand
