Loading

Einstein Activity Capture (EAC): Calendar Events Not Syncing — Reassign Missing Permission Sets on Platform Integration User

Publish Date: Jun 1, 2026
Description
Einstein Activity Capture relies on a Platform Integration User in the org to perform background sync operations. When EAC is enabled, Salesforce automatically assigns two required permission sets to this user via an automated process:
  1. Einstein Activity Capture Sync C2C Integration User
  2. sfdc.activityplatform
If either of these permission sets is manually removed from the Platform Integration User — for example, by a System Administrator during a permission set audit or cleanup — EAC sync will silently stop working for all users in the org.
 
Important Notes:
  • These two permission sets are automatically assigned by Salesforce when EAC is first enabled. They should never be manually removed.
  • There is currently no system warning or error when these permission sets are removed — sync simply stops silently.


Symptoms:
  • Events created in Outlook or Google Calendar do not appear on Salesforce timelines or Activity feeds.

 

Resolution

If Einstein Activity Capture (EAC) events are not syncing, the most common cause is that one or both required permission sets have been removed from the Platform Integration User. The steps below walk through how to identify the Platform Integration User, verify which permission sets are missing, and reassign them using SOQL and Anonymous Apex.

Note: The Platform Integration User is a special system user that is not visible in Setup → Users for most admins. Use the SOQL + Apex workaround below to identify and fix the permission set assignment directly.

 

Step 1 — Identify the Platform Integration User via SOQL

Run the following query in Developer Console → Query Editor or Workbench to find the Platform Integration User's ID:
 
SELECT Id, Name, Profile.Name, IsActive FROM User WHERE Name = 'Platform Integration User' LIMIT 1
 
This query returns the Platform Integration User's Salesforce ID (a 15 or 18-character string starting with 005). 
 
Step 2 — Verify which permission sets are currently assigned

Run this query to check what is currently assigned to the Platform Integration User:
SELECT Id, PermissionSet.Name, PermissionSet.Label, Assignee.Name
FROM PermissionSetAssignment
WHERE Assignee.Name = 'Platform Integration User'
Confirm whether Einstein Activity Capture Sync C2C Integration User and sfdc.activityplatform are present. If either is missing, proceed to Step 3.
 
Step 3 — Identify the missing Permission Set ID

Run the following to get the ID of the missing permission set :
SELECT Id, Name, Label
FROM PermissionSet
WHERE Name = 'EinsteinActivityCaptureC2CIntegrationUser'
LIMIT 1

For sfdc.activityplatform:

SELECT Id, Name, Label
FROM PermissionSet
WHERE Label LIKE '%activityplatform%'
LIMIT 1

 

Step 4 — Assign the missing permission set via Anonymous Apex

Open Developer Console → Debug → Open Execute Anonymous Window and run:
// Step 1: Get the Platform Integration User
User piu = [SELECT Id FROM User WHERE Name = 'Platform Integration User' LIMIT 1];

// Step 2: Get the missing permission set
// Replace 'EinsteinActivityCaptureC2CIntegrationUser' with the correct API name from Step 3
PermissionSet ps = [SELECT Id FROM PermissionSet 
                    WHERE Name = 'EinsteinActivityCaptureC2CIntegrationUser' LIMIT 1];

// Step 3: Insert the assignment
insert new PermissionSetAssignment(AssigneeId = piu.Id, PermissionSetId = ps.Id);

System.debug('Permission set assigned successfully to: ' + piu.Id);

 

Repeat for sfdc.activityplatform if that is also missing.

Note : If EAC is not correctly set up on your org then these permission set might not be present on your org and therefore you will get following error - 

System.QueryException: List has no rows for assignment to SObject


Step 5 — Verify the assignment was successful

Re-run the verification query from Step 2 to confirm both permission sets now appear:

SELECT Id, PermissionSet.Name, PermissionSet.Label, Assignee.Name
FROM PermissionSetAssignment
WHERE Assignee.Name = 'Platform Integration User'



Step 6 — Validate

Create a test event in Outlook or Google Calendar and confirm it syncs to Salesforce within a few minutes.
If events still don't sync Ask affected users to disconnect and reconnect their email/calendar account. This refreshes service tokens and bindings.

Additional Resources

Connect Your Email and Calendar to Salesforce with Einstein Activity Capture or Inbox

https://help.salesforce.com/s/articleView?id=sales.aac_connect_additional_accounts.htm&type=5

Knowledge Article Number

005385766

 
Loading
Salesforce Help | Article