Answers to common questions about Bevy's Salesforce integration, including sync direction, supported objects, and migration behavior.
Is the Salesforce sync bidirectional?
No. Phase 1 of the Salesforce integration supports a one-way sync from Bevy to Salesforce only. Bidirectional sync is not included in this release.
Which objects does Bevy sync to Salesforce?
Bevy syncs the following objects to Salesforce:
- Users — synced as Leads
- Attendees — synced as Leads
- Events — synced as Campaigns
- Chapters — synced as Campaigns
- Chapter Members — synced as Leads
I am on Salesforce Professional Edition. Do I need to migrate?
No. Customers on Salesforce Professional Edition remain on the native Salesforce integration. Bevy will communicate any changes to this exception separately. Do not migrate Professional Edition customers to the Integration Suite path unless otherwise directed.
Can the native Salesforce integration and the Integration Suite path run at the same time?
Yes. During the migration period, both integrations may coexist. Do not remove or disable the native Salesforce integration unless Bevy’s migration guidance explicitly instructs you to do so.
How often does data sync from Bevy to Salesforce?
Sync timing is approximately five minutes. Data is transmitted via the REST API.
What permissions does my Salesforce account need?
Your Salesforce account requires the Marketing User permission to support Campaign and CampaignMember syncs.
How do I know if the Tray Salesforce path is ready for my organization?
Contact your Customer Success Manager to confirm your migration status. Customer-facing Tray setup steps are published only after end-to-end verification is complete for your organization.
What permissions and access does Bevy need in Salesforce?
We will need standard read/write permissions for contacts, leads, campaigns and campaign members. If using the sandbox, this Salesforce user also requires access to the sandbox.
For both sandbox and production set up, this user must be marked as a Marketing User.
How does our system prepare Bevy data for Salesforce, particularly regarding data types, special objects, and specific Salesforce requirements?
Our system automates several key processes to ensure data sent to Salesforce is correctly formatted and aligned with its requirements:
- Dates and Times: Python datetime and date objects are automatically converted into ISO-formatted strings (e.g., "2025-09-22T10:30:00").
- Decimal Numbers: Decimal fields are converted into standard floating-point numbers.
- Empty Values: Any fields that are empty or have a None value are automatically removed to ensure data cleanliness.
- Name Length: Campaign names longer than 80 characters are truncated, with "..." added at the end.
- Campaign Types: Appropriate campaign type prefixes are added for "Events" and "Chapters."
These automated conversions and processing steps collectively prevent errors during synchronization and ensure a smooth integration with Salesforce.
Can the dates include date and time in Salesforce?
Not on the standard Campaign date fields. Salesforce's built-in Campaign Start Date and End Date are date-only fields — they store the calendar day but not the time of day. This is a Salesforce platform limitation, not a Bevy setting, so even though Bevy sends the full date and time, Salesforce keeps only the date. If you need the event's start/end time to appear in Salesforce, you can:
- Create custom Date/Time fields on your Campaign object in Salesforce (e.g. "Event Start Date/Time"), then
- Contact Bevy Support to map your event date/time to those custom fields.
Once mapped, the full date and time will sync to your custom fields, while the standard Start/End Date fields continue to hold the date.
Can I map Bevy fields to my own custom Salesforce fields?
Yes. The integration supports mapping Bevy event/chapter fields to custom Salesforce fields. There isn't a self-serve UI for this yet, so reach out to Bevy Support with the Salesforce field's API name and the Bevy field you'd like mapped.
Can I sync to contacts instead of leads?
We can support syncing to contact records. There might be a scenario where we try to create a contact where a lead already exists. If so, we won't sync the record.
Alternatively, we can support having a lookup for contact first, and then a lookup for lead, and finally creating a lead if none exists.
What volume of data do you estimate will be moving through the integration? How often is it updated?
Our current Salesforce integration syncs records individually. It does not process in bulk yet, but we have plans to introduce this. There is typically not enough data to send at one time for this to be a problem.
We sync this data approximately every 5 minutes.
If something goes wrong (for example, we hit an API limit request), it will retry in the future, and again and again over the next 2 days.
How is Bevy Salesforce data transmitted?
Using the Salesforce REST API.
How can I test the Salesforce integration?
Once you’ve configured all the admin settings, we can create a few test events and start triggering updates. If possible, we recommend using a Salesforce sandbox to test.
Can I see the field mappings between Salesforce and Bevy?
We currently do not have UI for this, and are working on it. For now, we set the mappings on our backend; you just need to provide us with the Salesforce fields. The mappings can be adjusted as you need.
Can I sync Ticket Type as part of my integration?
Yes, as part of a custom field mapping. You just provide us with the API field name that you would like the Ticket Type mapped to, and we will set it up.
What permissions/access will Bevy need in Salesforce?
We require a username and password with standard read/write permissions. If using the sandbox, you’ll need this Salesforce user to also have access to the sandbox. For both sandbox and production set up, you’ll need this user to be marked as a Marketing User, as well.
How frequently does data sync? Can I change the timing?
Bevy syncs data approximately every five minutes. At this time, this is the only frequency available.
What does Bevy do if a contact or lead is pushed, and you find two records with the same email address?
By default, Bevy does not sync these records, nor create the respective CampaignMember when pushing a chapter member or attendee. There is however an option for Bevy to use the last modified lead or contact record. You can enable this via the following setting:
When the Guest registration is enabled in the instance. How are the Contacts/Leads created? Would you require Salesforce to create a contact record?
When an anonymous user (no signup required), the way it would work is that the integration tries to find a Salesforce Contact/Lead based on the provided email address. If found, it's used, otherwise a new one is created and used. There is no special status for these kinds of registrations. The integration uses the same three statuses as with logged in attendees (Registered, Unregistered, and Attended).
Can I switch to a different Salesforce organization after the integration is already running?
Short answer: Not without updating the object mappings. Switching to a new Salesforce organization will require you to re-map the integrated objects.
How it works:
Bevy's Salesforce integration stores the Salesforce object ID for each linked object (Campaign, Lead, etc.) in the Bevy system. When you update a Bevy object, these stored IDs tell Bevy exactly which Salesforce record to sync the changes to.
Why switching organizations is problematic:
When you migrate to a new Salesforce organization, all object IDs change. If you don't update these IDs in Bevy, one of two things will happen:
- Updates will fail to sync entirely
- Updates will sync to incorrect Salesforce objects
What you need to do:
If you need to switch to a new Salesforce organization, contact our support team to help you:
- Re-link your Bevy objects to the corresponding objects in the new Salesforce organization
- Update the stored object IDs in Bevy to match the new organization's IDs
- Verify the mappings are correct before resuming syncs
Our support team can guide you through the process and ensure your integration is properly reconfigured.
Best practice: Plan your Salesforce organization setup carefully before integrating with Bevy to minimize the need for switches later.
Can I connect more than one Bevy instance to the same Salesforce organization?
No. This is not a supported configuration.
Each Bevy instance must be connected to its own Salesforce organization. If you run multiple Bevy instances and want all of them in Salesforce, contact Bevy Support before you begin setup so we can help you plan an approach.
Why isn't connecting multiple Bevy instances to one Salesforce org supported?
Because the two instances cannot see each other, and they will silently overwrite each other's data.
Bevy finds people in Salesforce by email address. When Bevy syncs a person, it searches your Salesforce org for a Contact with that email, then a Lead with that email, and uses the record it finds.
Each Bevy instance also keeps its own private record of which Salesforce records it has already created, stored inside that instance. One instance has no visibility into another instance's records.
Put together, this means a second Bevy instance connected to the same org will find records the first instance created and treat them as its own. The specific consequences are:
- Your data gets overwritten. If the same person exists in both instances, each instance updates the same Salesforce record with its own values. Names, company, and any custom mapped fields will be replaced by whichever instance synced most recently, over and over.
- Syncing can stop without warning. If both instances create a record for the same person at around the same time, your org ends up with two records sharing one email. Bevy treats that as an unresolvable conflict and stops syncing that person, with no error shown in your dashboard.
- You can't tell which community a record came from. Bevy does not write a community or instance identifier onto Salesforce records. Once two instances share an org, Leads, Campaigns, and Campaign Members from different communities are indistinguishable, and your campaign attribution and reporting will be wrong.
- Communities can see each other's members. A shared Lead accumulates Campaign Member records from both instances, so one community's members appear in the other community's campaign reporting.
- API limits are shared. Salesforce API request limits apply to the whole org. Two instances syncing into one org compete for the same daily budget, and a busy period in one community can cause sync failures in the other.
- Privacy requests can't be honored correctly. If a member asks to be deleted in one instance, the shared Salesforce record is still owned and actively updated by the other instance.
These effects compound over time, and untangling them requires manual cleanup inside Salesforce that Bevy Support cannot perform on your behalf.
I have multiple Bevy instances. How should I set up Salesforce?
Choose one of the following:
- A separate Salesforce organization per Bevy instance. This is the supported configuration and the only one we can troubleshoot.
- Connect one Bevy instance only. Leave the integration disabled on your other instances.
- Consolidate onto a single Bevy instance, if your communities can share one. Contact Bevy Support to discuss whether this fits your setup.
If none of these work for you, contact Bevy Support and describe your setup. We would rather help you plan around this than have you discover the data loss later.