How we built it: Search Anywhere and the Resource Center
In 2019, the Customer Experience team at Khoros planned to improve the digital experience of our customers through a series of initiatives.
One of the primary tasks was to make Atlas the focal point of documentation and support articles for Marketing products, just like it was for Care products. The change involved two steps:
- Moving all our product technical and functional documentation from third-party software to Atlas
- Maintain the ability to search for documentation from within the product websites i.e. search for documentation from Marketing and Care platforms from the in-app Resource Center
What is the Resource Center?
The Resource Center in this post refers to the tool powered by third-party software (Pendo) to house additional contextual help and include standard help articles or FAQs, as well as in-app Guides that will walk users through specific processes.
Most of the existing Marketing customers were frequent users of the search within the app tool. So, it was important for us to retain this experience.
However, these changes were due in less than two months, given the licensing deadline with a third-party application. This presented two key challenges:
- How to look up information from the Community?
- How to embed the Search Anywhere tool (yes, that’s what we named it internally) into the Resource Center and into the product website?
How we solved looking up information from Community:
- Community platform supports the awesome API layer, known in developer circles, as LiQL - the Lithium Query Language
- LiQL enables you to search Community information based on tags, title etc. However, you must have the “correct” permissions via the API keys in order to pull the information
- The Triumph team built the oAuth based mechanism to provide the API access from a web application
- The premise was that we could register the Search Anywhere tool as an app on the Community platform and use the specific keys to make API calls and this is how it works currently
- A key feature that was necessary was to limit the ability to only lookup information limited to only certain “boards” (or nodes if you happen to know Community well). We achieved this by attaching a unique role, based on the application (Marketing or Care)
- We registered unique apps for Care and Marketing to “sandbox” access to relevant information within each of the products
- We needed the ability to show some posts by “default”, for example, if you land on the “Social Marketing” page in the Marketing product, the tool would show “top” posts from the “Social Marketing” board in our Community
- We achieved this using “tags”, a way to label the posts in Community. This required identifying and tagging the relevant posts in specific boards in the Community. Our Product Content Experience team helped with this laborious but important task.
Going the extra mile -- Integrating Resource Center into Community and Community Analytics
Following the introduction of the Resource Center embedded into the Marketing product, we wished to integrate Pendo and the Resource Center in Community and Community Analytics in order to provide a consistent help experience for our customers across all of Khoros products.
The community Admin, Studio, Moderation Manager, and Toolbox areas have a plethora of options, and community admins are required to understand their use and purpose for configuring community as per their brand’s needs.
To improve the customer experience, Pendo integration is done with Community to provide dynamic help on the admin section.
We leveraged the Search Anywhere work to identify the right resources for Pendo and created the Community integration.
Abhishek Gupta, Vaibhav Chawla, and John Dowden collaborated for integrating and creating Search Anywhere built with Atlas tags associated with hundreds of Atlas articles. Search Anywhere makes use of Tags (not Custom Tags like we have in the legacy Admin/Studio Help drawer) to fetch the right information.
The sheer number of Tags required to cover the Admin, Studio, Moderation Manager, API Browser, and Toolbox sections was quite a challenge.
To top that up, Community Analytics had to be identified through a single Search Anywhere build. The team put in a lot of effort and created a JSON mapping to make it dynamic and easy to upgrade as well as completing a small but very important task to improve the customer experience.
For the technically inclined:
- Vanilla is the way
- The tool is written in JavaScript and modularized for easy readability
- Tokens
- The tool uses Community’s OAuth APIs to obtain and refresh access tokens
- Build
- We dockerized the build to make it easy for incremental updates
- This also helps in developing and testing the tool on any machine
- Since different apps were registered, we parameterized the build for the code to “know” the context and use appropriate access keys to invoke APIs. If you build this tool with the parameter “CARE”, the output code can only access information from the “Care” board in our Community
- Deployment
- The binaries (word for the files that is output from all the code we write) are pushed to an S3 bucket from where the code is copied into the resource center
The project was a unique and proactive collaboration between Engineering, Customer Experience and Product Content Experience teams. It did lay the foundation for great working relationships among those involved in the project, very much embodying our value: We win and grow as one team.
Callouts:
- Santosh Shaastry ( SantoshS)
- Abhinn Gautam ( AbhinnG )
- Kokil Jain ( KokilJ )
- Narendra Prabhu ( NarendraG )
- Gunaalan ( gunaas )
- Keerthana ( KeerthanaS )
- Annu A ( AnnuA )
- Abhishek Gupta ( AbhishekGu )
- Vaibhav Chawla ( VaibhavC )
- Akash Navani ( AkashN )
- John Dowden ( JohnD )
- Scott Scarborough ( ScottSc )
- Travis Berryhill ( TravisB )