Case-to-Slack Installation and Use
Case-to-Slack streamlines collaboration for customer service teams who use the Salesforce Case object for service case management and use Slack for collaboration.
Measure Consulting makes the Case-to-Slack Case Collaboration automation Service available for free while the Service remains in Beta. With that said, Measure Consulting is happy to support the Service and provide troubleshooting support to users as it improves, enhances and refines the Service.
Users of Case-to-Slack agree that Measure Consulting makes no warranty claims regarding Case-to-Slack operation, availability, or fitness for use. Users agree that Measure Consulting is not responsible or otherwise liable for any malfunction of the Service.
- The Case-to-Slack Service uses the User’s email to correlate User IDs from Slack with User IDs from Salesforce. If for some reason a user has a different email associated with their Salesforce account in your Salesforce org than the email associated with their Slack profile in your organization’s Slack account, then the Case-to-Slack Service will not operate properly. If you need a Case-to-Slack functionality that allows this, contact email@example.com.
The Service stores the following user information, which is required for the Service to operate:
- Company Name (as provided by Customer during provisioning)
- Salesforce Org ID
- Username for Salesforce user utilized for Salesforce queries of cases and user information (as provided by Customer during provisioning)
- User ID for User authorizing the Slack App component of the Service
- Slack User Bearer Token for User authorizing the Slack App component of the Service
- Slack Bot Bearer Token for the Measure Consulting Bot included with the Slack App component of the Service
- Slack Team ID
- Customer Admin name and email (as provided by Customer during provisioning)
- Case-related data “pinned” in the Slack Channel associated with that Case
With the exception of Customer Admin email, Measure Consulting agrees to use stored information exclusively for the operation of the Service.
Measure Consulting may use the Customer Admin email for marketing purposes to promote other Measure Consulting products and services. Measure Consulting will NEVER sell, trade, or otherwise share ANY user information stored as part of the Service.
Installation of Case-to-Slack requires:
- Installation of Case-to-Slack Salesforce components (“Case-to-Slack_SFCore”), available on the Salesforce App Exchange
- Light configuration of the Salesforce components
- Self-provisioning via the Case-to-Slack Service using the link provided in the instructions below
- Installation of the Slack Component, which is a Publicly Distributed Slack App
Step-by-Step Instructions (follow carefully, please!)
Install the Case-to-Slack 2GP Managed Package from the Salesforce App Exchange (or via the link here: https://login.salesforce.com/packaging/installPackage.apexp?p0=04tHs000000FXRtIAO). This package is the one named “Case-to-Slack_SFCore“.
Go to your Salesforce setup. First update the configuration of the Connected App by typing “Manage Connected” in the Quick Find bar, and selecting “Manage Connected Apps”. Click on Master Label entitled “Case2Slack_External_Service_Connection”.
OAuth Policies must be configured such that “Admin approved users are pre-authorized”. If required, click on “Edit Policies” and select “Admin approved users are pre-authorized” from the dropdown next to the “Permitted Users” label in the OAuth Settings section. Click “Save”.
Next, you will need to configure permissions to the Connected App. There are two ways to do this: (1) Assign Profiles that will cover both those Users in your Salesforce Org who assist with Service Case management, or (2) Utilize Permission Sets to do so. Note: if you utilize Permission Sets to do so, you’ll need to add the App from the Permission Set configuration screen.
Next, you will need to create a Certificate so that the Case-to-Slack Service can authenticate your calls from Salesforce to the Case-to-Slack Service.
Go to “Certificate and Key Management” and create a Certificate (self-signed is suitable for the Case-to-Slack Service).
You do NOT need to make the private key exportable. Once you’ve created and named the Certificate, download the certificate – you’ll need to provide it at provisioning.
Next, you’ll need to reconfigure the Named Credential for JWT authentication using the Certificate you just created.
Go to your Named Credentials and select the one labeled “CaseToSlackService_LNC”.
Change the Authentication Protocol to “JWT”. The Issuer, Named Principle Subject, Audiences, and Token Valid for should all pre-populate. Select the JWT Signing Certificate (the one you created in the previous step). Do the same for the first field, “Certificate”. Save.
At this point, the Salesforce components for Case-to-Slack should be properly configured. While you are in Salesforce Setup, go ahead and get items required for Case-to-Slack Service self-provisioning.
You will need to get your Salesforce Org ID. You can find this by typing “Company Info” in the Quick Find box and selecting “Company Information”. You will see the “Salesforce.com Organization ID” in near the bottom of the right-hand column. Record it.
You will need to identify a “User” whose OAuth credentials can be used by the Case-to-Slack Service to query Salesforce. Select a User who has permissions to access User sObjects and Case sObjects. This can be an actual User or an administrative “service account”. Record this User’s Username.
Now it’s time to do self-provisioning for the Case-to-Slack Service, hosted by Measure Consulting. Go to the following link, which will redirect to the most current provisioning application: case2slackprovisioning.measure-consulting.com.
In order for self-provisioning to be successful, the Case-to-Slack Service tries to match your Slack “Workspace Name” (typically your organization’s or company’s name) to the “Company / Organization Name” provided during self-service provisioning. Keep this in mind when filling out the form.
Once you have completed self-service provisioning, you will need to install the Slack App that interacts with the Case-to-Slack Service. Use the button below to install the Case-to-Slack Slack App (or visit the following install link: https://slack.com/oauth/v2/authorize?client_id=5258852172128.5258862716480&scope=channels:history,channels:manage,channels:write.invites,channels:write.topic,chat:write,chat:write.public,commands,groups:history,groups:write,pins:write,users:read,users:read.email,channels:read&user_scope=channels:write,groups:write,mpim:write,im:write):
This should take you here:
Install the Slack App. Unfortunately, this will take you to a blank page, but you should be good to go.
If you have any problems or questions, email firstname.lastname@example.org.
Case-to-Slack operation begins with the creation of a support Case in Salesforce. Upon creation of a new Case, the Case-to-Slack Service will set up a Slack channel dedicated to the Case. You’ll notice that critical Case-related information is “pinned” in the Slack channel. The Slack channel will initially contain the user creating the case and the Measure Consulting Bot.
If you desire certain users to be included in the Slack channel for every Case, email email@example.com with the emails of all users you wish to have included in the Slack channel for every case.
If you desire a more rules-based approach to whom the Case-to-Slack Service should include in the Slack channel, contact firstname.lastname@example.org, and we’ll configure accordingly. For example, you may desire that all Cases of a certain Priority include key users in your Slack channel.
No one ever solved anything looking at the Case object in Salesforce. The purpose of the Case-to-Slack Service is to enable you to spend your time in the place where you actually solve support Cases: your team collaboration medium, Slack. From Slack, you can use the slash command, “/updatecase” to update the status of the Case in Salesforce. For example, if in the course of managing the Case the team determines the Case needs to be moved from Status “New” to Status “Escalated”, type “/updatecase Escalated”. Upon doing so, the Case record in Salesforce will be updated to Escalated without the need to go to Salesforce to update the Case.
When it’s time to close the Case, type “/updatecase Closed”. Upon doing so, the Case will be updated to Closed in Salesforce, the Slack channel will be archived, and the Slack Conversation History will be added to the internal comments on the Case in Salesforce.
We’ll add additional functionality as time goes on. If you have wishes or ideas, contact us at email@example.com.