Create a trackable messaging experience for Care Coordinators in Salesforce
A large part of a Care Coordinator’s job is to track and document the interactions they have with their Patients. At CodeScience we helped a large healthcare organization build a tool to help Care Coordinators easily message back and forth with their Patients and any Providers who support those Patients.
We had already been working with this organization to build their product on Salesforce’s Health Cloud. Salesforce offers a plethora of solutions out of the box, but once you start to build products for these large organizations that have very specific use cases, you begin to weigh the pros and cons of building a custom feature, or component, to better support users. A custom messaging component was decided to be built because Salesforce at the time did not have a proper out of the box messaging solution and this client needed it to do very specific things:
Salesforce has an object called ‘Tasks’ which a Care Coordinator uses to track and document various types of activities that might occur with a patient or provider. Care Coordinators wanted to be able to grab a group of messages and create a task with those. It is used as future context for that task but also allows for documenting the interaction between the Care Coordinator and/or patient and provider. You begin to learn very quickly that tracking and documenting interactions for Care Coordinators is a huge part of their job responsibilities.
Another object that Care Coordinators interact with on Salesforce are called Comments. Comments are important pieces of documentation about a patient. A Care Coordinator may want to select a string of messages and create a comment about that conversation for documentation.
Patients can have different Conversations. Meaning, a Care Coordinator has the Conversation with the Patient, they can also have a Conversation with a Primary Provider about that specific Patient, or it could be a Conversation with a Patient’s foot doctor. We needed a Care Coordinator to easily switch between Conversations while viewing a Patient.
A Little Bit of Salesforce Context
Below is a complete view of a standard Salesforce page. The top navigation and left sidebar are all out of the box features and components. The area we worked with exclusively was the Messages component on the right side. We are specifically looking at the Patient Record. This page allows the Care Coordinator to have a full view of their patient. Right now, we are only showing Messages open but a Care Coordinator can view and do many things from here.
When we build custom components that live within the Salesforce Lightning container, we follow the Lightning Design System to ensure a cohesive experience. The Lightning Design System is a robust and super cool design system. Salesforce had a style direction for a Chat feature they were starting to unveil but it was not fully fleshed out yet. We took their cues for the way they formatted that and layered on visuals for what we needed to work to solve for our use cases.
Quickly View Messages and Gain Context
When scanning messages, Care Coordinators can easily see checkboxes to select a message, visual cues allow the Care Coordinator to see if a message has already been associated to a Task or Comment, and Care Coordinators can see if and when a message has been viewed. We also used the standard icons that Salesforce offers for visually communicating Comments and Tasks.
Following Salesforce design patterns, we used their highlighting to make it very clear when messages have been selected. Once a Care Coordinator selects a message, the right side then enables buttons to either Create a Task or Create a Comment.
The right panel will then populate with the required fields needed to either Create a Comment or Create a Task. Salesforce is a highly configurable product. The client needed the right side to be flexible enough so that their customers could configure what fields or information would be needed to create a Comment or Task. Working with the Technical Architect this was built to support inserting a Field Set which is configured by the client. We had to weigh the pros and cons of the usability of this. Salesforce has a standard of putting the fields side by as seen above so we do not have much control of the output of fields. We can configure the order but that is about it. The need for configurability over custom development won in this scenario.
Switching Between Conversations
There was more than a few layers of complexity to think about when building this feature but one that needed the most thought both from a backend architecture view and design was the ability to switch between the concept of Conversations. A Conversation are messages that have been created between not only the Care Coordinator and the Patient but it could be about a Patient that the Care Coordinator had with the Patient’s Primary Care Provider. A Conversation could also be about a Patient with another Care Coordinator. It can get a bit hairy! To solve for this, we followed a common Salesforce pattern of using a dropdown in a header to switch context to a different Conversation. To make it really simple and easy to understand what Conversation a Care Coordinator is switching to, we added in simple visual cues in the dropdown options - adding in whether the conversation was with the Patient, Provider, or other Care Coordinator. A Care Coordinator could also create a New Conversation from this view as well - another common pattern seen in Salesforce dropdowns.
Leverage the Utility Bar
When building components we must keep in mind and think about how users or admins will want to use these custom features in different flows and contexts. Again, Salesforce is a highly configurable product. This means, someone can take our components and put them just about anywhere they want! When we created this larger Message component users wanted to be able to access this outside of being on a Patient Record. Salesforce has a standard feature called the Utility Bar that sits at the bottom of a browser window. You can configure this bar any way you like. Messages was the perfect candidate to live in the utility bar to allow Care Coordinators to see when messages are coming in, view recent messages, and send new messages. We paired down the features from the larger component to only surface what was really needed when using Messages from the Utility Bar.
This is one very specific task we solved for this healthcare organization. We continue to work with this client iterating and improving their product offering on the Salesforce platform.