Setting up Customer Success Cloud
Before you can use Customer Success Cloud, you must:
- Assign Customer Success Cloud licenses to your users.
- Install Foundations Summer 2023 or later.
- Assign the relevant permissions to your users.
- [Optional] Customize Customer Success Cloud Lightning components. For more information, see Customer Success Cloud Lightning Components.
- [Optional] Set up custom notifications and flows.
- [Optional] Enable tracking for recommended objects and fields.
- [Optional] Create Account Customer Success Resource records for existing custom Salesforce User fields.
- [Optional] Migrate deprecated customer success metric data.
- [Optional] Create custom record types and assign page layouts to them.
For more information about setting up the Customer Success Cloud- PSA Connector, see Setting up Customer Success Cloud – PSA Connector
Permissions
You can assign the following permission set groups to users for access to Customer Success Cloud:
Permission Set Group Name |
Description |
---|---|
Certinia - CSC - Customer Success Manager | Includes the CSC - Customer Success permission set. |
Certinia - CSC - Participant User | Includes the CSC - Participant User permission set. |
For more information about the permissions included in this permission set group, see Permission Sets and Other Technical Documentation.
To enable users to create objectives, playbooks, and success plans from templates, you must assign the correct permissions for the Source object to the relevant users. Additionally, users will need permissions for the Source object and its fields for the related objects. For example, when creating an objective, users will need permissions for the Source object and fields for a playbook in addition to the objective. This might require updating the existing permission sets if you are using custom permission sets.
Setting Up Custom Notifications and Flows
We recommend that you set up custom notifications and flows, to enable users to receive notifications for the following scenarios:
- When a user is assigned as the owner of a playbook.
- When a user is assigned to a playbook task.
For more information, see Setting Up Custom Notifications and Flows.
Setting Up Object and Field Tracking for Activity Tracker
We recommend that you set up object and field tracking, to enable users to see activity history for supported objects and fields with tracking enabled in the Activity Tracker component.
For a list of recommended objects and fields to track, see Customizable Lightning Components.
For more information about enabling object and field tracking, see the Salesforce Help.
CS Cloud Core Analytics
For information about setting up CS Cloud Core Analytics, see the following topics:
Create Account Customer Success Resource Records for Custom Fields
- Ensure that all users that are customer success managers are correctly linked with a CS Cloud Resource record.
-
To create account customer success resource records for custom Salesforce user fields on the account record page that surface the account customer success manager, enter and run the following code in developer console.
Copyfinal Integer MAX = 5000;
List<Account> accounts = [
SELECT Id, Your_CSM_User_Lookup__c
FROM Account
WHERE Your_CSM_User_Lookup__c != NULL
AND Id NOT IN (
SELECT csc__Account__c
FROM csc__Account_Customer_Success_Resource__c
)
LIMIT :MAX
];
Assert.isFalse(accounts.isEmpty(), 'No Account Customer Success Resources to create.');
Set< Id> assignedUserIds = new Set<Id>();
for (Account account : accounts) {
assignedUserIds.add(account.Your_CSM_User_Lookup__c);
}
List<csc__Resource__c> resources = [
SELECT Id, csc__Salesforce_User__c
FROM csc__Resource__c
WHERE csc__Salesforce_User__c IN :assignedUserIds
LIMIT :MAX
];
Map<Id, Id> resourceIdByUserId = new Map<Id, Id>();
for (csc__Resource__c resource : resources) {
resourceIdByUserId.put(resource.Salesforce_User__c, resource.Id);
}
List<csc__Account_Customer_Success_Resource__c> accountCSResources = new List<csc__Account_Customer_Success_Resource__c>();
for (Account account: accounts) {
csc__Account_Customer_Success_Resource__c accountCSResource = new csc__Account_Customer_Success_Resource__c();
accountCSResource.csc__Account__c = account.Id;
accountCSResource.csc__Resource__c = resourceIdByUserId.get(account.Your_CSM_User_Lookup__c);
accountCSResources.add(accountCSResource);
}
insert accountCSResources;
For more information about executing Anonymous Apex Code, see the Salesforce Help.
Migrating Deprecated Customer Success Metric Data
If you are using deprecated Customer Success Metric data, such as thresholds and weightings, you must migrate it to a default customer success segment. To do it, you must run the following code in the Developer Console.
// Migrating deprecated Customer Success Metric data, such as thresholds and weightings, to a default Customer Success Segment.
// Change Start Date for Account Customer Success Segment objects to your preferred value.
final Date startDate = Date.newInstance(2024, 1, 1);
// Create a default Customer Success Segment.
final List<csc__Customer_Success_Segment__c> defaultSegments = [
SELECT Name
FROM csc__Customer_Success_Segment__c
WHERE Name = 'Default Segment'
];
// Error out if script is being run repeatedly.
Assert.isTrue(defaultSegments.isEmpty(), 'Expected no existing default segments.');
final csc__Customer_Success_Segment__c defaultSegment = new csc__Customer_Success_Segment__c(
Name = 'Default Segment'
);
insert defaultSegment;
final Id segmentId = defaultSegment.Id;
// Retrieve data from deprecated fields.
final List<csc__Customer_Success_Metric__c> metrics = [
SELECT
Name,
csc__Description__c,
csc__Lower_Threshold__c,
csc__Metric_Type__c,
csc__Upper_Threshold__c,
csc__Weighting__c
FROM csc__Customer_Success_Metric__c
];
// Build and insert Customer Success Segment Metrics looking up to default Customer Success Segment.
final List<csc__Customer_Success_Segment_Metric__c> segmentMetrics = new List<csc__Customer_Success_Segment_Metric__c>();
for (csc__Customer_Success_Metric__c metric : metrics) {
final csc__Customer_Success_Segment_Metric__c segmentMetric = new csc__Customer_Success_Segment_Metric__c(
csc__Customer_Success_Metric__c = metric.Id,
csc__Customer_Success_Segment__c = defaultSegment.Id,
csc__Lower_Threshold__c = metric.csc__Lower_Threshold__c,
csc__Upper_Threshold__c = metric.csc__Upper_Threshold__c,
csc__Weighting__c = metric.csc__Weighting__c
);
segmentMetrics.add(segmentMetric);
}
insert segmentMetrics;
// Delete deprecated field values from Customer Success Metrics.
for (csc__Customer_Success_Metric__c metric : metrics) {
metric.csc__Lower_Threshold__c = null;
metric.csc__Upper_Threshold__c = null;
metric.csc__Weighting__c = null;
}
// Build and insert Account Customer Success Segment junction objects to calculate health score in accordance with old metric setup.
final List<Account> accounts = [
SELECT Id
FROM Account
WHERE Id IN (SELECT csc__Account__c FROM csc__Customer_Success_Metric_Account_Value__c)
];
final List<csc__Account_Customer_Success_Segment__c> accountSegments = new List<csc__Account_Customer_Success_Segment__c>();
for (Account account : accounts) {
final csc__Account_Customer_Success_Segment__c accountSegment = new csc__Account_Customer_Success_Segment__c(
csc__Account__c = account.Id,
csc__Customer_Success_Segment__c = segmentId,
csc__Start_Date__c = startDate
);
accountSegments.add(accountSegment);
}
insert accountSegments;
For information about executing Anonymous Apex Code, see the Salesforce Help.
Using Customer Success Cloud Components On your Experience Cloud Site
You can add the CSC Playbook Task Portfolio Grid component to your existing Experience Cloud site to enable your customers to view and edit playbook tasks.
When using the Playbook Task Portfolio Grid on your Experience Cloud site the following buttons are not available:
- Add Task
- Delete Tasks
- Flag Tasks
- Click Setup | Feature Settings | Digital Experiences | All Sites.
- Click Builder next to the site you want to update.
- Click . The Components panel opens.
- Navigate to the Custom Components section.
- Drag the CSC Playbook Task Portfolio Grid onto the page.
- Click Publish, then Publish again. You will receive an email confirmation when your changes are live on your Experience Cloud site.
You can configure your Experience Cloud site permissions to control how your customers can interact with playbook tasks. Permissions can restrict some of the functionality, enabling you to protect your data while still enabling the customer to view their tasks, and perform permitted actions enforced by your permission configuration.
For more information about setting up permission sets, see Setting up Permission Sets for Experience Cloud Sites.
You can decide which objects to give your users access to. You must create sharing sets to share the records with your users. A user can only see an object if their profile allows them at least read-only access to it.
To create a sharing set, Navigate to Setup | Feature Settings | Digital Experiences | Settings. For information on how to create a sharing set, search for “Set Up Sharing Sets” in the Salesforce Help.
To share records with your users:
- On the Sharing Set Edit page, enter a label in the Label field and accept the default Sharing Set Name. Label is the sharing set label as it appears on the user interface. The Sharing Set Name is the unique name used by the API.
- Select the profiles of the users to whom you want to provide access: Customer Community Plus User or Partner Community User.
- Select the following objects to grant users access to them:
- Playbook
- Playbook Task
- From the Configure Access section, click Edit next to the Playbook object. The Access Mapping for Playbook window opens. Select the following values from the fields displayed:
- User: "Account"
- Target Project: "csc__Account__c"
- Access Level: "Read Only"
- Click Save.
The following table details the minimum required object permissions for a Community user to have access to playbooks and playbook tasks:
Object |
Minimum Permission |
---|---|
Playbook | Read |
Playbook Task | Read |
Create Custom Record Types and Assign Page Layouts
You can create custom record types in the Objective, Playbook, and Success Plan objects for specific user profiles and then assign specific page layouts to the new record types. This enables you to control what record types users can create, and what associated fields they can view when creating:
- An objective in the Create Objective window or from the Objectives tab
- A playbook in the Create Playbook window or from the Playbooks tab
- A success plan in the Create Success Plan window or from the Success Plans tab
The same associated fields are then also displayed when editing a record in Success Tracker as well as in the Objectives, Playbooks, and Success Plans tabs.
Using custom record types and page layouts ensures that a user can only:
- Create a specific type or types of records, depending on the record types assigned to their profile
- Populate and edit specific fields of a record as well as select specific picklist values, depending on the page layout assigned to the record type they are creating
When creating new record types and page layouts, consider the following:
- The default record type is always displayed first when creating a record.
- If only one record type has been created for an object, users do not need to select a record type when creating a record.
- If no record types are available for either a user profile or the currently logged user, the creation windows display the fields according to the Master record type page layout assignment of that record type. This is also the case when the record field in an edit window is blank.
- A single page layout can be assigned to more than one record type.
- To display the Record Type field in the creation windows, you must add it to the necessary page layouts.
-
If there are no record types available in your org for the Objective, Playbook, and Success Plan objects, the fields in their related creation and edit windows use the related field sets.
You can modify the Record Types and Page Layout Assignments settings by navigating to Setup | Profiles | System Administrator | Object Settings. For more information, see the Salesforce Help.