Collaboration in Next Experience (Sidebar) - Part 1
Table of Contents
Collaboration in the Next Experience
This is the first article of a short run regarding the Next Experience collaboration tool,
Sidebar, and my experience with investigating, implementing, and extending the application and related feature sets.
I found myself investigating the inner workings of Sidebar as both my organisation, and a few organisations contacts work with, look to migrate into the Next Experience. I wanted to learn how this solution ticked, so that I could prepare for feedback and also understand where it could be extended or enhanced.
In this article I’ll discuss a little on previous collaboration tools ServiceNow has offered, as well as a little on the underlying architecture of Sidebar and what I’ve learnt thus far.
A brief history of collaboration in the ServiceNow platform
The Now platform has been supporting conversation and collaboration within the platform for over a decade - with rapid improvements and technology used over time, both within and without the platform, there have been several solutions to address the need for both
requester to agent (RtA) and
agent to agent (AtA) collaboration.
The earliest iteration of this (to my knowledge) was simply named
Chat (AtA), and was accompanied by
Help Desk Chat (RtA). While I was not involved in the platform earlier enough to know its inception, the earliest records I can find of this application date back to 2011 and the Aspen release. This platform, now termed
Legacy Chat, was deprecated in Istanbul. I only interacted with this iteration with one customer, and while I could definitely see the merits in this application, ServiceNow thankfully introduce a replacement in the
Connect platform supported two core use cases -
Connect Chat (AtA), and
Connect Support (RtA). Connect was built on top of the existing table structures used by Legacy Chat, and leveraged AngularJS quite heavily in its implementation. It was natively supported in UI16, and also offered capabilities through a ‘workspace’ of its own (not to be confused with ‘Workspace Experiences’). I encountered this application a lot when consulting, to varying levels of adoption - native collaboration in the Core platform was quite nifty, and support for Connect Support through Service Portal made for effective and efficient use of this platform as a chat platform for support. While there were some teething issues organisations would have, it was definitely a crowd favourite.
During Connect’s time in the sun, the
Agent Chat and
Virtual Agent interfaces were implemented and started to gain traction. These platforms were the vanguard of the new
Conversation Server and
Conversational Interfaces framework within ServiceNow, and while Virtual Agent was implemented with support for Connect Support, Planned Deprecation was officially announced in early 2022 for the application. The March 2023 deprecation notification aligned with the San Diego release and launch of the Next Experience, a next generation user interface which brought a swathe of improvements, but did not support Connect Chat. This left Connect Chat as an isolated application which could still be leveraged, but only by users in UI16. It wasn’t until Tokyo where ServiceNow announced a platform that would replace some of Connect Support’s features and bring some of its own -
Sidebar as a solution
Bite-sized Sidebar (tl;dr)
Sidebar has been built natively into the Next Experience UX framework, and is presented as a collaboration platform from both the Core UI and several workspaces (see documentation for more detail). It is only compatible with the Next Experience, and it can be added to other workspaces and (at least in Utah) is present as a component for inclusion in UI Builder. Sidebar is the latest addition to the Conversational Interfaces suite, and leverages the same underlying UX features and some shared utilities to both normalize as well as standardize this tool for fulfiller usage. An example of this is Quick Actions in chat, which will be fun to experiment with.
Unlike Connect Chat, which generated conversations without a ‘source’ record, Sidebar is bound to the usage of a related record. The conversations can be generated by using the
Discuss UX Action added to all [task]-extended tables, as well as to [interaction]. This will either associate a user to an existing conversation, or allow them to generate a new one. In a Conversational Interfaces (was Virtual Agent) Academy session, there was discussion of the ability to generate more than one discussion for a given record, but this was under safe harbour.
Sidebar as a chat interface brings a lot of the good takeaways from Connect, and fits well in the user experience of Next Experience at large. I am yet to test it on lower resolution screens but in most circumstances, the conversation windows are large enough without being invasive. I’m looking forward to experimenting more with this interface and understanding its features and accessibility support. The Utah release has brought Microsoft Teams integration to this tool, so I’m interested to get a chance to play with this some more.
Sidebar under the hood
Settings, Properties and Naming Information
This new feature, while marketed as Sidebar, is named
Collaboration Chat or
Collab Chat within platform. Simple configuration is able to be performed from Conversational Interface settings (
/now/conversation/settings/general), and there are some additional controls available in
System Properties. Of use for configuring this application are:
booleanproperty which enables or disables the solution. Defaulted to
booleanproperty which enables or disables the unfurling behaviour for Sidebar conversations. Defaulted to
booleanproperty governing whether the ‘candidate list’ (possible members to add to chat) validates permission to the related record for collaboration. Defaulted to
Stringproperty setting the numerical upper limit of members to pre-fill in the creation modal for a Sidebar chat. Defaulted to
Stringproperty setting the numerical upper limit of members to search for in the creation modal for a Sidebar chat. Defaulted to
There is a few other properties available from my review, but these seem primarily around performance and should be ok with defaults to begin with.
Tables and my findings
The application comes with a few tables (captured as at Utah):
|Usage & Notes
|Usage: This table stores our primary Collaboration record, including a reference to the most recent message in a chat.
Notes: Collaboration Chats have a state attribute, with values ‘Open’ and ‘Closed’. I haven’t yet seen much to control this state, but will be investigating further.
|Collaboration Chat Member
|Usage: This table stores references for User profiles (
sys_cs_channel_user_profile) and Collaboration Chats.
Notes: This acts as a many-to-many reference table. It holds additional information such as the status of the Sidebar chat frame, its order, and whether it has been dismissed or favourited.
|Collaboration Chat Message
|Usage: This table stores chat messages, including JSON payloads for chat messages interpreted by the platform for Card and informational display. This holds the content associated with a Collaboration Chat, and provides the ordering and user reference information for it.
|Collaboration Chat Message Post
|Usage: This table stores references to a Collaboration Chat, a Collaboration Message, a Collaboration Chat Member, and Document ID + Table references to a record.
Notes: The Table field has a Table choices attribute limiting choices to the [task] and [interaction] tables. This table is locked down to the
maint role. At this stage, I think we’ll need to wait and see if this table comes into play
|Collaboration Chat Associated Record
|Usage: This table stores a reference to a Collaboration Chat, as well as a Document ID + Table reference to the originating record.
Notes: The Table field has a Table choices attribute limiting choices to the [task] and [interaction] tables. A Collaboration Chat will not work without an Associated Record. However, the task-based requirement for Sidebar is only validated at the table layer. If a record is generated with reference to a non-task table, this will still work! However, this may not behave as expected, as the fields it references for display likely aren’t present.
|Collaboration Chat Attachment
|Usage: This table stores the sys_id of an attachment, as well as a Document ID + Table reference to a Collaboration Chat. This appears to be used for generating the simple ‘Attachment’ card in a Sidebar Chat.
|Collaboration Chat Member Group
|Usage: This table stores references to Messaging Channel, Collaboration Chat, and a group ID.
Notes: This table is locked down to the
maint role. Another one to keep an eye on.
|Collab Chat Mention
|Usage: This table stores references to User profiles (
sys_cs_channel_user_profile) and Messages.
Notes: I have not been able to generate a valid mention as yet. I’ll update this when I have identified more information.
|Collaboration Chat Message Reaction
|Usage: This table stores references to a Chat message and the reacting user, as well as the reaction content.
Notes: I have not been able to generate a valid record to display using this. I’ll update this when I have identified more information.
|Collab Chat Settings
|Usage: This table stores domain-specific configuration settings. At present, this controls the ‘Enable Emoji’ setting
|Sidebar Member Query
|Usage: This table stores pre-configured membership queries for limiting and/or pre-defining membership
What we know so far and other objects
There are several Script and UX objects involved in making this application work, but I’ll discuss those in a later article. When a Sidebar chat is generated, it generates a Collaboration Chat record, a Collaboration Chat Member record per member, some initial Collaboration Chat Message records, and a Collaboration Chat Associated Record … record. This seems to be the baseline requirement of a Sidebar chat, which gives us an opportunity to look at how we can leverage this application in a programmatic fashion!
Thanks for dropping by and learning about Sidebar with me!
My next article will showcase how to create Sidebar conversations programmatically, and discuss applications of this for team collaboration and BCP communication in the event of popular enterprise collaboration platform outages! We’ll also look at some more of the inner workings of Sidebar, both the UX Components and Scripts, and how this could lend itself to some other platform use cases.
Other articles will include my experiments with building an administrative framework around this application, which will let me get my hands dirty with UI (You & I) Builder! If you have any feedback, questions, concerns, or kind words, I can be found in the SNDevs Slack as
@Astrid, or occasionally in the Telegram and Discord! My other contact platforms can be found linked on my blog!