BoothMaven - Salesforce Integration API Documentation
Reference URL: https://www.boothmaven.com/integration/salesforce/
API Version: Salesforce REST API v60.0 (Spring β24 / Summer β24)
Supported Plans: **Essential ** & **Business ** (Not available on Capture)
Contact / Support: BoothMaven.com
Overview
BoothMaven connects event lead capture, badge scanning, and attendee interactions directly with Salesforce CRM in real time without batch imports or CSV files. Unlike conventional lead capture tools that push flat contact rows, BoothMaven integrates natively with the Salesforce Campaign Object:- One Campaign per Event: Auto-generated or linked when an event is configured in BoothMaven.
- One Campaign Member per Captured Lead: Holds event context, booth number, rep, capture method, lead score, and qualifying answers.
- Contact & Account Creation/Matching: Contacts matched by email; Accounts matched by company domain/name with Apollo.io company intelligence.
- Two-Way Meeting Sync (Business Plan): Meetings sync as Salesforce Tasks/Events; rep updates in Salesforce flow back to BoothMaven.
- Content Engagement Signals: Spec sheet, brochure, and pricing views sync as Tasks to trigger Salesforce Flows.
Table of Contents
- Authentication & Connection (OAuth 2.0)
- Data Model & Object Hierarchy
- API Endpoints & Integration Requests
- Field Mapping Specifications
- Deduplication & Conflict Handling
- Asynchronous Trigger Points & Execution Architecture
- Salesforce Flow Automation Triggers
1. Authentication & Connection (OAuth 2.0)
BoothMaven connects to Salesforce using OAuth 2.0 Web Server Flow (Authorization Code Grant).Base URLs
- Production Login:
https://login.salesforce.com - Sandbox Login:
https://test.salesforce.com - REST API Path:
https://{instance_url}/services/data/v60.0/
OAuth Endpoints
Required Scopes
api: Access and manage Salesforce data via REST API.refresh_token/offline_access: Allows background synchronization when user is not active.full/id: User identity and profile validation.
Token Refresh Payload (POST /services/oauth2/token)
Automatic Session Healing
If any Salesforce API call returns an HTTP401 Unauthorized with errorCode: INVALID_SESSION_ID, BoothMaven automatically refreshes the token and transparently replays the request.
2. Data Model & Object Hierarchy
3. API Endpoints & Integration Requests
3.1 Contact & Account Sync
Creates or updates a SalesforceContact. If company information is captured, it matches or creates an Account.
- Endpoint:
PATCH /services/data/v60.0/sobjects/Contact/{id}orPOST /services/data/v60.0/sobjects/Contact - Query Check:
GET /services/data/v60.0/query?q=SELECT+Id+FROM+Contact+WHERE+Email='{escapedEmail}'+LIMIT+1
Request Payload (Contact)
3.2 Campaign & Campaign Member Sync
Every BoothMaven event creates/updates a SalesforceCampaign and links the lead as a CampaignMember.
- Campaign Endpoint:
POST /services/data/v60.0/sobjects/Campaign - Campaign Member Endpoint:
POST /services/data/v60.0/sobjects/CampaignMember
Campaign Payload
Campaign Member Payload
3.3 Meeting & Activity Sync (Two-Way)
Syncs booth meetings as SalesforceEvent or Task records. When sales reps update the meeting status in Salesforce (Completed, Rescheduled, No-Show), the outcome syncs back to BoothMaven.
- Endpoint:
POST /services/data/v60.0/sobjects/Event - Update Endpoint:
PATCH /services/data/v60.0/sobjects/Event/{id} - Multi-Contact Link:
POST /services/data/v60.0/sobjects/EventRelation
Request Payload (Event)
EventRelation Payload (Multiple Contacts Link)
3.4 Voice & Text Notes Sync
Booth conversations, voice memo transcriptions, and rep text notes are attached directly to the Salesforce Contact:- Text Notes: Synced as standard Salesforce
Note(ParentId,Title,Body). - Audio Voice Notes: Uploaded as binary
ContentVersionrecords linked toContentDocumentLink.
Text Note Payload (POST /services/data/v60.0/sobjects/Note)
Audio Voice Note Payload (POST /services/data/v60.0/sobjects/ContentVersion)
3.5 Content Engagement Signals
When attendees view digital cards, download technical spec sheets, or view brochures after the show, BoothMaven creates aTask associated with the Contact.
Content Signal Task Payload (POST /services/data/v60.0/sobjects/Task)
4. Field Mapping Specifications
5. Deduplication & Conflict Handling
BoothMaven implements a multi-stage deduplication strategy to preserve CRM data integrity:- Email Address Matching: Before creating a Contact, a SOQL query checks
SELECT Id FROM Contact WHERE Email = '{email}' LIMIT 1. - Native Duplicate Rule Catching: If Salesforce throws a
DUPLICATES_DETECTEDerror, BoothMaven extracts the existing duplicate record ID from the error response and patches the existing Contact instead of failing. - βMet Againβ Visitor Logic: If a lead is captured at a second event, BoothMaven does not create a duplicate Contact; it links the existing Contact as a
CampaignMemberto the new Campaign and logs a βMet Againβ activity.
6. Asynchronous Trigger Points & Execution Architecture
To keep the BoothMaven mobile scanner instant (sub-second response even on spotty trade show Wi-Fi), all Salesforce API network calls are offloaded asynchronously using Laravelβs queue workers.Sync vs. Async Trigger Matrix
Job Dispatch Pipeline & Observers
Audit Trail & State Management (CrmLog)
Every asynchronous sync operation records its outcome in the database:
- Table:
bm_crm_logs - Fields:
provider(salesforce),model_type(contact,event,meeting,contact_note),model_id,parent_record_id(Salesforce ID),sync_status(success,failed), and error details. - Prevents redundant syncs and resolves parent-child relationships (e.g. attaching Notes to the correct Salesforce Contact ID).
7. Salesforce Flow Automation Triggers
Because BoothMaven maps each event capture to native Salesforce objects, RevOps and Admins can build automated Salesforce Flows without custom code:- New Contact Created β Trigger:
Contact.LeadSource = 'boothmaven'β Action: Create Opportunity, assign territory rep, alert via Chatter. - Hot Lead Score (Score β₯ 80) β Trigger:
BM_Lead_Score__c >= 80β Action: Immediately route to Senior AE and create high-priority follow-up Task within 2 hours. - Qualifying Budget Approved β Trigger:
BM_Qualification_Data__ccontains βBudget approved: Yesβ β Action: Create Opportunity in βEvaluatingβ stage. - Content Signal Task Created β Trigger:
Task.Subjectstarts withπ Content Signal:β Action: Notify account owner via Slack/email that lead is reviewing collateral post-event. - Two-Way Meeting Completed β Trigger:
Event.ShowAs = 'Busy'β Action: Advance Opportunity stage to βProposalβ and push completion outcome back to BoothMaven.

