Sync registrations and check-ins to Salesforce leads, contacts, and campaigns.
Sync your event registrations and check-ins straight into Salesforce. Every attendee shows up as a Lead or Contact with activity on their timeline, and you can roll the whole event up to a Salesforce Campaign for ROI reporting.
When someone registers for one of your events, Eventship writes the following to your Salesforce org:
LeadSource = Eventship.Registered: {Event Title}.Sent).When the attendee checks in at your event, we add a second Checked-in: {Event Title} Task to their timeline and update their CampaignMember to the attended status you chose (Salesforce's universal default is Responded).
This means anyone on your sales or marketing team can open a Lead in Salesforce and see exactly which events that person has registered for and attended — directly inside Salesforce, no context-switching needed.
Eventship syncs through Salesforce's REST API, which Salesforce only enables on certain editions. Check which edition you're on under Setup → Company Information → Organization Edition before you start.
| Salesforce edition | Works with Eventship? |
|---|---|
| Enterprise, Unlimited, Performance | Yes |
| Developer Edition (free) | Yes — great for testing |
| Professional Edition | Only with the paid API add-on from Salesforce |
| Starter Suite, Pro Suite, Essentials, Group | No — these editions don't expose the API |
If you're on Starter Suite, Pro Suite, Essentials, or Group, the integration won't work no matter what you configure on the Salesforce side — those editions don't expose programmatic access at any tier. You'd need to upgrade to Professional (with the API add-on) or Enterprise before connecting.
If you're on Professional and unsure whether your org has the API add-on, the fastest check is to try connecting. If your org doesn't have it, sync attempts will fail with API_DISABLED_FOR_ORG and you can contact your Salesforce account executive to add it.
Connecting is a two-step process: a one-time package install in your Salesforce org, then the OAuth connection from Eventship. We walk you through both when you click Connect.
Eventship ships as a Salesforce-managed package. A Salesforce admin needs to install it once per org before anyone in that org can OAuth-connect from Eventship. Once installed, every host on Eventship pointing at that same org can connect without repeating this step.
Connecting a sandbox? Eventship currently connects to production Salesforce orgs only. If you need to test the integration in a sandbox before going live, email [email protected] and we'll set you up.
The connection is at the host level, not per-event. Once connected, every future registration and check-in for that host's events syncs automatically.
If you manage multiple hosts on Eventship, each one connects separately — they can point to the same Salesforce org or to different orgs. Each host only needs to do Step 2 (the package only has to be installed once per Salesforce org).
Lead, Contact, Task, and Campaign (and CampaignMember if you want to use Campaigns)The user installing the package and the user completing the OAuth don't have to be the same person. A common pattern is: Salesforce admin installs the package, then a marketing/RevOps user does the OAuth so the integration acts as them.
The base sync (Lead/Contact + Task) runs automatically with no extra setup. To roll an event up to a Salesforce Campaign, link the Campaign from inside the event:
701 and is 15 or 18 characters long) and click ValidateCampaignMember.Status is a per-campaign restricted picklist, so the value has to match one already configured in SalesforceIf you haven't customized CampaignMember statuses on your campaigns, the universal Salesforce defaults Sent (registered) and Responded (attended) are always available and will be selected for you. Once linked, every confirmed registration on the event gets a CampaignMember record at the registered status, and check-ins promote that record to the attended status.
In Salesforce, open the Campaign you want to use. The Campaign Id is in the URL:
https://your-org.lightning.force.com/lightning/r/Campaign/701XXXXXXXXXXXXXXX/view
^^^^^^^^^^^^^^^^^^
this is the Campaign IdOr in Classic, click View Campaign Detail and copy the Id from the URL.
When you add a Campaign Id to an event that already has registrations, Eventship automatically backfills the previous attendees into the Campaign. Each registration is processed individually so a single failure doesn't block the rest.
Once a campaign is linked, the Campaign Id is locked — you can update the registered/attended status mappings, but you can't swap the Id directly. Swapping would orphan the CampaignMember rows already written to the original campaign and break the per-campaign status mappings. To point an event at a different campaign, Unlink first (which stops future writes but leaves already-synced records in Salesforce as-is), then link the new Campaign Id.
Once a campaign is linked, the Salesforce sub-drawer (Manage → Sync → Salesforce) shows live sync stats for that event:
If a sync fails — for example, because of a Salesforce duplicate rule that needs manual review, or because a required field is missing on Lead — you can click Retry on the failed row to re-queue it. Most failures are transient and clear up on their own; the retry button is there for the cases that don't.
Disconnecting stops all future syncing for that host's events. To disconnect:
Eventship revokes its refresh token at Salesforce and deletes the stored credentials. Records that were already synced remain in Salesforce — disconnecting only stops future writes. Reconnecting later picks up where you left off.
You can also revoke access from inside Salesforce: go to Setup → External Client App OAuth Usage and revoke Eventship from the list. The next time we try to sync, the call will fail and the integration will show as disconnected on Eventship. Revoking OAuth access doesn't uninstall the package itself — to fully remove Eventship from Salesforce, also go to Setup → Installed Packages and uninstall the Eventship package.
"Salesforce integration is not configured on this environment." Salesforce isn't set up on your Eventship environment yet. Email [email protected].
"Invalid Campaign Id" when validating. The Id either isn't 15/18 characters starting with 701, or it doesn't exist in the Salesforce org you connected. Double-check you're copying the Id from the same org you connected to Eventship — Campaign Ids from a different org (for example, a sandbox you also have access to) won't resolve.
Registrations show as failed with "DUPLICATE_VALUE" or "DUPLICATES_DETECTED." Most duplicate-rule cases are handled automatically — for Block-mode Lead duplicate rules we fall back to the existing matched Lead or Contact, and for CampaignMember uniqueness collisions we recover the existing CampaignMember. If a sync still surfaces one of these errors, the rule didn't return a matched record we could fall back to. Resolve the duplicate in Salesforce, then click Retry on the failed row.
Registrations show as failed with `API_DISABLED_FOR_ORG`. Your Salesforce edition doesn't include REST API access. See Before you connect — supported Salesforce editions above. Starter Suite, Pro Suite, Essentials, and Group editions can't be made to work — they need an upgrade. Professional Edition needs the paid API add-on from your Salesforce account team. Enterprise / Unlimited / Performance / Developer should work out of the box; if you see this on one of those, double-check the connecting user's profile has API Enabled under System Permissions.
Sync stopped working out of nowhere. The most common cause is that the Salesforce user who connected the integration was deactivated or had their permissions changed. Reconnect with an active user who has API access.
"Eventship isn't installed in your Salesforce org yet" / `OAUTH_EC_APP_NOT_FOUND`. The Eventship package hasn't been installed in the Salesforce org you're trying to connect, or the install hasn't fully propagated yet. Open the install link from the Connect modal in a tab signed in as a Salesforce admin, complete the install, wait about a minute, then try Connect again. If you (or your admin) just installed it within the last few minutes, give Salesforce a few more minutes to propagate the OAuth registry — this can occasionally take 5–10 minutes after the install screen says "Install Complete".
The OAuth screen returned an "approval error" or wouldn't let me click Allow. In Setup → External Client Apps → Eventship → Policies, set Permitted Users to All users may self-authorize and try again. This is set automatically when the package is installed, but org policies can override it.
A Lead I expected to be a Contact got created as a Lead (or vice versa). Eventship trusts whatever Salesforce returns. If you have a duplicate rule that converts new Leads into existing Contacts on insert, the activity Task and CampaignMember will attach to the Contact, not a new Lead.
Email [email protected]. We can help you map your event flow into your Salesforce setup and troubleshoot any sync issues.
Let us know if this article answered your question.