Plans and permissions:
- Connect the Salesforce integration: Admin role, or a custom role with Configure third-party integrations set to Can configure third-party integrations
- Add people and their Salesforce IDs: Admin or Manager role, or a custom role with Manage team set to Create, edit, or delete any person or Create, edit, or delete certain people
- Set up queues for Salesforce cases: Admin role, or a custom role with Queue configuration set to Can configure queues
- Map Salesforce agent states: Admin role
- Connecting also needs a Salesforce admin, or a dedicated Salesforce integration user with the access described below.
- To map agent states, a custom role needs the Admin base role.
Use the Salesforce integration to bring your Salesforce Service Cloud cases and presence statuses into Assembled, so you can forecast volume, staff for it, and track adherence. This article covers the Salesforce Service Cloud integration only. To show team members their schedule inside Salesforce, see Assembled App for Salesforce Service Cloud. For Copilot in Salesforce, see Copilot for Salesforce Service Cloud.
To connect it, go to Configure > Third-party integrations.
How the Salesforce integration works
- Assembled connects to Salesforce with OAuth and reads data through the Salesforce API, as the Salesforce user who connects it. If that user loses access, the integration stops syncing.
- By default, Assembled uses up to 10,000 Salesforce API calls in each 24-hour period. To raise or lower this, contact our team.
- Salesforce gives each org a daily API allowance, based on its edition and licenses, that every integration connected to your org shares. Keep your other integrations in mind when you plan your limits.
- Assembled syncs new and updated cases about every 5 minutes, and agent states about every 30 seconds.
- Depending on your setup, Assembled also syncs case histories, live chat transcripts, messaging sessions, voice calls, custom work items, and pending service routing records. The Salesforce card lists a sync row for each.
- Each case’s channel comes from its Origin field. See How Salesforce data maps to Assembled.
- Assembled can be set up to ignore specific fields on the objects it reads. To set this up, contact our team.
Prepare Salesforce
Work with your Salesforce admin before you connect. These settings are in Salesforce, so their names can change when Salesforce updates its setup pages.
- Use a dedicated integration user. We recommend a dedicated Salesforce integration user rather than a person’s admin account, so the integration doesn’t break when someone leaves. Give it the Salesforce API Integration license.
- Give it access to the objects Assembled reads: Case, CaseHistory, AgentWork, LiveChatTranscript or MessagingSession, UserServicePresence, and User. If the user can’t read them, the first sync can fail.
- Give it these permissions at least: API Enabled, View All on Case records, and read access to LiveChatTranscript, UserServicePresence, and User records.
- For agent states, turn on Omni-Channel and set up presence statuses: see Salesforce’s guides to creating and configuring them.
Connect Salesforce
- Go to Configure > Third-party integrations and select Available.
- On the Salesforce card, select Connect integration.
- Sign in to Salesforce as your integration user or admin, and approve access for Assembled.
When you’re back in Assembled, the Salesforce card is under In use with a Connected tag, and shows Backfill in progress while Assembled brings in your history.
Check that your Salesforce data is coming in
- On Configure > Third-party integrations, check that each row on the Salesforce card, such as Cases sync and Agent states sync, is green. If a row is red, hover over it to see the error.
- Go to Monitor > Real-time agent analysis. To see only team members from Salesforce, select Add filter and choose Source: Salesforce. Check that their states match Salesforce.
- Go to Schedule > Staffing timeline, choose a channel in Channels, and select the volume tab above the chart, such as New and reopened cases. Actual volume should follow your Salesforce case volume.
If a sync row is red:
- An error such as 401 or 403 usually means the Salesforce user lost access, for example because they left or their permissions changed. Reconnect the integration as a user with the access above.
- An error that mentions UserServicePresence means Assembled can’t read agent states. Check that Omni-Channel is on and that you use presence statuses. If you track team members’ status with a custom object instead, contact our team.
- An error about API limits means your Salesforce org is running low on API calls. Contact our team to adjust the integration’s limits.
If data is missing even though the rows are green, see Missing or incomplete integration data.
Add people and their Salesforce IDs
Add your team on Manage team > People management, with Add people: one at a time with Add manually, in bulk with Import from CSV file, or through the API. See People management.
For agent states to work, each person needs their Salesforce user ID in Assembled:
- Go to Manage team > People management and open the person.
- In the Salesforce ID field, enter the person’s 18-character Salesforce user ID.
- Save your changes.
Important: Use the 18-character ID, not the 15-character ID that Salesforce shows in some places. With the 15-character ID, Assembled can’t match the person’s presence statuses, so their agent states don’t come through.
Set up queues for Salesforce cases
Go to Configure > Queues and exclusions and add queues with rules for the Salesforce platform. For the steps, see Queues and exclusions.
Salesforce queue rules can use case properties such as Origin, Owner ID, Status, Is Deleted, and Record Type ID. Depending on your Omni-Channel setup, you might also see properties such as queue and skill IDs. To use a case property that isn’t listed, contact our team.
Set up agent states for Salesforce
Assembled gets agent states from Salesforce’s UserServicePresence records, so you need Omni-Channel and presence statuses (see Prepare Salesforce), and each person’s Salesforce ID.
- Go to Configure > Agent states.
- On the Mappings tab, use the Platform filter to choose Salesforce.
- Select Edit agent state mappings and match each presence status to your events.
For more, see Agent state mappings.
How Salesforce data maps to Assembled
Channels
| Case Origin | Assembled channel |
|---|---|
| Email, Web | |
| Phone | Phone |
| Chat | Chat |
- Assembled matches the whole Origin value, ignoring capitals.
- By default, cases with any other Origin value, or none, aren’t brought into Assembled. If your cases use other origin values, contact our team to map them.
- For cases that span several channels, Assembled uses the channel of the first message.
First response time
For cases, first response time is measured from the case’s start, such as its CreatedDate for email or the start of the call or chat, to its first response. For live chat transcripts, it’s the time from CreatedDate to StartTime. Service level is measured against first response time. If you record first responses in a different Salesforce field, contact our team.
Case status
| Salesforce case status | Assembled status |
|---|---|
| New | New |
| Open | Open |
| Pending | Pending |
| Solved | Solved |
| Closed | Closed |
| On Hold | Hold |
| Any other value, or none | Empty |
We recommend using only the statuses above, because they’re the ones Assembled maps by default. If you use other statuses, contact our team to map them.
Live chat transcript status
| Salesforce chat status | Assembled status |
|---|---|
| Completed | Solved |
| InProgress | Open |
| Waiting | Pending |
| Missed | Closed |
| Dropped | Closed |
| Blocked | Closed |