đ This feature is coming soon and not yet available to all users. Continue checking our Feature Releases collection to stay up-to-date!
Overview
Element451âs Salesforce integration makes it easy to connect your existing CRM with the powerful engagement and automation features of Element451. This native integration supports regular data syncs, giving your teams and AI Agents a consistent, up-to-date view of every student across both systems.
Whether youâre using Salesforce as your institutional system of record or combining data across tools, this connection ensures your workflows stay aligned without duplicating effort.
Key Features
Regular sync (every 15 minutes) between Salesforce and Element451
Map data between systems with flexible field-matching
Sync contacts and conversations
Choose which system is the âsource of truthâ for key fields
Easily configure and test your setup through a built-in interface
How It Works
The integration uses APIs to move data directly between Element451 and Salesforceâno middleware or plugins required. You control how data flows, which fields sync, and what values take priority.
Syncing + Field Mapping
You can sync two main data typesâContacts and Conversations. Any Element451 entity type can be mapped to any Salesforce object. You will be able to specify mapping when configuring the integration.
When mapping fields from Salesforce to Element451, you must select the key for each field, along with the key for the equivalent field in Element451.
Element ID and Salesforce ID are required.
Mapped fields must have a single value (string, integer, date, etc).
Repeater fields are not supported, but multi-select (checkbox) fields are.
Source of Truth
During setup, youâll choose a canonical systemâSalesforce or Element451. This setting defines which platform owns each field and, therefore, controls how data is written during sync. This setting is required for every mapped field. It works like this:
All fields are assigned an owner based on the system you select.
When a record is created in either platform, all available field values are written.
When a record is updated, only the fields owned by that system are updated.
Ownership is absoluteâvalues arenât compared or conditionally updated. For example, if Intended Major is âBusinessâ in Element451 and empty in Salesforce, but the field is Salesforce-owned, the empty Salesforce value will overwrite Element451 during sync.
Setting Up the Integration
Setting Up Your External Client App in Salesforce
Create an External Client App. This app should be exclusively used by Element451, but you can name it anything youâd like.
In the OAuth Settings, add the callback url: "https://api.451.io/clients/integrations/salesforce/oauth2"
Select the following OAuth scopes:
Manage user data via APIs (api)
Perform requests at any time (refresh_token, offline_access)
Find your "Consumer Key" and "Consumer Secret."
"Consumer Key" will be your Client ID
"Consumer Secret" will be your "Secret Key"
Enable these security settings:
Require secret for Refresh Token Flow
Enable Refresh Token Rotation
Refresh Token Policy
Salesforce offers several settings for refresh token expiration setting:
âRefresh token is valid until revokedâ
âExpire refresh token after specific timeâ
âExpire refresh token if not used for specific timeâ
You can choose any of these options. The only unsupported setting is âImmediately expire refresh tokenâ because Element451 must reuse the refresh token for multiple API calls during each sync.
Connecting Salesforce to Element451
Click on your avatar/profile picture in the top right corner of the orange navigation menu.
Navigate to Settings > Integrations.
From the left-hand menu, select CRM Integrations.
Select Salesforce.
đ Note: You can only sync one CRM at a time.
Configure the Connection Settings:
Salesforce URL
Client ID
Secret Key
Click 'Continue' in the top left corner.
Sign in to your Salesforce account, and you will be redirected back to Element.
Once connected, you can configure and sync. Navigate through the tabs (Sync Preferences, Mappings, Test) to configure the settings. We explain these settings below.
Conversation Sync Preferences
Sync Conversations: When enabled, we will export conversation data and the contacts associated with those Conversations from Element451 and push them to Salesforce.
âConversation Entity: Select the Salesforce object that corresponds to Conversations in Element451. â¨This is typically a custom entity or object.
Contact Sync Preferences
Contact syncing is enabled by default and cannot be turned off. Contacts will be continually synced automatically by the integration.
âContact Entity: Select the Salesforce object that corresponds to Contacts in Element451. â¨This is typically âContactâ but could be âOpportunityâ or even a custom object. â¨
âImport Mode: How Element451 should handle incoming contacts from Salesforce.
By default, we will âMatch Existingâ contacts.
Optionally, you can opt to âUpdate Existingâ or âCreate Newâ contacts.
â
Export Mode: How Element451 should attempt to update data in Salesforce.
By default, we will export every user related to the conversations being exported.
If export mode is set to âMatch Existing and Import New,â we will not attempt to update any existing users in Salesforce. But, if the user is not found in Salesforce, we will insert them with the complete set of fields, including Salesforce-owned fields.
If export mode includes âUpdate Existing and Import New,â we will:
Export all Element451-owned mapped fields to the Salesforce user
If that creates a new Salesforce user, we will export all the mapped fields with values to it, including the Salesforce-owned fields.
Mappings
Mappings determine which fields in Salesforce should be equivalent to certain fields in ElementâŻ451. Please note that we only support a specific set of fields. If you want to set up a custom mapping between Salesforce and ElementâŻ451, please use Import + Export or our API.
Adding Mappings
Mappings are categorized by: Contact and Conversation. To get started mapping a field:
Click the "+ Add Mapping" button under the respective category
Select a value for the Element451 Field and a value for the Salesforce Field
Select the Canonical System (either Element451 or Salesforce)
Save
Preview + Test
Preview the data mapped and test to verify that the mapping functions are correct and as expected.
Import and Export have individual tests:
Import: You can optionally input a Salesforce ID or Element451 user
Export: You can optionally input a Salesforce ID or Element451 user
You will be presented with a preview of the incoming and outgoing data.
You will see a status chip that will say "inserted," "updated." "unchanged," "ignored," "deactivated," "upserted," or "failed" to indicate what the result of the real run would be.
You can choose to "test" the process by actually importing the contact or exporting the selected user and their conversations.
Integration Logs
You can view the individual contact/conversation history in the Integration Logs from the left-hand menu on the Integrations page.
There will be a record of every failed or successful contact imported, contact exported, or conversation exported.
Failed operations can be retried by viewing the error log and clicking "Retry" in the top right corner. When you retry, the Integration Logs page will be reloaded and the new run will appear at the top.