Skip navigation

Developer Community

13 Posts authored by: Chuck Tomasi Employee

Short answer: Don't name your fields (in scoped apps) 'event'. It will come back to haunt you in notifications.



I was making a demo app. I extended task to a scoped table called x_meetup_event. From there I created a m2m table with sys_user (x_meetup_m2m_invite). This table basically has two fields user (reference to sys_user) and event (reference to x_meetup_event.)


As records are added the table, my plan was to trigger a scriptless notification with details about the event by dot walking through the event field, for example:


Event name: ${event.short_description}

Start time: ${event.work_start}


It took me a while to figure out why I wasn't getting any text next to the labels. After quite a bit of testing in the global scope and with other table names, it comes down to 'event' is a reserved word in notifications. Sure, now that I know, it all sounds so simple. The documentation mentions event.parm1 and event.parm2 are available in mail scripts, but the Notifications page says nothing about ${event}. This is one case where I appreciate the u_ prefix on tables and fields in the global scope.


You may run in to similar issues with fields named 'email', 'template', 'email_action', and 'current'. In general, stay away from naming fields the same as objects. If I were still in charge of the Technical Best Practices docs, I'd add this in there. Right martin.wood and enojardi?



In this episode, Chuck and Josh discuss some API methods with GlideSysAttachment and how to make Service Portal widgets talk to each other.





00:00 Introductions

03:12 API of the Week

11:04 Service Portal app introduction and issue

13:55 Construction begins - create spinner widget and place on pages

20:53 Add listener to spinner widget

28:17 Add $broadcast to new page widget

34:53 Convert .success() to .then()

38:20 Add $broadcast to output page widget

38:57 Sidebar discussion about localization

47:56 Testing

50:38 Experiment without $timeout

51:49 Refactor opportunity?

54:30 Wrap up & recap

59:17 End




Mimeo copies hierarchical data between tables while preserving sys_ids on reference fields all without scripting! This is great for moving data from a global app to a scoped app, or updating data on a secondary table for reporting or limited access use cases. Using familiar tools such as the auto mapping feature and mapping assist borrowed from import set transform maps, you can quickly constructed a map of tables and fields to copy. Mimeo identifies the reference fields that need new sys_ids and updates them to point to new records in the target tables.


Mimeo also allows you to quickly debug and retest your maps. These maps can be captured in update sets to easily migrate them to other instances for additional testing and production.


Common use cases

  • Migrate data from a global app's table structure to a scoped app's tables
  • Replicate (all or part of) data from one set of tables to another for reporting or users with separate ACL structure





  • January 3, 2017: Tested with Geneva, Helsinki (P7), and Istanbul (P0)


Explanation/Demonstration Video


Enable your no-code and low-code developers to create solutions to commonly scheduled tasks. With no scripting, you can select and update a set of records on a table, trigger notifications, and more. If the scriptless solution doesn't completely answer your questions, check "Advanced" and get a head start on your JavaScript code to unleash the power of your low-code and pro-code developers.


How this never made it in to the platform before today, I don't know. I was tinkering around with another project and asked myself "How do scriptless business rules work?" With a little reverse engineering and a few emails to my friends in development I was able to marry that with the condition field to come up with this solution.


Common use cases

  • Send approval reminders if not approved in 7 days
  • Cancel approvals after 30 days
  • Send Knowledge base article reminders 30 days before expiration





  • October 20, 2016: Tested with Helsinki P4 and Istanbul (pre-release)


Explanation/Demonstration Video

In this video I show you how to use the list filter condition builder to create complex queries and use them in your scripts.


No need to know SQL programming.

No need to try and decipher GlideRecord addQuery/addOrCondition nuances.

Just build your filter, copy the query, and swap out the hard coded values for variables!


(click the full screen icon in the video for best viewing.)



I work with a lot of really cool people and I want to share that enthusiasm with you. Join me as I talk to katharine.campbell our supervisor of multimedia. I've known Katy since she and her team asked me to do some voice overs in 2013 (or did I ask them?). She has been with ServiceNow since April 2012 and has gone through some major changes professionally and personally.




Subscribe using iTunes




I work with a lot of really cool people and I want to share that enthusiasm with you. In this episode I'm joined by jason.mckee, a principal developer evangelist at ServiceNow. Jason has been a ServiceNow employee since October 2014, but his history with the company goes back even further. I was talking to Jason at our annual ServiceNow Knowledge conference, in Las Vegas in May 2016 when he started telling me some really great stories and I knew he had to be on the show.




Subscribe using iTunes


This video can help with several common questions that come up fairly frequently on the community. It will help you with:

  • Debugging business rules
  • Developing and debugging server side scripts
  • Managing lists



Referenced material:

Business Rules - ServiceNow Wiki

Business Rules Best Practices - ServiceNow Wiki

TechNow Episode List

Managing Glide Lists

Chuck Tomasi

TechNow Episode List

Posted by Chuck Tomasi Employee Jun 17, 2016

This list contains all known episodes of TechNow with links to the corresponding discussion threads and blog entries.




Episode #TitleRelease dateDescriptionPPT
1Jelly part 1February 1, 2013Introduction to what Jelly is, how it works, and where you find it with some simple examples.ppt-20.png
2Jelly Part 2February 22, 2013In part 2 we cover some of the language basics and common mistakes. Lots of demos again!ppt-20.png
3Jelly Part 3March 15, 2013In the final part of our series on Jelly, Andrew and Chuck walk you through testing and debugging your Jelly code along with some examples of what people have built with Jelly. Unlock even more power on your favorite platform with Jelly!ppt-20.png
4Server side scripting fundamentalsApril 5, 2013Chuck and Andrew take you through some of the fundamentals and best practices of server side scripting. There's a lot to know and we'll share as much experience as we can in one full hour!ppt-20.png
5Client side scripting fundamentalsMay 10, 2013This time Chuck and Andrew cover fundamentals and best practices of client side scripting. It's going to be another full hour of examples and best practices to help make you more effective with ServiceNow.ppt-20.png
6Script includesMay 31, 2013Andrew and Chuck LOVE script includes. Watch the next TechNow episode to find out the benefits script includes have. You will soon improve the effectiveness and efficiency of creating and maintaining your ServiceNow code.ppt-20.png
7User Interface DesignJune 21, 2013

ServiceNow makes it easy to create forms, lists, and other user interface objects. However, just because you don't need to know HTML, CSS, and JavaScript to quickly build the user interface in ServiceNow doesn't mean an effective result is guaranteed.


In this episode of TechNow, Chuck and Andrew share some key concepts to make sure you not only build a functional interface, but one your users/clients find easy to navigate as well.

8Introducing the Technical Best Practice WikiJuly 22, 2013Did you know we have over 100 technical best practices documented on our wiki? Watch the short video and find out where you can find these gems to avoid potential issues with performance, manageability, scalability, and more.N/A
9Extending ApprovalsDecember 13, 2013Wouldn't it be nice to have a way to ask a requester for "More Information" or "Justification" without really approving or rejecting it? It would be so easy to just add an option to the workflow activity and tie it to a new state... Sorry, that feature doesn't exist (yet). Until it does, the guys will show you a simple way to get this functionality you want without a lot of work. Using a simple UI action, some basic workflow skills, an email template, and an inbound action, you can make your approval process more robust!ppt-20.png
10Faster Access Control List RulesJanuary 16, 2014Performance can suffer when your ACLs use a script to query the database over and over to get the same result. Andrew and Chuck show you a way to make the system "remember" repeat queries and cache the answer for better performance.ppt-20.png
11Mail HeadersFebruary 14, 2014Make your administrative tasks easier and quicker! Chuck and Andrew share a solution to reduce maintenance for one of the most common notification requirements - standardized outbound headers and/or footers. Sure, copy/paste works well to make them all the same the first time, but maintenance can be time consuming. Join us and start to become a Jedi of managing data instead of going back to dev to make changes.ppt-20.png
12Condition FieldsMarch 14, 2014Save time and effort by using condition fields on your forms effectively. Chuck and Andrew will show you options available to manage data instead of hard coding conditions in to your requirements and the use cases for each. One of these choices is the condition field. This is an easy to implement solution that offers incredible flexibility and avoids costly development/test time as conditions change.ppt-20.png
13Defining Related ListsApril 30, 2014See your ServiceNow related information in a whole new way. You are not limited to records with a reference field to the parent table or a many-to-many table if you want a related list.ppt-20.png
14Avoid hard codingMay 16, 2014Learn how to recognize and avoid hard coded values in your scripts and workflows to help save time and money later by managing data instead of managing code.ppt-20.png
15GlideRecordSecureJune 20, 2014Chuck and Andrew cover the GlideRecordSecure class, compare it to GlideRecord, including the when, why, and how to use it. Let your scripts take advantage of ServiceNow's security. ppt-20.png
16Eureka NotificationsJuly 18, 2014Join Chuck Tomasi and Andrew Kincaid as they guide you through the improvements made to notifications in Eureka. Find out about full HTML support, how scripting is handled, how to debug outbound email issues, and convert your legacy notifications on demand.ppt-20.png
17Eureka ACL DebuggingAugust 18, 2014Join Chuck Tomasi and Andrew Kincaid as they guide you through the improvements made to access control list (ACL) debugging in Eureka. Find out how to quickly and easily resolve access control issues, what the different icons mean, and which ones get evaluated first.ppt-20.png
18REST APIOctober 24, 2014Join Chuck Tomasi and Andrew Kincaid as they guide you Eureka's REST API.ppt-20.png
19Orchestration - Behind the scenes at Knowledge 15March 26, 2015

Join our ServiceNow team of Chuck Tomasi, Kreg Steppe and Eric Williams for a look behind the scenes of what it takes to provision over 35,000 virtual machines for the Knowledge15 conference.  Kreg and Eric are the primary owners of the system that manages and provisions all those instances on time and with the proper configuration.


If you don't think ServiceNow uses it's own product, think again.  This is where we really push our Orchestration product.

20Fuji Features - Scoped ApplicationsApril 22, 2015Live from Knowledge15!  Join Chuck Tomasi and Kreg Steppe for TechNow Episode 20. This special show highlights new features in the Fuji release for building custom applications, what scoping is and what it means to you as you create awesome new solutions.ppt-20.png
21The Power of ProcessorsAugust 20, 2015Chuck and Kreg dig deep in to one of the most powerful and flexible features of ServiceNow – processors. Processors provide an end-point (URL) allowing you to format ServiceNow data in almost any way imaginable. You are likely already using processors and not even aware of them. We’ll show you some common usage and then demonstrate how to unleash this amazing feature.ppt-20.png
22Native iOS App FeaturesJanuary 27, 2016In this Ask the Expert, you will be guided through the latest features of the ServiceNow iOS application. The app is more than just an embedded browser, it features quick access to your favorites, the camera, geolocation, fast data entry and response, and more. Watch and learn.ppt-20.png
23Geneva - Scripted REST APIsFebruary 24, 2016

Watch the demo with the TechNow Team, Chuck Tomasi, Kreg Steppe, and Dave Slusher

And post your questions below.


Dave Slusher along with Chuck Tomasi and Kreg Steppe present an overview of a new feature with Geneva - Scripted REST APIs. This allows you to create flexible sets of functionality with a full scripting environment to integrate with external services and user interfaces. In this episode We show the range of options available and demonstrate some functionality on the fly.

24Custom Build in Activity Designer for OrchestrationMarch 30, 2016

Watch the demo with the TechNow Team, Chuck Tomasi, Kreg Steppe, and Dave Slusher

And post your questions below.


Kreg Steppe, Chuck Tomasi, and Dave Slusher build a custom activity using the Activity Designer for Orchestration. Much like Orchestration allows you to create a process that is reusable, the Activity Designer allows you do something similar by easily building custom activities that you can reuse in your Workflows. The team demonstrates Activity Designer templates, sharing data between activities, and parsing data from input.

25Setting Properties Pages for your Custom AppApril 27, 2016

Join Chuck Tomasi, Kreg Steppe, and Dave Slusher as they show you how easy it is to create a properties page for your custom app.


In a past TechNow Episode (14), we showed you how to create system properties to avoid hard-coding values to easily configure your application.


This episode follows up to help you manage your properties in a standard, familiar user interface. We cover properties categories, ordering, property usage in scripting, and more.

26Source Control New Platform Feature in HelsinkiMay 18, 2016Join Chuck Tomasi, Kreg Steppe, and Dave Slusher, live from Knowledge 16, we'll take an in depth look at source control, one of our favorite new platform features in Helsinki. Source control offers improved management for your application development, allows easy distribution to other dev instances, and leverages industry standard applications.ppt-20.png
27Community EtiquetteJune 29, 2016

Pradeep Sharma joins Dave Slusher and Chuck Tomasi as the subject matter expert to talk about using the community to its fullest. We share the tips on how you can improve chances of getting your question answered and how to participate on the community and earn the cool badges.

28Service Portal Part 1
July 20, 2016

Join Chuck Tomasi, Kreg Steppe and Dave Slusher as they walk you through creating and using a Service Portal widget on the Helsinki release. We will demonstrate how to code the widget itself with the real time editor, how to set up a Service Portal page to include that widget, and how to make that page available to end users. Service Portal is the Helsinki developer feature with the most excitement behind it and for good reason. Come see why!

29Service Portal Part 2August 17, 2016

Join Chuck Tomasi and Dave Slusher as they continue their discussion on Service Portal based on your input! We get in to some more advanced topics around creating widgets and solving problems you asked about. Service Portal is the Helsinki developer feature with the most excitement behind it and for good reason. Come see why!

30Cloud ManagementSeptember 22, 2016Kreg Steppe leads you though the process of managing your existing cloud images and instances. He will take his current assets and create a catalog item with a workflow using the Cloud Management plugin. Be sure to catch the community quick tip.ppt-20.png
31Regular Expressions Part 1October 13, 2016

Chuck, Dave, and Kreg are back to help you understand the world of regular expressions. These powerful patterns can be extremely useful in scripting, Edge Encryption, and more. Find out how to understand, build, and maintain your regular expressions to take advantage of some very powerful features. Community quick tip: IIFE function format.

32Regular Expressions Part 2November 10, 2016

Chuck, Dave, and Kreg are back with more regular expression help in part 2. We'll help you understand the world of regular expressions. We'll talk about modifiers, capture groups, and more. Community quick tip: Copy query/addEncodedQuery()

33GlideAjaxDecember 15, 2016Chuck and Dave cover GlideAjax - a common scenario for making server information available to your client scripts. While this can seem complex at first, they take it step by step and explain everything to help you feel confident in creating effective and efficient scripts. Community quick tip: Accessing files in Studio and other places.ppt-20.png
34Istanbul Platform FeaturesJanuary 18, 2017This time the trio gives you a developer’s overview at what’s new in Istanbul. They get in to enhancements to Studio, new testing capabilities to reduce your upgrade cycle, new scripting APIs, enhancements to notifications and much more! Community quick tip: GlideRecord positioning.ppt-20.png
35Automated Test FrameworkFebruary 16, 2017Reduce the time it takes to upgrade! The Istanbul release introduces an Automated Test Framework included in the ServiceNow platform. In this session we explore how test cases, test definitions and test suites are organized; how to execute them and what tests are included pre-built with the framework. We also explore how to code your own tests as well and show the abilities and limitations of using the ATF to improve quality of delivered applications. Plus the community quick tip: Cascade Delete.ppt-20.png
36Dates and TimesMarch 16, 2017Join Kreg Steppe, Dave Slusher, and Chuck Tomasi as Kreg clears up some of the mystery around one of the toughest assignments in ServiceNow - scripting dates and times. Learn what controls you have, some of the APIs, and best practices to gain an understanding of how to properly solve your requirements. Plus the community quick tip: Reference Qualifiers.ppt-20.png
37Understanding JSONApril 13, 2017Constructing easy integrations to other systems is a big part of what makes ServiceNow such a wonderful application development platform. Sometimes the challenge lies in figuring out exactly what you have been given and how to apply it in ServiceNow. In this episode, the TechNow crew will guide you through one of the most common data exchange formats - JSON. Even though the results from your remote system are text, it may be difficult to understand it and get access to the specific property or value in JavaScript. As always, the team starts with some easy examples to help you understand the fundamentals and build more complex scenarios to help you interpret and access complex data objects. Community quick tip: Avoiding pitfalls with platform objects.ppt-20.png
CC17-1Create apps at lightspeed - no/low codeMay 9, 2017Chuck, Dave, and Kreg build an app from scratch to manage meetups in your organization with little to no script to show how easily you can build functional apps.ppt-20.png
CC17-2Create apps at lightspeed - pro codeMay 10, 2017The crew returns the next day to build additional functionality on the meetup app with JavaScript, a REST integration, and Service Portal widget to give an amazing user experience.ppt-20.png
38Advanced Workflow Tips and TricksJune 22, 2017

Join Kreg Steppe, Dave Slusher and Chuck Tomasi as Kreg shows some tips and tricks with the ServiceNow Workflow GUI. We will take away a little of the mystery behind it and make it a more useful for you. Learn a bit about Timers, Waits, Scripting in Workflows and building your own activities to make Workflow work exactly as you want it to.

39Appointments and RemindersJuly 20, 2017

Chuck takes a look at some hidden gems in the platform that have been in the system almost since the beginning. The Appointments and Reminders table are available to any table extended from task that can add some very useful features to your application without very little development effort. Quick tip: Display values on reference fields

40Jakarta Platform FeaturesAugust 14, 2017

Dave, Chuck, and Kreg show off their favorite Platform features, updates, and enhancements in Jakarta. While there are no Earth-shattering new features as in the past several releases, the sum of the features we’ll cover may surprise you. A wide range of features from the UI to integrations have been updated.

41Jakarta Service PortalSeptember 14, 2017

Service Portal remains one of the hottest topics for ServiceNow developers. On this episode of TechNow we will overview the state of the art of Service Portal as of the Jakarta release with an overview of capabilities for those new to the functionality. We will also cover a detailed examination of the new and updated features from the Istanbul and Jakarta releases. The ServiceNow platform + AngularJS is greater than the sum of its parts so join us to learn why!

42Basic ReportingOctober 12, 2017

Join Kreg Steppe, Dave Slusher, and Chuck Tomasi as Kreg demonstrates the reporting features of ServiceNow. Take a look at the ServiceNow Report Writer and it's features. Leverage data we all collect in our systems and turn them into reports as well as mix it up into various styles and see how many ways we can look at our data. Plus the community quick tip: application navigator shortcuts

43Advanced ReportingNovember 16, 2017

Following up on TechNow episode 42, we dive a little deeper into ServiceNow reporting and taking a look at some advanced features. Now that we are visualizing our data in reports, let’s make our reports a little more robust by exploring drilling down, interactive dashboards, related lists, and database views.

Quick tip: Best practices with reference fields

44Kingston Part 1December 4, 2017

ServiceNow's Kingston release is packed with new platform features - so many that we need to make this a two part series. In this part, Dave Slusher and Pradeep Sharma guide us through two of the hottest new features: Flow Designer, our next generation workflow, and Integration Hub, our new orchestration engine. Watch and learn as we demonstrate how to use and build the components around these cornerstones that will change how you build applications. Quick tip: Chuck shows a short hand notation for retrieving one record using Javascript.

Quick tip: Chuck shows a short hand notation for retrieving one record using Javascript.

45Kingston Part 2December 14, 2017

In part 2 of our series on Kingston Platform features, Chuck and Pradeep dive in to many of the other platform features that were released in Kingston. Find out what's new and how it can be applied to your applications and integrations to make development, testing, and deployment faster than ever.

Quick tip: Avoiding scripting issues when your field is named "query" or "next".

Sometime between 2008 and 2010, when I was a customer, ServiceNow introduced the tabbed interface for forms. It wasn’t until 2015 that this became the default. For years I had to tell people, “There’s a better way to look at these forms…” then show them what to click to get there (painful). Once they went to tabbed forms, few ever went back. I yearned for a way to make the system default to tabbed forms, then I where this gem was hiding - user preferences.


You can make tabbed forms, list sort order, theme, or any other user preference a default for new users quite easily. While you cannot prevent them from changing it to something else afterward, you can certainly put them on a path to a better (or at least consistent) experience.


Let’s say you want all new users to have their UI16 left navigator default to Favorites instead of the standard menus/modules. Here's how:


1. Click the star icon to change your view to favorites

2. Navigate to sys_user_preference.list (or filter on pref to filter down to User Administration> User Preferences.) DO NOT, go back to the menus/modules directly or you’ll change the value of the user preference we’re trying to set.

3. Sort the list by recently updated records.

4. Locate your recently change preference for favorites (navigator.activeView). You may have to filter on records where you are the user.


5. Open the record.

6. Check the System box

7. Remove the User value.


8. Insert (not Update, not Save) the record.


Login or impersonate a user who has never tried UI16 before… You’ll see it default to favorites. While this isn’t terribly useful for a new user, it serves as an example how you can make default user preferences.

Chuck Tomasi

K16 Lab: Source Control

Posted by Chuck Tomasi Employee May 4, 2016

Hello fellow ServiceNow Developers!


Chris Maloy and I are excited to be in the first lab session following the opening key note on Tuesday May 17 at 10:00 to introduce you to one of our favorite Helsinki developer features - Source Control.


Join us for this hands-on lab as we introduce you to our Git integration, the ways it can help you manage your development across multiple releases, and the best practices to become effective. Chris, me, and a team of us have been working closely with the platform and integrations teams on this feature extensively for the past few months. We know once you start using it, you'll want to use it all the time.


Here's our agenda for this lab:

  • Introduction to source control followed by a hands-on lab.
  • Tagging and branching followed by a hands-on lab.
  • Conflict management followed by, yes, another lab.
  • Stashing, and of course, another lab.


If you have been to one of my sessions in the past, you know that I encourage participation - OK, perhaps "bribe" is a better word. Note for newbies - sit close to the front.


Sign up today and I'll see you in Vegas!

Watch the LIVE demo on January 27, 2016, 11am PT

with Chuck Tomasi, Kreg Steppe, and Dave Slusher


In this event, you will be guided through the latest features of the ServiceNow iOS application. The app is more than just an embedded browser, it features quick access to your favorites, the camera, geolocation, fast data entry and response, and more. Watch and learn.


Click "Join the Discussion" to Watch the Demo and post your questions for Chuck, Kreg, and Dave.



Featured Experts


profile-image-display.jspa?imageID=2091&size=200Chuck Tomasi is a Platform Architect for ServiceNow.  He is a computer science major with over 30 years of IT experience. As a former ServiceNow customer, Chuck won the first Innovation of the Year Award at Knowledge 10. Since joining ServiceNow in 2010 as a Technical Consultant, he has done many large scale ITSM implementations and custom applications, acted as an adjunct instructor for Education Services, created and lead the Technical Best Practices program, and co-hosts the ServiceNow series “TechNow”.



profile-image-display.jspa?imageID=3603&size=200Kreg Steppe is the Orchestration Product Principal for ITOM within ServiceNow. He specializes in developing integration

solutions and automating repeatable processes. Kreg's prior experience includes managing Network Support and Application Development on cloud based networks and DNS maintenance for Manager Tools.




profile-image-display.jspa?imageID=10516&size=200Dave Slusher has been developing software for 20 years for companies such as Intel, Orbitz, Dell Secureworks and many startups lost to history. He has been with ServiceNow for two years, first in Expert Services and now as the Developer Evangelist for the developer community and portal. He earned his BS from Georgia Tech and his MS in Computer Science from the University of Louisiana - Lafayette.

Chuck Tomasi

Exam Manager

Posted by Chuck Tomasi Employee Jun 12, 2014

The Exam Manager application is available for download on the share site.


The Exam Manager application builds on the easy-to-use ServiceNow platform to quickly create, manage, and administer exams. The system is designed around multiple choice style questions to be delivered to multiple users. The student (user) interface is a custom UI page to make the exam taking process intuitive. If you have any type of internal training, this is a great way to validate the students' knowledge.




Find out more by watching the video.

Filter Blog

By date: By tag: