This guide covers all the steps, permissions, and prerequisites required to integrate AI Email with Salesforce. Make sure to work from top to bottom. The order matters: editions and users first, then fields and permissions, then your enrollment source. A Salesforce Administrator should complete or oversee these steps.
Legend:
[Required] must be done for the integration to work.
[Recommended] strongly advised to avoid inaccurate enrollment or data gaps.
Which onboarding path applies to you
Two connection paths exist. Confirm yours before you start, because two phases differ between them.
ECA path (new customers onboarding September 2026 and forward): You connect through a Salesforce External Client App (ECA), the modern OAuth app type that replaces the legacy connected app. You authenticate with OAuth via the External Client App, you do not install a managed package, and the required custom fields are created directly once the integration user has Read and Edit access to the Lead, Contact, and Campaign Member objects. Skip the connected app refresh token step in Phase 2, and follow the ECA path in Phase 3.
Connected app path (customers onboarding before September 2026): You connect through the AI Email connected app and install the managed package. Follow every phase as written.
Everything else in this checklist (editions, users, permissions, enrollment source, mapping, and verification) applies to both paths.
Phase 1: Confirm prerequisites
[Required] Your Salesforce edition supports API access. Supported editions: Enterprise, Unlimited, Performance, or Professional. Professional requires the API access add on.
[Required] You are not on an edition without API access. Contact edition and Group edition do not support the integration.
[Required] You use the same CRM across the entire 6sense Platform and 6sense AI Email. You cannot mix CRMs.
[Required] You have a Salesforce account with Administrator permissions to configure the integration and set up the required fields.
Note: the integration authenticates using OAuth 2.0. Digital certificates are not used.
Phase 2: Decide on and prepare the integration user
The integration user is the Salesforce account that connects to AI Email. Salesforce recommends a dedicated API user for this.
[Recommended] Set up a separate API User in Salesforce to grant access, rather than using a personal admin login.
[Required] Confirm the connection limit. A single Salesforce user can be connected to at most 5 AI Email teams or connected applications at once. Count the AI Email teams plus any other applications already connected for that user and confirm the total is 5 or fewer. If it is already at 5, connect using a different Salesforce user.
[Required] Give the integration user these system permissions (via profile or the permission set built in Phase 4):
API Enabled or API Only User
Run Reports
View Reports in Public Folders
Access Activities, Edit Tasks, Edit Events
Customize Application (connected app path, to install the package and create the custom fields)
Set the refresh token policy (prevents disconnections)
ECA Path
Skip this section. You authenticate with OAuth through a Salesforce External Client App, not the legacy connected app, so the connected app refresh token policy does not apply.
[Recommended] In Salesforce Setup, go to Connected Apps OAuth Usage.
Find the Saleswhale or Conversational Email connected app and select Manage App Policies. If you see Install instead, click that first, then Manage App Policies.
Under Refresh Token Policy, select Refresh token is valid until revoked, then save.
Phase 3: Get the AI Email custom fields into Salesforce
AI Email needs a set of custom fields on Lead, Contact, and Campaign Member. How they get there depends on your onboarding path.
ECA path (September 2026 and forward)
You connect through a Salesforce External Client App, so there is no package to install. Net new AI Email customers must have Real Time Syncs turned on.
Connected app path (before September 2026)
The package creates the required custom fields. Do not create these fields by hand.
[Required] Install the consolidated Managed Package v2 from the Salesforce AppExchange. Customers who have not finished setup should use this single package.
Confirm these six fields exist after install:
sixsense_ce__status__c(Conversational Email Lead Status)sixsense_ce__last_synced_at__c(Last Synced Time)sixsense_ce__campaign_url__c(Campaign URL)sixsense_ce__campaign_name__c(Campaign Name)sixsense_ce__campaign_status__c(Campaign Status)sixsense_ce__campaign_creator__c(Campaign Creator)When prompted, choose Install for All Users.
[Recommended] Add the six fields to your Lead and Contact page layouts so they are visible. Go to Salesforce Setup, then Lead or Contact, then Page Layout, search for the 6sense fields, drag them onto the layout, and save.
For a sandbox install: on the AppExchange listing select Try It, choose Sandbox or Other Org, continue to installation, log in and install into the sandbox, choose the user access level, and install.
Phase 4: Build and assign a permission set
Use one permission set for the integration user. This is the cleanest way to grant every object, field, and system permission the integration needs.
Create the permission set
[Required] In Salesforce, go to Setup, then Users > Permission Sets, and select New.
Enter a label and description. Keep the License as None. Save.
Object and field permissions
[Required, Recommended View All Fields] In the permission set Object Settings, for each object used in your enrollment sources (Accounts, Contacts, Leads, Campaigns, Campaign Members, Opportunities) enable Read and View All Fields. Without View All Fields, enrollment can be inaccurate because Salesforce can silently ignore filters the user cannot see.
[Required] Lead and Contact objects: Read and Edit. AI Email primarily works with leads and contacts.
[Required] Account object: Read. Needed when importing accounts.
[Required for campaign sync] Campaign and Campaign Member objects: Read and Edit. Campaign sync uses a Salesforce Campaign as an enrollment source and writes AI Email status back to the campaign member for ROI reporting. Also enable Read Access to all Campaign Member fields, including any added later.
[Required] Mapped fields (Lead, Contact, Account): Read. Needed to pull values for any fields you map.
[Required] Lead and Contact Owner field: Read and Edit. Needed for the lead owner sync.
[Required] Lead and Contact CE custom fields (the six package fields): Read and Edit. Needed for normal operation.
System permission for verification
[Required] In the permission set, scroll to System Permissions, select Edit, and check View Setup and Configuration. This lets AI Email verify the integration user's access. It automatically enables View Roles and Hierarchy. Save.
Assign the permission set
[Required] Go to Setup, then Users > Users, open the integration user, and in Permission Set Assignments select Edit Assignments.
Move your new permission set from Available to Enabled. Save.
Wait about 15 minutes for Salesforce to apply the permissions and for AI Email to recognize them.
Phase 5: Permissions for optional features
Set these only if you want the related feature.
[For email and task sync]
Task object: Read and Edit.
Task fields: Edit access to WhoID, Subject, ActivityDate, Status, Priority, Description, TaskSubtype.
The Task Type picklist must be visible and accept the value Email. Without this, email activity sync fails.
[For Do Not Contact sync]
Lead and Contact DNC synced field: Read and Edit.
Your DNC field in Salesforce must be a boolean field, and it must be mapped to the DNC field in AI Email.
Phase 6: Recommended data hygiene settings
[Recommended] Turn on field history tracking for the Lead, Contact, and Campaign Member objects. On leads and contacts this tracks the AI Email Status field; on campaign members it tracks the native Status field that campaign sync writes back to. This gives you an audit trail of status changes. Field history is viewable in Lightning Experience; use Salesforce Classic if your org predates the Summer 17 release.
[Required for net new customers] Real time syncs.
Phase 7: Set up your enrollment source
AI Email enrolls contacts from one of two sources: a Salesforce report, or a Salesforce Campaign. Set up whichever you plan to use before you connect it to an AI Email campaign.
Option A: Salesforce report
[Required] Create a report using one of the supported report types:
Leads
Contacts and Accounts
Campaigns with Leads
Campaigns with Contacts
Leads and Opportunities (custom report type)
Contacts and Opportunities (custom report type)
[Required] Use a supported report format: tabular, summary, or matrix.
[Required] Keep the report to 19 or fewer filters.
[Required] Make sure the report is not already linked to another campaign. Each report connects to only one AI Email campaign.
[Required] Confirm the integration user has access to all filters in the report.
Note: Leads with Converted Opportunities is not a supported report type. Import the corresponding Contact records instead of converted leads.
Note: Salesforce cannot pull custom data objects (CDOs) into the report builder for these report types.
Note: to create a custom report type, go to Setup, then Report Types, then New Custom Report Type, pick Lead or Contact as the primary object and Opportunity as the child object, then save.
Option B: Salesforce Campaign
[Required] Have a Salesforce Campaign with the campaign members you want AI Email to enroll.
[Required] Grant the integration user Read and Edit on the Campaign and Campaign Member objects (set in Phase 4). Campaign sync uses the Salesforce Campaign as the enrollment source and writes AI Email status back to the campaign member for ROI reporting.
[Recommended] Enable View All Fields on the Campaign and Campaign Member objects and Read Access on all Campaign Member fields so enrollment stays accurate.
For either source
Reminder: you choose the enrollment source before the campaign launches, and you cannot swap it for a different source after launch. For a report source, you can still update the filters inside the same report and those changes affect enrollment.
Phase 8: Field mapping to prepare for
Mapping happens in AI Email, but plan these Salesforce fields ahead of time so the values exist.
Default fields mapped for you: Id, First Name, Email, Account Name, Account Id.
[Recommended] Have these fields populated so you can map them for personalization: Last Name, Account name, Company name, Job Title, Lead Owner Email.
[For lead owner routing] Decide how the lead owner is set. If you use a custom owner field (for example an SDR owner field), you will map it to the AI Email lead owner. A lookup field that returns the user email is recommended over a plain email field.
Important: AI Email pulls Salesforce field values only on the first import. Later changes to those Salesforce records do not sync back into AI Email for records already imported.
Phase 9: Connect and verify
In AI Email, go to Integrations, select the Salesforce tile, and connect using OAuth with the integration user credentials.
Complete field mapping. On the connected app path, install the package from within AI Email if prompted. On the ECA path there is no package to install.
In AI Email, go to Integrations > Salesforce > Settings > Set permissions for Salesforce objects, and select Verify permissions.
Confirm every object shows a green check. A yellow warning means a permission is still missing on that object.
Master permissions reference
Permission | Type | Why it is needed | Level |
|---|---|---|---|
API Enabled or API Only User | System | Enables API access for AI Email | Required |
Run Reports | System | AI Email uses reports to choose leads | Required |
View Reports in Public Folders | System | Choose a report to enroll from | Required |
Customize Application | System | Install package and create custom fields | Required |
Access Activities, Edit Tasks, Edit Events | System | Activity and task functionality | Required |
View Setup and Configuration | System | Lets AI Email verify permissions | Required |
Lead and Contact: Read, Edit, View All Fields | Object | Core object AI Email works with | Required, View All Fields recommended |
Account: Read, View All Fields | Object | Importing accounts | Required, View All Fields recommended |
Campaigns: Read, Edit, View All Fields | Object | Enrollment accuracy and campaign sync writeback | Read and Edit required for campaign sync, View All Fields recommended |
Opportunities: Read, View All Fields | Object | Report enrollment accuracy | Recommended |
Campaign Members: Read Access to all fields, Edit to all fields | Object | Enrollment and campaign sync status writeback | Read required, Edit required for campaign sync |
Lead, Contact, Account mapped fields: Read | Field | Pull mapped field values | Required |
Lead and Contact Owner field: Read, Edit | Field | Lead owner sync | Required for owner sync |
Lead and Contact CE custom fields: Read, Edit | Field | Normal operation | Required |
Task: Read, Edit | Object, Field | Create tasks per email | For email or task sync |
Task fields: Edit (WhoID, Subject, ActivityDate, Status, Priority, Description, TaskSubtype) | Field | Task data | For email or task sync |
Lead and Contact DNC synced field: Read, Edit | Field | DNC sync | For DNC sync |
Good to know before you scale
Storage: budget roughly 1KB per email synced to Salesforce. Example: 3000 contacts in a campaign with 4 emails is about 12MB.
API volume: each active campaign with a linked report makes roughly 200 API calls per day to check for new leads, plus calls for each import, each email activity, and each status update.
If your account runs out of monthly quota, AI Email queues the report leads and restarts conversations when quota resets.