Skip to content

Building the Knowledge11 Portal on-top of the ServiceNow Platform

Who’d have thought you’d hear about server-side JavaScript programming in the context of ITIL and service desk? That’s exactly what we get in this interview with John Roberts of ServiceNow. We discuss how they built the Knowledge11 portal on-top of the ServiceNow stack. You can use your imagination to see how this might map to other PaaS development on

For a wrap-up of the Knowledge11 conference, check out my trip-report.


Michael Coté: Hello everybody! Here we are in lovely San Diego at the Knowledge11 ServiceNow User Conference. And as always this is Michael Coté with RedMonk. And I’ve got a guest with myself. Do you want to introduce yourself?

John Roberts: Sure! I’m John Roberts. I’m a developer with ServiceNow. I’ve been with the company for almost four years now. I started the first couple of years in professional services and now I’m in the development team.

Michael Coté: So around this, around this conference, you guys came up with the Knowledge Conference Portal.

John Roberts: Yes.

Michael Coté: Usually for a conference, you have things that list the sessions and things like that, but can you give us a sense of what the Knowledge Conference Portal is, what purpose it’s serving for the conference here?

John Roberts: Sure! First of all, a little bit of background. Last year, Knowledge 10 Conference, our CMS platform was kind of the bigger announcements or the new features, the CMS plug-in allows us to build customized user interface and not have to settle with the interface that we give you by default. So people have used it to style their own instance to look like their corporate website and things like that.

Michael Coté: All right.

John Roberts: So in Knowledge10, we were announcing that platform and so we really wanted to showcase it, and we thought what better way to showcase it than make our Knowledge Conference Portal built on top of our CMS platform.

What makes a platform so nice to build on top of, I want to add a new table, I want Knowledge Conference agenda records; I want meet an expert records. The platform itself makes it very easy to build this platform up into an application. So we didn’t have a conference management application, but we knew the data types we wanted; and just like a customer would in their own instance when they want to have a custom application for their business, we just decided what does a data structure look like? Let’s build a table to house all the session information, what are the schedules, who is running it? And then the same thing with the expert; what is a simple data structure? We need an expert, we need a time, and we need an attendee to be able to book it.

So in all of that we leverage the same technology that our customers have access to, to build out custom applications very easily. And then again we use the CMS platform to just present that in a prettier format.

Michael Coté: If I was building some other thing on top of the ServiceNow platform — I don’t know, arranging who can take out the golf carts that they have in this lovely resort here or something, scheduling a resource like a golf cart…

So it sounds like from the way you’re describing it, I don’t know if this is the only way, but a way to start is that you basically define the data model if you will – the tables.

John Roberts: Yeah, what information do you need? What do you want to store? would be the first thing? Once you understand what do you want to capture for information, it’s very easy for our admins to — customer admins even — to build that table structure. You don’t have to understand a lot about database models, you don’t have to understand database language; all through our user interface, you can define, I need a table name and I want these field names on it.

Michael Coté: Right.

John Roberts: And then you just start filling out the forms just like you would with any other record in the system. So it’s relatively easy to build out that data structure.

So then the next step would be, like you mentioned, what do we want to do with that data. And there is a number of ways we have automation we can build onto the backend of the system, and then we have user-facing automation. I need a button on this form to do something; I pull up a golf cart and I want to book it. I’ve built a button to mark it as reserved, something like that.

Michael Coté: And then that might be a field in the table row that’s like —

John Roberts: Yeah, is it booked or not.

Michael Coté: Yeah. Charlie cart is reserved or whatever.

John Roberts: Yes.

Michael Coté: I don’t know what the name of the carts here. Is there actual like programming that you’re doing, like code that you’re writing, or is it more wiring things together or what is —

John Roberts: It’s a little bit of everything. So in the simplest case, if you want a very simple application, you can perform some of this functionality or the logic that drives changing the data structure with really no scripting. We have things like UI Actions and UI Policies that make it easy to define logical changes through the user interface without having to script too much.

But most people that’s simple model really doesn’t do a lot for them, so we have a variety of ways where people can script changes to the data structure. So we have both. We support server-side and Web-based client-side scripting to manipulate the data.

Michael Coté: And then what’s the language you guys use for that?

John Roberts: It’s JavaScript.

Michael Coté: So you run JavaScript on the server and the client side?

John Roberts: Yes.

Michael Coté: Oh, yeah, yeah. Now that makes sense; I mean there’s — with things node.js and things like that, like there is this crazy renewed enthusiasm for JavaScript on the server side. I remember I evaluated the Netscape something or another that ran JavaScript on the server side, and people said that was madness, back in the late 90’s or whatever.

But it’s fun to see. What I like about that model is, if you can get over the fact that it’s JavaScript which for older folks this is sort of like shocking, I guess. It’s like people wearing short-pants or something…

John Roberts: Yeah.

Michael Coté: But it does seem like you can have like one language on both sides, which is sort of crazy to think about.

John Roberts: Right.

Michael Coté: It’s sort of like the UI wins over the backend almost.

John Roberts: Yes.

Michael Coté: Is there like an IDE that people have or like where does it actually take place?

John Roberts: It actually takes place right inside the application, right inside of the normal user environment that the end-users are performing their function in. The admins have a slightly different view and access to more of the behind-the-scenes records, the configuration records.

So once an admin logs in, if they wanted to define say server-side scripting actions, they would use a business rule typically that processes that logic against one or more records. So through a business rule form, they would have access to a script field. And in there they would just write their script; it’s not an IDE interface, it’s right in the application.

We do have some support for which objects are available and that’s one of the areas we’re improving right now to make that — the script fields a little more intelligent so maybe we have some context where we could do some type ahead, and what methods are available on a certain object. So we’re trying to make that a little bit smarter.

Michael Coté: Continuing part of the portal that you built, so I imagine the agenda then there was some mixture of retrieving those events through some service from the database.

John Roberts: Right.

Michael Coté: And then doing some JavaScript and HTML and stuff to render it. I mean just basically render the table.

John Roberts: Yes. That’s exactly it. So we’ve got the CMS that allows us to write an HTML front-end that doesn’t look like our application, the standard application. We’ve got the agenda sessions sitting on the backend database, and through our normal interface, we can certainly display that list of sessions. It just doesn’t look as pretty in a CMS; we wanted to really make it look like an HTML website, not a list within our application.

Michael Coté: Right.

John Roberts: So what we basically did in this case, we had to do some customization, some of it’s a little more advanced and something we call a UI page, where we leverage XML files using Jelly language that allows us to render data on the backend, configuration, and output that into HTML format.

Michael Coté: So generalizing this is a little bit, it seems like this is basically the way that you would customize anything in ServiceNow. You’re using similar ‘patterns’ is the wrong word, a similar approach, if you will.

John Roberts: Absolutely, yeah, it is. One of the other areas that’s kind of interesting still in the Knowledge Conference Portal is our automatic provision of instances, which is pretty interesting. So all of the lab sessions that we have, we give all the attendees their dedicated instance that they play with, so people aren’t stepping non each other’s code. And we provision that through our own Run Book Automation which we also launched last year a little bit, more formally this year we’re really getting heavily into it.

We’re also leveraging the Amazon EC2 Web services to run these instances. We just didn’t have the server spaces to spin up a thousand instances for every attendee.

Michael Coté: Right, right.

John Roberts: So why not leverage the cloud that’s already has that type of capacity. So also through that the Conference Portal, users can go in and say, I want to attend the scripting lab, and within 5-7 minutes, we send them an email back that we just provisioned your own instance right on the cloud for you that you can start to use.

Michael Coté: Right, so you kind of built up for a little application within the portal?

John Roberts: Yes.

Michael Coté: I guess to mix a bunch of words together, people are requesting that, and then are you actually linking some sort of JavaScript calling out to Run Book stuff or like what — I’m interested in what the chain is there because this might be one of the only instances where JavaScript is used for anything remotely related to IT management?

John Roberts: We’re pretty much using JavaScript to control all of the IT service management, anything in the application.

Michael Coté: Right, right.

John Roberts: But in the case of our Run Book Automation and the instance provisioning, it’s actually quite a complex workflow that we’re running through. I saw the map of it and there is a lot of steps, communications with Amazon cloud — I want to make this request, I want to copy this master, and give me information back on what’s the URL that I can actually connect this to.

Michael Coté: Right, right.

John Roberts: So there is an awful lot of logic behind the scenes that our Run Book Automation team has been very busy setting up. And we’re happy with the performance, the 5-7 minutes.

Michael Coté: Yeah.

John Roberts: And if you ask anybody else, how fast can they get their application running, dedicated for me just for the day to play, and seven minutes is pretty impressive.

Michael Coté: There’s another thing that I noticed that’s in the portal — you’ve pulled in — you guys call it Live or Live Stream. It’s basically a stream, if you will, and it’s kind of a mixture of an idea of an activity stream and a Twitter stream and all these things together. You guys have that in the portal as well, you have an instance of it in the portal.

And I’m curious — it’s another good example of how you — no one uses the term “mashup” anymore — but you’re mashing up these various things from the ServiceNow platform. So can you go over how you integrated that into their portal?

John Roberts: Sure! One of the new features we just added was social IT services, so we have a chat feature that’s built in the system now and we also have this live feature, so Live Feed is what we’re calling it. And basically it’s kind of like a Facebook, Yammer social environment that’s dedicated to the instance; so probably more along the lines of Yammer which is protected, private to the corporation.

So we have that in the application now that we’re shipping in the next release. So we wanted to really showcase that this year in the Knowledge Portal. So we have that available through the portal, and any of the attendees that are registered can go ahead and have a communication, they can create their own, essentially chat groups; it’s really not a chat, but a live feed type group that they can house their messages in and have these discussions.

And the other thing we wanted to do was just to try to trigger more activity, was to pull in tweets from Twitter that have certain tags, like our #Know11, our tag for the conference. We wanted to display those in the Knowledge Portal in Live, so we built an integration from external services such as Twitter to Love Feed so we can display those.

Michael Coté: Oh the sucker stuff in there.

John Roberts: Yeah, yeah. I think the term somebody calling was ‘tweetsucker’ which I kind of like.

Michael Coté: Well, great! Well I appreciate you spending all that time to go over that. I think it’s always nice to — when there is a — to use the general term, when there is a platform available to be programmed, it’s good to have some pretty good — some reference examples.

John Roberts: Sure! Yeah.

Michael Coté: Otherwise you’re just like, oh, I can do any thing you want, and that’s really not helpful.

John Right: Yeah, it doesn’t get you very far.

Michael Coté: Definitely! So I appreciate it.

John Roberts: Yeah, I appreciate the time too!

Disclosure: ServiceNow is a client and sponsored this video.

Categories: Cloud, Conferences, Enterprise Software, RedMonkTV, Systems Management.

Tags: , , , , ,