Building an App for ServiceNow

ServiceNow kind of has a thing for the letter ‘S’.  Is the thing you just downloaded or built a Scoped app?  Is it a Share app?  Is it a Store app?  It could be all or none of these things.

What is a Scoped app?

A Scoped Application is a distinct module or application within the ServiceNow platform consisting of one or more features.  The idea is that the functionality of the app is distinct enough that it shouldn’t be tightly coupled to one of the existing modules in ServiceNow or tightly coupled to the Global scope.  Any admin can create a new application via ServiceNow Studio.

My Lex Integration experiment was a scoped app, but not a store or share app.  My ServiceNow Cookbook describes how to integrate a scoped app with Github so that it can be easily shared with others.  It’s a great way to connect with other developers with similar interests and to bounce ideas off each other.

What is a Share app?

If you think your scoped app is ready for publication, you can begin the process of sharing it to the ServiceNow Share portal.  The portal has gone through some recent changes and has definitely matured in terms of content and activity.

While everything on Share is in varying stages of development and maturity, everything published there is free.  This is definitely good for new ServiceNow users that are just ramping up on the platform and don’t want to retread a lot of ground re-solving solved problems.  The trade-off is that, like most community supported or open-source code, things available on the Share portal are ‘use at your own risk’ with no guarantee of support, present or otherwise.

What is a Store app?

If you think your scoped app is ready for primetime, you can begin the process of publishing your app on the ServiceNow Store.  This is a premium portal where official Technical Partners of ServiceNow can get their apps certified and endorsed on the ServiceNow platform.  Apps on the Store can be either free or paid, but they benefit from additional endorsement and official support from the publisher and the ServiceNow brand.

Why should you want to build one?

Well, when I build apps, libraries or other code bases, I’m usually just experimenting.  But building useful things that other people want is a proven path towards improving your value as a developer and a partner for users of the platform.  Sharing interesting things that you’re working on is a way to connect with others and create opportunities to share with larger audiences.  It can also open up new business relationships or revenue streams as you develop skills and create products worth paying for.

How do you get started? 

Any member of the ServiceNow Developer program can create or contribute to projects on the Share platform.  Here’s a link to the FAQ.  If you or your practice is interested in publishing on the Store, information on how to get involved is available here.

As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Knowledge 18 – A Look Back

Last year, I was privileged to attend and present at ServiceNow’s Knowledge 17 conference and was definitely looking forward to another opportunity.  Luckily, someone was asleep at wheel when screening presenters as I was invited back!

This was my first time presenting all on my own at Knowledge.  It’s a bit intimidating but also very rewarding.  If you’re interested in presenting, ServiceNow submits an open request for presenters leading up to the conference.  Some of the things to consider when building your presentation are as follows:

  • What will the attendees learn and why will they care?
  • What are the problems you faced?
  • What was the objective?
  • What was the solution?  How long did it take?
  • What did you learn?
As is common to conferences, there will be a keynote presentation to set the tone and share the overall theme.  This year brought a renewed focus on the user experience within the platform and not doing tech for tech’s sake.   Many promises of new features as well as a road map for our next six major releases.
 
Of course, we need to hit the ground running on our first day.  This had to be one of my favorite sessions and one of the most challenging.  The presenters took the hands-on experience of the workshop to the next level by having each of our instances visible from the stage as we walked through simulations of events and alerts.
 
Another very enlightening session walking attendees through creation of a custom CI Class and then building Discovery criteria to identify nodes fitting this new class and merging it into our CMDB.  A great primer for those of us who do any work in Service Mapping
 
This was a fun one focused on reimplementing ad-hoc Powershell and SSH activities in the Workflow Engine.  For anyone who does much scripting in Microsoft environments, having the ability to integrate your existing scripts into Orchestration activities is invaluable.
 
This keynote brought more substance to the promises of the first day’s session.  Much emphasis was placed on new mobile and user specific features as well as interpretation of user needs and virtualization of first responder sessions using AI and bots.  Some of the skits were a bit corny and stilted but the message was clear.  People shouldn’t dislike or be frustrated by their work tools.
 
This was a fun tutorial on one of my favorite tool sets for the platform.  Seriously, if you’re a ServiceNow developer, you should be using Xplore like yesterday.  Great inline tools that give an intelligent code completion feel to the global libraries available on the platform and might help you learn about a few things you weren’t even aware of.
 
This guy was a complete jerk and never should be allowed to present ever again…
 
…But seriously.. thanks to all who attended for asking great questions and making this a great experience for me.  It’s very rewarding to see this experiment through additional points of view.  I hope you got as much out of it as I did.
 
This was my only breakout session since I tend to favor the hands-on workshops.  Still, some great improvements are being promised for Discovery and Service Mapping to make it less opaque and more accessible to the layperson.  If you want to get the full value of an IT implementation of ServiceNow, something as fundamental as node discovery and aggregation should be as basic and straightforward as practical.
 
Using Event Management to Monitor Your ServiceNow Instance Health
This was a fun little session that introduced us to a front-to-back implementation of Event Management as it applies to monitoring the ServiceNow environment itself.  Might seem like a Catch-22 to have the watchman watch itself, but it’s honestly a scenario that gets overlooked when you think about critical applications and monitoring their health and availability.
 
Another fun hands-on experience, this time integrating event monitoring to an AWS environment.  This also covered the idea of anomalies and other ‘odd behavior’ on monitored nodes and the ability to configure monitoring thresholds based on deviations from a baseline instead of express limits.
 
Summary
This was a much shorter conference for me as I chose not to attend pre-conference training.  Still, those three days were filled with the requisite fire hose of information as well as meeting a few old friends and making a few new ones.  Can’t wait for next year!
 
I’d love to hear any feedback on this post, especially if you attended Knowledge 18 and would like to discuss your own experiences.  As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Quick Update – Knowledge 18

After having a great experience at ServiceNow’s global conference last year, I’ve made it a point to keep it on my radar.  I’m happy to announce that not only will I be attending again this year, but I’ll also be hosting my own presentation!

The session is entitled Integrating Service Portal With Amazon Lex and it’s based on a demonstration of Amazon Lex I attended with a local developer community in Wichita followed by some tinkering on my own time.  The result is an open source application which can be plugged in to an instance of ServiceNow with minimal effort.  Considering the ongoing move towards hosted solutions, this is something I hope implementers of ServiceNow will find useful.

If you happen to be attending Knowledge 18 and have an interest in AWS or integrations in general, I’d love to see you there!

As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

 

So… I wrote a book…

Astinus

“I trotted down the street to my friend and mentor Paul Rink and told him the triumphant news. ‘Good for you,’ he said without looking up. ‘Start the next one tomorrow.'” – Steven Pressfield

In a recent post, I mentioned that I was working on a ‘major writing project,’ which I’m proud to say is finally complete.  It’s official.  As of this week, I am a published author!

A few months ago, I was approached by the folks over at Packt Publishing to update their ServiceNow Cookbook to a current edition.  Having always wanted to write a book, I jumped at the chance.

For those of you who haven’t used one, a technical cookbook is intended to be used much like a culinary cookbook.  This means you should be able to use it as a general reference and jump around between ‘recipes’ to complete specific tasks in the relevant language or framework.  While this book follows this format in general, there are some chapters that have an overarching progression in building up a specific feature.

You can pre-order the ServiceNow Cookbook or purchase a subscription to access the content at the following links.  Hope you enjoy it!

Packt Publishing

Amazon

As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Integrating Amazon Lex with ServiceNow

In a recent post, I covered creating chatbots in AWS Lex and created a simple bot for ordering jellybeans.  As promised, I took my bot and integrated it into a custom page in ServiceNow’s Service Portal.  While I’ve worked on several integrations in this space before, this was my first time integrating an AWS service into ServiceNow.

In order to integrate Lex, I needed to provision the following:

  • A ServiceNow instance (Helsinki or later)
  • An AWS Account with a Lex Bot (Created during my previous experiment)
  • An AWS User with the AmazonLexRunBotsOnly policy assigned

With these components in place, it was time to decide on an architecture.  I needed a UI for users to chat with Lex, client-side code to handle the text and transact with Lex, and finally some server-side code to initialize parameters for the service layer that are stored in system properties.

For the UI, I created a new Portal, Page and Widget to host all of the above.   The Javascript SDK for AWS is included via a CDN link.  I would have preferred to keep this piece server side, but the current offerings for the SDK are limited to either client-side or server-side with Node.js, which isn’t available for now.

What was critical to keep server side were the application credentials for the service account itself.  There are several properties that must be gathered from your AWS configuration and added as system properties in the ServiceNow platform.

With all this in place, it was time to test!  First by sending a message to Lex to invoke the Intent for ordering a jelly bean:

Then to follow the same flow of the Intent, telling the bot what flavor I want:

And finally confirm my order:

Depending on how you’ve configured your bot, you can either have Lex return parameters to ServiceNow or to pass them forward to an AWS Lambda or other endpoint.  It’s easy to see the potential here for using Lex to drive another entry point for your Service Catalog or even things like Orchestration.

If you’d like to take a look at the app, I’ve got it on my GitHub here.  I’m interested in any feedback you have as well as anything to share on ServiceNow app development or AWS Lex.  As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Thanks for looking in!

Knowledge 17 – A Look Back

What is the purpose of a conference?  

To some it’s an opportunity to get out of the daily grind for a few days and see some cool new tools and make some new connections.  Ultimately, it’s an opportunity to ensure that you’re heading in the right direction and to come back armed with knowledge to guide conversations about existing work streams and inspire new ones.

Knowledge is an annual conference put together by ServiceNow intended for any individuals that use or build on the platform.  My involvement this year started with an invitation from a colleague to help with a presentation he was working on for this year’s conference.  After a live rehearsal at our local SNow User Group, I was very excited to attend and both learn from and share with others in the field.

Sunday, May 7th – Monday, May 8th

My conference journey began with a 2-day pre-conference seminar on Business Application Development.  While not highly technical, the course provided valuable information to guide decision making and recommendations for applications on the platform.  Additionally, they provided strategies for identifying and solving pain points or broken windows on the platform in general.

Other guidelines for improving our approaches to development touched on defining measures, such as return on investment or solving common business challenges by hiding or streamlining complexity.  Additionally, we were reminded about how important it is to establish and drive the narrative of solutions built on the platform.  Essentially, to tell our customer base what we’re doing and why and to solicit feedback and adapt our approaches accordingly.

On the development side, we spent some time on effective user story writing as well as best practices around extending the existing core modules and organizing any customizations or new features we implement.   We were introduced to some new features for upcoming releases such as UI/UX functionality and improvements to automated testing and the resurrection of a previously deprecated debugger which will be an extremely useful tool for developers.

For architecture, we went over some basic tasks like table creation and decision making around when to build new and when to extend existing tables.  Also,  we were coached on how important it is to define the scope of a new feature before beginning work.  Applications should have a clear purpose that can be reconciled to the measures of business value and customer feedback covered previously.  You might enjoy building something cool in a new way, but that’s never a guarantee that it’ll see any adoption beyond curiosity or superficial interest.

Tuesday, May 9th

Tuesday marked the official beginning of the conference and the ServiceNow CEO’s Keynote did not disappoint.  A record setting 15,000+ attendees were challenged to improve the customer user experience, protect the value that we’ve created and continually work to reclaim wasted time and resources that can be better utilized elsewhere.  Members of the ServiceNow community were informed of additional efforts to continue to address the gender gap and reminded to challenge preconceptions about career paths for anyone and everyone.

My first class of the day was Angular2 applications for the ServiceNow Platform.  While I’ve been working in Angular for a couple of years now, I had zero experience in Angular2 or deploying a ServiceNow application from a GitHub repo.  This session gave us a walkthrough on staging and testing an Angular app locally using NodeJS, publishing to GitHub and then directly installing the app from a hyperlink on GitHub itself.  This spawned quite a few ideas for myself around better organization of code and sharing that code with others.

Next, I attended a course on Testing Inbound REST APIs.  This is a possible feature for Jakarta that will allow developers to use SNows Automated Testing Framework to simulate HTTP calls against tables and services they build and establish expectations around functionality and behavior on those calls.

My labs were done for the day, so I attended a business oriented breakout called Enabling Enterprise Architecture Decisions Through the ServiceNow Platform.  The session overed ideas and justifications for consolidating existing services and data into the platform to eliminate wasteful and repetitive practices throughout the enterprise.  The idea is that, by removing many of the seams between various layers of stand-alone solutions, ServiceNow simplifies the conversation around enterprise architecture by assembling it into a unified platform.  Additionally, the platform can allow stakeholders to focus on managing and prioritizing services rather than keeping track of nodes and their dependencies separately.

To cap off the day, we had our own presentation on Service Portal. Our topic specifically covered challenges and lessons learned when integrating 3rd party platforms into the Portal itself and providing a seamless and positive user experience.  This was my first time actually presenting at a global conference so it was a bit nerve-wracking.  But, our presentation was well received with excellent Q&A from our audience.  Thanks to all who attended!

Wednesday, May 10th

I started off the day with an interesting session on certifying applications for the ServiceNow Store.  While I haven’t personally built any public applications, the standards SNow establishes for their store can easily inform standards for internal applications as well.  They covered a Top 10 list of common mistakes made when developing, mostly around roles and security.  Additionally, we were reminded of their built in module for certifying applications, which can be useful for spot checking applications or other features in progress or already in the wild.

Next was a breakout entitled Defining your App Development Methodology for ServiceNow.  This was basically an outline of steps to follow when proposing or accepting new work.  Questions around demand and identifying key stakeholders and sponsors and maintaining their interest throughout the process.  Also, there was a reminder that new features always include a subsequent cost of support and maintenance throughout the life of that feature.  One last thing: ‘Have a Testing Zealot!’  Not my term, but I’m using it anyway.

My first lab of the day was on Advanced Service Portal Widget Techniques.  We covered several implementations of a list view in the portal incorporating conventional server-side GlideRecord calls and client-side API calls.  Combined with configuration level constants like table name, we were given a template for a reusable widget that can be easily cloned and tweaked for multiple uses.

Lastly, I attended a session on Analytics and Machine Learning.  This is an equally arcane and fascinating topic for me and it will be interesting how application of AI will inform the ServiceNow platform going forward.  We were introduced to automated Virtual Agents that can act as first responders to customers and learn from previous customer engagements to guide and improve future sessions.  Additionally, machine learning can be applied to data within our existing systems to derive additional meaning from data points that human analysts might miss.

Thursday, May 11th

The last day of the conference definitely finished on a high note with the CreatorCon Keynote.  Developers and other creators were reminded that expectations are constantly changing and growing.  The sheer volume of data and the speed at which the meaning of that data needs to be communicated will only continue to grow.  We should not only be thinking of automation for customers, but also every edge we can gain in our own processes to increase our velocity without compromising effectiveness and overall quality.  Tools such as native automated testing and integrated debugging can only help.

Our last lab and session of the conference was Managing Team Workload and Collaboration with VTB and Connect.  Most of the information on Virtual Task Boards was already familiar territory for me but it was neat to see some new improvements and features, including Connect integration for live collaboration among team members.

Summary

Needless to say, this past week has been a whirlwind of people and concepts and generally drinking from a fire hose of information with maybe a small respite now and then to let those ideas breathe.  What’s most rewarding for me is to see so many people in one place excited and passionate about what they do.  Our work has a soul.  It’s necessary to recognize the value in what we do and continually strive to improve.  Conferences are good for a spot check (sanity check?) on where we’re at and where we’re headed.  I highly recommend them.

I’d love to hear any feedback on this post, especially if you attended Knowledge 17 and would like to discuss your own experiences.  As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Thanks for looking in!

ServiceNow Istanbul – What’s New?

If it’s not obvious from my most recent content, I’ve been spending the bulk of my time in ServiceNow.  For those of you who don’t know, ServiceNow is an enterprise application platform that is commonly used for its flagship ITSM/ITIL application.  While IT Service Management is its main use, the platform allows business developers to quickly deploy integrations and services in a cloud and mobile ready state with less effort than building from bare metal.

One of the most recent announcements is for the latest major release, called Istanbul.  This latest version passed into general availability this month and has many exciting new features.  I recently attended a webinar that covered the highlights.  You can find the recorded session here.

Automated Testing – This is the piece that ties back into my most recent series on testing.  The automated testing suite in Istanbul is probably the feature I’m most excited about.  The Automated Testing Feature gives developers a native toolkit for building test suites for both UI and server-side unit testing.  Tests can be organized by feature or combined into multiple testing suites for regression testing for future releases.  I’m a fan!

Debugger ‘2.0’ – One of the challenges on this platform is the debugging implementation.  Often, I find myself avoiding the native debugger in favor of logging by hand or using the browser console to detect issues on the platform.

Istanbul restores a debugger tool that was popular in pre-Geneva releases but was turned off some time ago due to functionality issues.  The updated tool runs in its own window and allows developers to add breakpoints specific to them for working with their code.  This means that developers can simultaneously use the same functions while not stepping on each other’s toes with unwanted test cruft.

HTTP Message Logging – For those of us who work with external integrations involving critical business functions, failed event captures in this space can result in unnecessary impact and reduced confidence in your service delivery strategy.  Adding to this is the possibility of finger-pointing between dev groups and a lot of guesswork in troubleshooting the failure.

Istanbul attempts to help with this by breaking out HTTP message logging out of the box and adding it by default.  This not only helps with visibility and troubleshooting of integration issues in production, but development and testing of new integrations.

Email Unsubscribe – One of the common user complaints that come with new platforms is the volume of email that comes by default.  While the platform already allows users to pick and choose what notifications they want to receive, often there’s a disconnect between the actual notification and the setting users might need to change.

One new feature of Istanbul allows developers to add an Unsubscribe link to notifications they send.  This allows notification recipients to opt out of that traffic with a single click in the moment rather than forcing them to log into their user configuration and then remember which notification they’re stopping.

Email WYSIWYG Editor – User experience is often an afterthought or even forgotten when working with a business application.  Part of improving that experience involves delivering content in a more polished manner, rather than just spamming people with walls of text.

While the previous email template editor allowed for markup content, developers were limited to a code only interface, which involves a lot of guesswork in practice.  Istanbul adds a WSYIWYG editor which will allow for quicker delivery of user friendly web-style content in notifications from ServiceNow.

As always, if you have any questions or comments, please feel free to add them here or address them to john@benedettitech.com.

Thanks for looking in!