Titans of Now: Nathan Firth

Last week I had the awesome opportunity of being interviewed by Robert Fedoruk on his YouTube Channel. We discussed Service Portal, the mobile frontier, and the new ServiceNow UI framework. Have a listen and let me know what you think![...]

NewRocket.com

GlideSPScriptable Cheat Sheet

Overview Did you know there are over 60 server-side methods available in GlideSPScriptable ($sp)? Many of these methods are hidden or not documented, so we've combed through all the widgets and source code to provide you with this cheat sheet that includes all of the $sp methods available in Service Portal. Now updated for the New York release. Save time and maximize your productivity with this quick reference document for you to use day-to-day. Enjoy!

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.

Service Catalog Item Wizard in Service Portal

We've had a number of clients ask about structuring catalog item forms as more of a "wizard" that only renders one section at a time. After thinking about it for a while, I realized that I could use the GlideForm API to programmatically hide and show the different sections (containers). So over the past couple of weeks, I've been working on a new widget that simply interacts with the out-of-box catalog item widget, and uses the API's to add all of the wizard-like capabilities. I think it turned out pretty cool, it's fully themeable, and best of all, it does not require cloning of any widgets. I still have a few more features to add, and I'm also considering adding an accompanying library of Variable Sets that provide a more graphical UI than the out-of-box catalog variables. If all goes well, I may end up including the widget in our RocketFuel library of widgets, so if you're interested in adding some wizard-like capabilities to your portal, feel free to contact me and we can schedule a demo. I'd love to hear what you guys think in the comments below. Is this a useful widget? Does this improve the user experience of the service catalog item form?

Featured Portal: Informatica

OVERVIEW Informatica is an Enterprise Cloud Data Management leader that accelerates data-driven digital transformation headquartered in Redwood City, California. Informatica enables companies to fuel innovation, become more agile and realize new growth opportunities, resulting in intelligent market disruptions. Informatica came to NewRocket to increase user satisfaction, simplify the process, and encourage self-service with their employee service portal. SERVICES Research & Insights Wireframe Design Clickable Prototypes Catalog Consulting High Fidelity Mockups Service Portal Development NewRocket was an integral member of our team and critical for providing the expertise and guidance we needed to make the Informatica IT Service Center a successful reality. We have been very satisfied with everything NewRocket has provided us and plan to continue to use them as needed in the future. - Scott Hiner, Senior IT Communications Manager THE CHALLENGE Informatica’s original portal although designed to accommodate multiple departments did not provide an intuitive experience that allowed users to easily navigate the content of the portal. The portal also served as a hub to other business platforms which diluted its original purpose to focus on service delivery. THE SOLUTION NewRocket developed a dashboard-like homepage that allowed relevant content from all parts of the portal to be easily accessible. Three main calls to action were created to guide users into the experience and help them to filter through the content to find what was most relevant to their needs. Customized widgets were also added to help facilitate feedback and to integrate dynamic content throughout the portal.

Restyling Notifications in Service Portal

Today I am going to show you how to change the styling of the built-in notifications in Service Portal. The default notifications in Service Portal are based on the Bootstrap Alerts components, but I prefer the smaller "Toast" notifications of Bootstrap 4. Default   New Style         The following CSS sets a new width and aligns the notifications in the upper right corner of the screen rather than spanning the whole page. You will need to add the following styles into a CSS Include in your theme. CSS [crayon-5dcef0f12b099686738257/] If you are already on the Madrid release, I recommend replacing the above HEX colors with the $brand-success and $brand-danger variables so that they can be driven by the variables defined on your theme. If you wish to trigger notifications from your own widget, you can trigger notifications using either of the following. Server Side: gs.addInfoMessage("Success goes here"); gs.addErrorMessage("Error goes here"); Controller: spUtil.addInfoMessage("Success goes here"); spUtil.addErrorMessage("Error goes here");   BEFORE AFTER This is just a small example of how you can restyle the default notifications, but there is still plenty of ways this could be improved. If you have some ideas or other styles that you would like to share, feel free to post them in the comments below.

Creating Extraordinary Service Portals on ServiceNow

Check out our new Service Portal showcase video, featuring some of the 70+ portals we've designed and developed over the past 3 years. If you're interested in talking to us about your Service Portal project, you can book some time on our calendar here: https://calendly.com/newrocket/60min Or visit our website newrocket.com

Portal Localization Breakout at Knowledge 2019

Want to learn about how to localize your Service Portal? Learn how during our breakout session at K19! Service Portal localization presents a unique set of challenges. After localizing several portals in multiple languages, we've identified some best practices that make the process of extracting strings, managing the translation process and validating the translations less painful. DATE / TIME – Thur, May 9, 12:30 pm – 1:10 pm SESSION ID – CCB0784 SESSION TYPE – CreatorCon Breakout TRACK – CreatorCon Hope to see you there! The NewRocket Team – K19 Agenda

Let’s Meet at Knowledge 2019!

We’ll be attending Knowledge 2019 in Las Vegas in May! Be the first to check out our brand new LaunchPad Theme and RocketFuel UI Design System. What if you could completely redesign your service portal in just a few minutes? With our new custom design accelerators, you can. Meet with us at K19 to demo our brand new LaunchPad Themes and RocketFuel UI Design System. Together, these innovative new products can take your portal from 0 to 60 in just a few clicks. We will be available in between and after sessions from Monday through Friday. If you would like to lock in a time to meet with us, click the link below to add a meeting on our calendar. We'll see you in Vegas! Nathan Firth - Meet us at K19

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-5dcef0f12c6d9386958631/] 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-5dcef0f12c6e0390542014/] 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-5dcef0f12c6e5398793349/] 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-5dcef0f12c6e9640119863/] In order to use the i18n service, you must also declare the variable in the HTML using the <now-message> syntax [crayon-5dcef0f12c6ed450371867/] And then you can render the message in HTML using the {{}} syntax [crayon-5dcef0f12c6f0963072000/] Server Script For all server-side translations, use the gs.getMessage() method [crayon-5dcef0f12c6f4384226237/] It is also possible to format certain template strings by passing in an array of strings as the second parameter: [crayon-5dcef0f12c6f8586584842/] 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.