Employee Experiences to Replace the Legacy Intranet

In these unusually volatile times, the corporate intranet plays an essential role in communicating timely information to a workforce faced with collaborating and working remotely more than ever before. As employees around the world log in to work from their homes (cue the kid noises), the enterprise intranet enables rapid dissemination of corporate communications. Employees need the reassurance of being able to reach out to their IT and HR organizations to request services and get timely information. This is where we see a great opportunity for organizations to go beyond an information dumping ground and to invest in leveraging ServiceNow, the industry leading enterprise platform as a service, to build an intranet that truly empowers the digital workplace experience.  I’d like to offer a few thoughts about why ServiceNow offers significant advantages over traditional approaches to the corporate intranet. And, let’s face it, virtual workforces need all of the advantages they can get. Effective Communication Let’s start with the basics: getting information out there. The traditional intranet is often the default home page each and every time an employee opens a browser tab. That’s great, but what if the information they see every time isn’t relevant or even current? A ServiceNow based intranet overcomes this problem with methods to target content more effectively. Using campaigns, content delivery, and user criteria features, you can get the right information to the right audience at the right time.  The adaptive, personalized pages you can build with Service Portal have far more impact and benefit than the static, generic pages you get with a traditional intranet. We’ve met with several companies who have spun up Covid-19 information sites. These are useful, but many of them present the same information to everyone. With ServiceNow, you have the opportunity to quickly tailor that information based on the employees’ location and role.  Coordinated Engagement But why stop at just broadcasting information? What if you could make the content more engaging? Keep in mind that engagement isn’t just about making the information more interesting to consume. It’s about using the information as a springboard for coordinated action. With ServiceNow, you have an opportunity for your content to do that. At its core, ServiceNow coordinates processes. Rather than taking the traditional intranet approach and having employees simply click a link from the content to continue some process in another tool, use the power of ServiceNow to create content employees can act on within the context of the same page to get more information, take action, engage others, and complete a task. For example, those same Covid-19 information sites could combine basic information with catalog items relevant to conferencing systems as well as community forums for employees to share experiences and recommendations. That smooth transition from consumption to engagement to coordination sets ServiceNow apart. Extensible Platform Many traditional intranet platforms suffer from rigor mortis. They just aren’t built for extensibility and remain rigid, waiting for their creator to enliven them with a new feature. This is definitely not the case for ServiceNow. Built as an extensible platform, ServiceNow, and particularly Service Portal, can adapt to new requirements easily. The interface that you create and surface on the intranet can be energized by business rules, security, integrations and workflow like any other ServiceNow application. Need a trading application to help employees deal with toilet paper shortages? Build it in record time on ServiceNow. When the crisis is over, transform it into an engaging marketplace for employees to trade far less critical but far more fun things like vintage records (you know the ones that were great at drowning out the family noises while working from home but remind you too much of when you had to work from home). A change in perspective is perhaps the biggest change this global crisis will force upon us. Fortunately, it is with a different perspective that we discover the best solutions. I encourage you to take a moment and consider how combining ServiceNow’s unique offerings channeled through the powerful capabilities and flexibility of the Service Portal can create a more engaging and empowering intranet experience. An experience that will carry you through the worst of times and the best of times. For more information or to set up a consultation about intranet solutions using ServiceNow, visit our website. Learn More

UI Bootstrap in Service Portal

UI Bootstrap in Service Portal You may already be familiar with the $uibModal service in Service Portal, but did you know there is a whole library of useful directives and services available in UI Bootstrap?  UI Bootstrap is a client-side library of Bootstrap components written in AngularJS and contains 20 directives that offer a consistent framework, responsive design, and cross-browser compatibility when developing in Service Portal. Although UI Bootstrap is considered feature-complete and is no longer being maintained, Service Portal currently includes UI Bootstrap version 1.1.2. Here are the UI Bootstrap directives. Accordion (ui.bootstrap.accordion) The accordion directive builds on top of the collapse directive to provide a list of items, with collapsible bodies that are collapsed or expanded by clicking on the item’s header. Alert (ui.bootstrap.alert) This directive can be used both to generate alerts from static and dynamic model data (using the ng-repeat directive). Buttons (ui.bootstrap.buttons) With the buttons directive, we can make a group of buttons behave like a set of checkboxes (uib-btn-checkbox) or behave like a set of radio buttons (uib-btn-radio). Carousel (ui.bootstrap.carousel) Carousel creates a carousel similar to bootstrap’s image carousel. Collapse (ui.bootstrap.collapse) Resize window to less than 768 pixels to display mobile menu toggle button. Dateparser (ui.bootstrap.dateparser) The uibDateParser is what the uib-datepicker uses internally to parse the dates. You can use it standalone by injecting the uibDateParser service where you need it. Datepicker (ui.bootstrap.datepicker) The datepicker is flexible and fully customizable. You can navigate through days, months and years. Dropdown (ui.bootstrap.dropdown) Dropdown is a simple directive that will toggle a dropdown menu on click or programmatically. Modal (ui.bootstrap.modal) $uibModal is a service to create modal windows. Creating modals is straightforward: create a template and controller, and reference them when using $uibModal. Pager (ui.bootstrap.pager) A lightweight pager directive that is focused on providing previous/next paging functionality. Pagination (ui.bootstrap.pagination) A lightweight pagination directive that is focused on providing pagination & will take care of visualizing a pagination bar and enable/disable buttons correctly! Popover (ui.bootstrap.popover) A lightweight, extensible directive for fancy popover creation. The popover directive supports multiple placements, optional transition animation, and more. Position (ui.bootstrap.position) The $uibPosition service provides a set of DOM utilities used internally to absolute-position an element in relation to another element (tooltips, popovers, typeaheads etc…). Progressbar (ui.bootstrap.progressbar) A progress bar directive that is focused on providing feedback on the progress of a workflow or action. Rating (ui.bootstrap.rating) Rating directive that will take care of visualizing a star rating bar. Tabs (ui.bootstrap.tabs) AngularJS version of the tabs directive. Timepicker (ui.bootstrap.timepicker) A lightweight & configurable timepicker directive. Tooltip (ui.bootstrap.tooltip) A lightweight, extensible directive for fancy tooltip creation. The tooltip directive supports multiple placements, optional transition animation, and more. Typeahead (ui.bootstrap.typeahead) Typeahead is an AngularJS version of Bootstrap v2’s typeahead plugin. This directive can be used to quickly create elegant typeaheads with any form text input. Check out the full UI Bootstrap documentation here: https://angular-ui.github.io/bootstrap/ How have you used the UI  Bootstrap directives in your Service Portal projects? Let me know in the comments below.

Top 5 Features in the Orlando Release

This year's Orlando release is full of great new functionality and updates to the ServiceNow platform. Needless to say, there were a ton of features to cover, so instead of compiling an enormous list, I've put together this video of my personal top 5 features. I bet at least a couple of these will surprise you! Check out the video. Let me know in the comments below if you agree or if you feel there is a big feature that should have made the list. The official release notes can be found here: https://docs.servicenow.com/bundle/orlando-release-notes/page/release-notes/family-release-notes.html

Featured Portal: Multinational Retailer

OVERVIEW With over a million employees worldwide, this multinational retailer wanted to deliver an intuitive and scalable employee experience with personalized content based on the users' location, language, and business area across 6 departments. PROJECT GOALS Make it MaintainableBased on development best practices, reduce or eliminate custom code to allow for future upgrades Make it PersonalPersonalize the data by correctly applying user criteria based on location, language, and business unit Define StandardsCreate well defined UI styling and standards that the client could use for internal updates Improve NavigationRedefine the catalog taxonomy and implement more user-friendly language throughout the portal      Learn more about the details of this project by reviewing the full case study featured on the NewRocket website:

Custom Native Mobile Apps on ServiceNow

I get asked a lot about mobile and how to deliver branded mobile experiences on ServiceNow. For years the answer has been to use Service Portal since it's responsive and can be themed to function really well on mobile devices. This has worked quite well for many use-cases, but it still requires accessing through a browser or ServiceNow Classic, and it's still not the same experience that we've all come to expect from a native mobile app. 54% of employees expect their employers to provide mobile-optimized tools Source: https://research.servicenow.com/ Some of this has changed with the release of the Now Mobile app, but it is ServiceNow branded, lives in the app stores under ServiceNow's name, and requires entering of the instance name and credentials. It may be great for roled users, fulfillers, or users at least familiar with ServiceNow, but there are still many use-cases when using the Now Mobile app does not seem ideal. Consider, for example: Local governments or municipalities enabling anonymous citizens to report issues Universities using ServiceNow for managing student requests Product companies offering support via ServiceNow to its customers Enterprise organizations wanting to provide their employees with a tailored and branded experience In many of these cases, it seems the ideal scenario would be a dedicated app, in the app stores, with the organization's branding, and with the specific features for that target audience. This compelled us to explore what it would take to develop cross-platform mobile apps. Apps fully integrated with ServiceNow, with custom branding, feature specific UI's, and taking full advantage of the mobile capabilities such as geolocation, maps, push notifications, and camera features. We've chosen to build our current platform on React Native, as this allows for both iOS and Android apps with a single code base, but we're also exploring a version in Swift and Java. In the video above, you can see some of the example apps that we've been prototyping. The goal of the project has been to follow the same conventions as Now Mobile, leveraging the same APIs, ensuring a sustainable architecture. As of this writing, we have not yet released any publicly available apps into the store... but we are working with some of our early adopter customers on some innovative new mobile solutions. To learn more about these projects and our native mobile capabilities, please contact us or visit newrocket.com for more information. I would love to hear your comments or feedback below. What are some use-cases where a mobile app could really improve the user experience?

Featured Portal: Merck Group

OVERVIEW Merck is a German multinational pharmaceutical, chemical, and life sciences company headquartered in Darmstadt, with approximately 50,000 employees in 70 countries. Merck came to NewRocket to build a unified portal experience that seamlessly combined multiple departments and processes, but still allowed each department to have some autonomy. PROJECT HIGHLIGHTS   Ticket System Implemented a new ticket system that provides Merck employees with a consolidated view of their tickets across all departments. Defined Catalog Designed a dashboard that displays top destinations filtered through user criteria, allowing users to navigate the catalog and submit items more efficiently. Subsidiary Impersonation Provided enhancements that allow selected users to request different services or view knowledge articles on behalf of another user. Accurate Translations Utilized our translation tool to supercharge translation efforts, promote maintainability, and improve communication for Merck's global user-base.     We helped create an organized portal structure that accommodates a modern design experience and streamlines Merck's inter-departmental processes. Click the link below to view the full case study, or visit NewRocket.com to see our products and services.

Service Portal Features in New York

The New York release of ServiceNow is finally here and includes a number of useful features, enhancements, and bug fixes to the Service Portal. In this article, we will review some of the new features and larger changes. New Features Agent Chat Your users can initiate and maintain an Agent Chat conversation in any portal page. You can now also create a script to pass portal-specific data to Agent Chat. For example, pass the name of your knowledge base to a Virtual Agent conversation. To enable, simply install the "Agent Chat" plugin, and create a configuration through the "Service Portal > Agent Chat" module. Official documentation Search Analytics & Suggestions Generate relevant search suggestions for your users and monitor search analytics to understand what your users are searching for. When you enable Search Suggestions, suggestions appear automatically when users enter text into search fields in the Service Portal. Official documentation Text index groups Configure a text index group to make Service Portal search results more relevant to your end-users. The base system text index group includes the Catalog items, Knowledge, and Social Q&A Questions tables. Official documentation Antivirus Scanning support for attachments View the health status of file attachments in Service Portal. Antivirus Scanning scans files in the Attachments [sys_attachments] table by default. When viewed from a Service Portal page, attachments may not be available for download depending on their health status. Official documentation Reset Password Although not much of a feature, you can now enable your users to reset their password from the Login widget using the Password Reset application. When the user clicks "Forgot Password?", the system redirects the user to the page value specified in the "glide.security.password_reset.uri" system property. Official documentation Service Catalog Related Catalog Items & Knowledge Articles Configure related items and articles for a catalog item to provide additional information or alternatives. These articles and items are displayed in the catalog item page in Service Portal. Official documentation Knowledge Management Route Map The "kb_article" page now routes to the "kb_article_view" page which is part of the Knowledge Management Service Portal which includes a number of features such as feedback and versioning. Multi Knowledge Bases Configure which knowledge bases to display on the Knowledge Management Service Portal Article Comments User can now reply and like comments as well as add links, attachments, or images to comments. Official documentation Automated Test Framework Open Service Portal Page Open a portal page in the Automated Test Framework. When building automated tests, test designers must first open a page in a portal before testing UI components on the page. Official documentation The New York release seems to be very promising with a nice mixture of features, enhancements, and much-needed bug fixes (over 150+ that I've counted). I am definitely looking forward to this release and all it entails. Check out all the New York release notes here. If you know of some additional features in Service Portal not mentioned here, please let me know in the comments below.

Localization in Service Portal

As most companies experience globalization in some capacity, it’s important that they localize their portals to accommodate users from different areas around the world. In this article, I will go through the different components involved with localizing your Service Portal. Before we begin, make sure to activate the internationalization (i18n) plugin and the required language pack plugins that will be used by your organization. Also, there is an OOB widget called "Language Switch." Simply include this widget somewhere in the portal to enable users to update their language preferences. The two primary tables in ServiceNow responsible for storing translations for Service Portal are: Message Translated Text We will also cover some of the other tables and plugins that can potentially impact translating a portal. Message table (sys_ui_message) The UI message table contains translations using key/value pairs. The key is the string in the base language and the value is the localized version of that string. The main fields on this table are: Key: unique identifier of this message (usually the English version of the string). Language: language the message is translated into. Message: translated text that users see. In Service Portal, the primary area you would see UI Messages used is inside widgets (in the HTML, Client Controller, and Server Script), but can also be commonly found in other areas with server-side scripts (e.g. Scripted Menu Items, Script Includes, etc.). HTML Use the ${} syntax in widgets to tag strings for translation [crayon-69cfe51adc531118495099/] If translating a string stored in a variable, it is also possible to wrap a data binding {{}} with ${} to translate the contents of the variable. [crayon-69cfe51adc537698915800/] However, I do not recommend using this approach. It is much better to do the translations server-side whenever possible. Client Controller Similar to HTML, you can also use ${} in the controller if it's going to be displayed in the HTML [crayon-69cfe51adc539285626048/] Note: In some cases, the translation might have quotes or double quotes in it. That could lead to JavaScript errors if you are using the ${} syntax in the client script. The safest way to fetch a translated message is to do it in the server script. Another way, and perhaps better way to access translated strings in the controller is using the i18n service. [crayon-69cfe51adc53a640747568/] In order to use the i18n service, you must also declare the variable in the HTML using the <now-message> syntax [crayon-69cfe51adc53b703412170/] And then you can render the message in HTML using the {{}} syntax [crayon-69cfe51adc53c252530223/] Server Script For all server-side translations, use the gs.getMessage() method [crayon-69cfe51adc53d704615705/] It is also possible to format certain template strings by passing in an array of strings as the second parameter: [crayon-69cfe51adc53e113630106/] This would return: "Welcome Nathan Firth – you have 5 active tickets." Demo To demonstrate the various ways of doing translations using the sys_ui_message, here is a quick screen capture of the Widget Editor showing the string translated and used four different ways in the same widget. The string in all four cases is "Hello World", and I'm translating it to say "Hello There". Click image to see full size Translated Text table (sys_translated_text) The Translated Text table stores translations for fields with the field type translated_text or translated_html. The main fields for this table are: Document: internal identifier of the record this translation applies to. Field name: field this translated text appears in, for example, Close notes. Language: language the text is translated into. Table Name: table this translation applies to. Value: translated text that the user sees. Some common areas in Service Portal using Translated Text fields include: Widget Instances (title, short_description) Catalog Categories (title, description) Menu Items (label) Knowledge Categories (label) Other translation tables Although the Message and Translated Text are the primary tables used in Service Portal, there are also a few others worth noting: Knowledge (kb_knowledge) if you've activated the "com.glideapp.knowledge.i18n2" plugin, you can also translate articles directly using the Knowledge tables. Choice (sys_choice) table contains translated text for options that appear in choice lists. Field Label (sys_documentation) table stores the text of table names along with the singular and plural labels for each field in the table. Session at K19 Manually extracting, translating, and importing strings is time-consuming and error-prone. We will be leading a CreatorCon session at Knowledge19 in Las Vegas where we will be presenting on internationalization and making recommendations on to make this process less painful. Stay tuned for more information about that session. Lastly... We're working on a brand new scoped application that will automate the extratction and importing of translations for Service Portal. If you are interested in seeing a demo or would be interested in this upcoming application, please don't hesitate to reach out.