How to connect Salesforce Service Cloud – Assembled
Assembled integrates with the Salesforce Service Cloud contact platform allowing your ticket data to be forecasted and tracked in our system. This article will walk through how to setup the integration and verify the data Assembled pulls in is correct.
Preparing Salesforce data for Assembled
Before you connect your Salesforce instance to Assembled, we recommend working with your team’s Salesforce administrator to ensure the Assembled integration user you've set up has access to the Case, AgentWork, LiveChatTranscript/MessagingSession, and CaseHistory objects.
If this is not done in advance, initial sync may fail.
Note: Assembled's sync can be customized to ignore fields on the above objects as needed.
Connecting to Salesforce
Assembled connects to Salesforce via OAuth which allows Assembled to make API requests to the Salesforce API on behalf of your Salesforce account. As a result, this will cause an overall increase in your Salesforce API usage.
Assembled will use 10,000 calls per 24 hour period by default, but this number can be raised or lowered upon request.
Once integrated with Assembled, if your Salesforce environment is resource constrained and encountering API limits, this may temporarily show up in Assembled as a sync invalid. If you see this error, please reach out to the Assembled Support Team for assistance tweaking the integration's API limits.
- To connect your Salesforce instance to your Assembled instance, you will need a Salesforce admin to navigate to Assembled's integrations directory and click
Addfrom the Salesforce integration. - We recommend using a Salesforce Dedicated Integration User to set up the integration, rather than an individual admin user’s account. - These are the minimum user permissions required:
- API REST Services and API Enabled
- View all
Caserecords - View
LiveChatTranscriptrecords - View
UserServicePresencesrecords - View Users
- You'll want to select License = "Salesforce API integration".
- If you have successfully connected to Salesforce, you will see a Synced, Sync in progress, or Connected field on the Salesforce-specific card in Assembled’s Settings > Integrations page.
If you run into any issues during this step, please reach out to our Support team.
Verifying the connection
There are two places in Assembled for you to verify if the Salesforce integration has been correctly added: the Realtime Analysis Page and the Staffing timeline.
The Realtime Analysis Page will display agent states and current adherence. Use this page to make sure agent states from Salesforce are being synced to Assembled correctly.
The Staffing timeline displays the contacts of Salesforce. Select New and Reopened Cases to see a line graph displaying how many tickets over time. This graph will show if the sync for tickets is working.
If either of these display zero or abnormal numbers, please reach out to our Support team.
Adding agents from Salesforce
To add agents into Assembled you can follow the steps in our people page guide. Agents can be added manually or in bulk via CSV upload or through the API.
Note: If you're using Agent States , use the 18-digit Salesforce ID for your Users. Do not input the 15-digit Service Cloud ID - it won't pull in the UserService Presence Statuses.
Setting up Assembled queues for Salesforce cases
To set up your Assembled queues for your new Salesforce integration, we recommend following the steps in our queue configuration guide.
In addition, please note the following Salesforce specific details:
- Assembled will map Salesforce's origin field values to Assembled Channels as follows:
| Salesforce Service Cloud | Assembled |
| phone | Phone |
| chat | Chat |
| email, web |
- For multi-channel tickets, Assembled uses the channel of the first message.
- Any cases for which the channel field is blank will be automatically excluded from Assembled.
- Within Assembled, you can create queues based on the following Salesforce attributes:
Setting up Assembled agent states for Salesforce
We use UserServicePresences to sync agent states from Salesforce. In order to get agent states, you'll need to ensure you have :
- Omnichannel enabled.
- Presence Statuses set up ( creating and configuring).
To set up your Assembled agent states for your new Salesforce integration, we recommend following the steps in our agent states setup guide.
Understanding how Salesforce data maps to data attributes in Assembled
We track the SLA across all Channels on the Case object via the firstRespondedAt-CreatedDate metrics from Salesforce Service Cloud. If you are using a different metric for firstRespondedAt on Salesforce, please reach out to our Support team so that we can accurately parse that value from your Case object
Ticket data (Case )
| Salesforce Service Cloud | Assembled |
| firstRespondedAt - call_started_at (Phone) OR firstRespondedAt - chat_started_at (Chat) OR firstRespondedAt - external_created_at (Email) [SLA] | first_response_duration |
Ticket data (LiveChatTranscript )
| Salesforce Service Cloud | Assembled |
| StartTime.Time - CreatedDate.Time (SLA) | first_response_duration |
Ticket status (Case )
| Salesforce Service Cloud | Assembled |
|---|---|
| New | new |
| Open | open |
| Pending | pending |
| Solved | solved |
| Closed | closed |
| On Hold | hold |
| empty |
We highly recommend only using the statuses listed above since we will only map these by default. If you are using a status not listed please reach out to the Support team to let them know.
Ticket status (LiveChatTranscript )
| Salesforce Service Cloud | Assembled |
|---|---|
| Completed | solved |
| InProgress | open |
| Waiting | pending |
| Missed | closed |
| Dropped | closed |
| Blocked | closed |
FAQs
- Q: What should I do if I see a sync invalid from the Salesforce integration in Settings>Integrations?
- A: This could mean a few things so we recommend hovering over the message :
- If you see any 400 errors those usually are permissions-related.
- If you see an error message that references
UserServicePresences:- Do you have omni-channel enabled ?
- If you see a generic error please reach out to our Support Team and we can help diagnose the root cause.
- A: This could mean a few things so we recommend hovering over the message :
- Q: What do I do if all my tickets are getting excluded but I do not have any exclusions set up ?
- A: The most common reason is that you are using Salesforce origin values that are not listed on this page.
- Q: What should I do if I want to create queues based on Case properties not listed in queue mapping dropdown ?
- A: Please reach out to the Support Team and we can help set up these properties for you.