How to set up the Salesforce Integration
You can set up Salesforce Integration from the Dashboard Integration page.
The first step for Salesforce integration is to authorize Salesforce access.
Enter your Salesforce subdomain.
Not sure of your Salesforce subdomain?
If your Salesforce URL is https://gradual-dev-ed.develop.my.salesforce.com, your subdomain is gradual-dev-ed.develop
3. Once entered, you will be redirected to Salesforce to authorize Gradual's access.
4. Once authorized, you will be redirected back to Gradual to set up the object mappings.
If connecting Gradual to a Salesforce sandbox, please ensure the "This is a sandbox organization" box is checked. This will ensure the appropriate data format is used when sending data to your Salesforce org.
How to map Gradual data to Standard Salesforce Objects
From the Object Mapping setup page, you can easily set up the Gradual object to the Standard Salesforce Object mapping.
Currently, Gradual supports mapping:
Gradual Members --> Salesforce Contacts OR Leads
Gradual Events --> Salesforce Campaigns
Gradual Event Attendees --> Salesforce Campaign Members
Gradual Member Mapping
You can choose to map members to either Leads or Contacts in Salesforce. Choose which field you want to use to match objects. We recommend using email for this mapping as it is most common. However, you can map based on another field like Gradual UserId, but note that you will need to ensure that an appropriate corresponding field exists on the Salesforce record like "Gradual UserId" and that data will need to be backfilled into your Salesforce org for existing users for the match to be successful.
If we do not find a matching record based on the matching criteria, you can choose to create a new record.
If Gradual creates the record, you can also use field mappings to send fixed values to Salesforce fields in the Members mapping section. For example, you may choose to map Lead Source to a constant value instead of relying only on a Gradual field.
Once configured you can set up field mappings for the remaining available Gradual user fields:
Use a constant value in member field mappings
In the Members data mapping section, you can map a constant value to a Salesforce field instead of a default Gradual field.
To do this:
Click Add a field in the Members mapping section.
In the Gradual field dropdown, select Set a constant value.
Enter the value you want Gradual to send to Salesforce.
Select the Salesforce field you want to map that value to.
Save your changes.
This is helpful when you want Gradual to always send the same data to Salesforce for a specific field, such as setting Lead Source to Community Event and Lead Source Detail to 'Gradual' or a specific event.
A few important notes about constant values:
Constant values can only be used for mappings going from Gradual to Salesforce.
You can configure up to 5 constant value mappings.
Values can be up to 255 characters long.
Constant values can be used with any supported Salesforce field shown in the Salesforce field selector.
If the selected Salesforce field is a picklist field, the value must exactly match one of the accepted Salesforce options in Salesforce. If it does not, Gradual will block the save and show an error.
Number, date, and boolean Salesforce fields are not supported for constant value mapping in this version.
For each field you can decide if you want Gradual to update the data or just reference based on the Update Policy.
Always Update: This option updates your Salesforce data field when your mapped field in Gradual is updated.
Lookup: This option will only update the mapped field in Salesforce if it is empty.
Data Mapped from Gradual Users to Salesforce Contacts or Leads:
First Name
Last Name
Title
Company
Gradual UserId
Country
State
City
MemberType (Guest, Standard, Limited Approval)
Approval Status (approved, pending, unapproved)
Spaces
Clubs
Joined At (date user activated or first logged in)
Last Login At (date of last login)
Onboarding At (date of profile completion)
Sign Up At (date of user creation)
You can also sync onboarding question responses from Gradual to Salesforce.
Onboarding Question Sync
Onboarding questions sync to a single custom field on the Salesforce Contact object: GradualOnboardingQuestion__c. This field stores onboarding question and answer pairs as JSON.
Before enabling this sync, create the GradualOnboardingQuestion__c custom field in Salesforce. When onboarding question sync is enabled for the first time, Gradual will display a confirmation message reminding you to create this field first.
Supported answer formats include:
Single select, single line text, paragraph, location, and URL answers sync as strings
Multi-select answers sync as an array of strings
If an onboarding question is deleted in Gradual, that question will be removed from the JSON on the next sync for that member update.
Bidirectional Sync
You are able to set up member profile data to sync one way or both ways with Salesforce. Select the appropriate arrows to have data sync from Gradual to Salesforce, from Salesforce to Gradual, or in both directions.
For onboarding question sync:
Gradual → Salesforce is the default. Sync runs when a member completes onboarding or updates an onboarding question in their profile. Changes made directly in Salesforce are ignored, and the next Gradual update will overwrite the Salesforce value.
Salesforce → Gradual syncs changes made directly in Salesforce, including updates made manually or through Salesforce automation. Gradual changes are ignored while this direction is selected. Syncing onboarding question answers from Salesforce does not automatically mark a member as onboarded in Gradual. If a member has not completed onboarding directly in Gradual, they will still see the “Complete your onboarding” prompt when they log in.
Bi-directional syncs onboarding question data both ways. If there is a conflict, the selected source of truth determines which system overwrites the other.
Conflict resolution options for onboarding question sync are:
Last Write Wins: the most recently updated value replaces the previous JSON value
Gradual Wins: Gradual overwrites Salesforce
Salesforce Wins: Salesforce overwrites Gradual
Constant value mappings are only supported for one-way sync from Gradual to Salesforce.
Gradual Event Campaign Mapping
Gradual will create new SFDC campaigns and map the registrants for that event as campaign members. The mapping is set up similarly to the member mapping.
First, choose which field you want to use to match objects. If your event names may change or you have a specific syntax you use for campaign names in SFDC, we recommend using the Gradual EventID as your matching value. You'll need to create a matching field on your Campaign record in Salesforce called Gradual EventID. This will ensure that even if the event name changes in Gradual or the campaign name changes in Salesforce, the link will remain and not be broken.
Then you can choose what other data you wish to map to the SFDC campaign.
Data Mapped from Gradual Events to Salesforce Campaigns:
Gradual EventId
Title
Start Time
End Time
Type
IsPublished
Description
if the "Map event attendee to Campaign Member" option is selected. Users who register for events will be mapped as campaign members.
To map attendee status to Salesforce Campaign Members, create a custom field in Salesforce named GradualAttendeeStatus__c. Gradual will use this field to sync whether a member registered for or attended an event.
Gradual Activities Custom Object
We also support syncing all Gradual activities to Salesforce custom objects.
Regardless of the method used to create the Gradual Activity object, we will sync the following data to that object:
Below are the events that Gradual will sync to the new Gradual Activity custom object in Salesforce once the GradualActivity sync is enabled.
UserCreated
UserOnboarding
UserApprovalChange
UserProfileUpdate
UserTypeChange
UserAddedToSpace
UserRemovedFromSpace
UserJoinedClub
UserLeftClub
UserJoinedWaitlist
EventRegistration
EventRegistrationCancel
EventAttend
EventCheckIn
EventUnCheckIn
NewEventPublished
There are two methods to create and connect the Gradual Activity custom object.
Installed Package
The first is using our installed package available via here.
This will install the custom object as an app in your SFDC org. Based on whether or not you've selected mapping members to leads or contacts will determine whether the Gradual Activity custom object is related to the lead or contact.
Manually Create a Custom Object
The other method is to create the custom object manually using the instructions below.
In order to enable this mapping, you first need to set up a custom object in Salesforce.
Please name the object GradualActivity and do not change the default API name, which should be GradualActivity__c.
Once the custom object is created, please add the fields exactly as shown in the below image:
Enabling Activity Sync
Once the Gradual Activity Object is created via either method above, you can enable the GradualActivity mapping in the dashboard and we will sync data from Gradual to Salesforce periodically(Every 10 minutes).
Use Forum Posts to Create Salesforce Case
You have the ability to sync forum posts to cases inside of Salesforce. Once enabled in the integration settings, admins and forum moderators will see the option to sync forum posts to salesforce in the post settings.
Below is the data that will sync over to the Salesforce Case
Post Title
Post Body
Member Email
Member First Name
Member Last Name
Status
Priority
Post URL
Post Created Date
Error Logs
The Salesforce integration includes an Error Logs page to help admins review connection, sync, and API limit issues.
The following error categories are included:
Connection Error
Sync Error
API Rate Limit
Examples of errors that may appear in this log include connection failures, Salesforce permission errors, source of truth conflicts, lookup policy skips, missing Salesforce fields or objects, field type mismatches, duplicate rule rejections, record lock errors, flow trigger failures, invalid onboarding question JSON, required field errors, and API rate limit pauses.
Considerations and Notes for Events
Only published events sync to Salesforce
Changes to the event, like event name changes, made after the event is published will not update within the campaign in Salesforce









