HomeAICombine QnABot on AWS with ServiceNow

Combine QnABot on AWS with ServiceNow

Do your staff watch for hours on the phone to open an IT ticket? Do they watch for an agent to triage a difficulty, which generally solely requires restarting the pc? Offering wonderful IT assist is essential for any group, however legacy programs have relied closely on human brokers being accessible to consumption studies and triage points. Conversational AI (or chatbots) might help triage a few of these widespread IT issues and create a ticket for the duties when human help is required. Chatbots shortly resolve widespread enterprise points, enhance worker experiences, and release brokers’ time to deal with extra advanced issues.

Suta [CPS] IN
Redmagic WW

QnABot on AWS is an open supply answer constructed utilizing AWS native providers like Amazon Lex, Amazon OpenSearch Service, AWS Lambda, Amazon Transcribe, and Amazon Polly. QnABot model 5.4+ can also be enhanced with generative AI capabilities.

In keeping with Gartner Magic Quadrant 2023, ServiceNow is likely one of the main IT Service Administration (ITSM) suppliers available on the market. ServiceNow’s Incident Administration makes use of workflows to determine, observe, and resolve excessive‑impression IT service incidents.

On this put up, we reveal the best way to combine the QnABot on AWS chatbot answer with ServiceNow. With this integration, customers can chat with QnABot to triage their IT service points and open an incident ticket in ServiceNow in actual time by offering particulars to QnABot.

Watch the next video to see how customers can ask inquiries to an IT service desk chatbot and get solutions. For many often requested questions, chatbot solutions might help resolve the difficulty. When a person determines that the solutions supplied should not helpful, they’ll request the creation of a ticket in ServiceNow.

Answer overview

QnABot on AWS is a multi-channel, multi-language chatbot that responds to your buyer’s questions, solutions, and suggestions. QnABot on AWS is a whole answer and could be deployed as a part of your IT Service Desk ticketing workflow. Its distributed structure permits for integrations with different programs like ServiceNow. For those who want to construct your personal chatbot utilizing Amazon Lex or add solely Amazon Lex as a part of your utility, consult with Combine ServiceNow with Amazon Lex chatbot for ticket processing.

The next diagram illustrates the answer structure.

The workflow contains the next steps:

  1. A QnABot administrator can configure the questions utilizing the Content material Designer UI delivered by Amazon API Gateway and Amazon Easy Storage Service (Amazon S3).
  2. The Content material Designer Lambda operate saves the enter in OpenSearch Service in a query’s financial institution index.
  3. When QnABot customers ask questions prompting ServiceNow integration, Amazon Lex fetches the questions and requests the person to offer an outline of the difficulty. When the outline is supplied, it invokes a Lambda operate.
  4. The Lambda operate fetches secrets and techniques from AWS Secrets and techniques Supervisor, the place surroundings variables are saved, and makes an HTTP name to create a ticket in ServiceNow. The ticket quantity is then returned to the person.

When constructing a diagnostic workflow, chances are you’ll require inputs to totally different questions earlier than you’ll be able to create a ticket in ServiceNow. You should utilize response bots and the doc chaining capabilities of QnABot to attain this functionality.

Response bots are bots created to elicit a response from customers and retailer them as a part of session variables or as a part of slot values. You should utilize built-in response bots or create a customized response bot. Response chatbot names should begin with the letters “QNA.”

This answer supplies a set of built-in response bots. Consult with Configuring the chatbot to ask the questions and use response bots for implementation particulars.

You should utilize doc chaining to elicit the response and invoke Lambda features. The chaining rule is a JavaScript programming expression used to check the worth of the session attribute set to elicit a response and both route to a different bot or invoke Lambda features. You possibly can determine the subsequent query within the doc by figuring out the query ID (QID) specified within the Doc Chaining:Chaining Rule subject as ‘QID::‘ adopted by the QID worth of the doc. For instance, a rule that evaluates to “QID::Admin001” will chain to merchandise Admin.001.

When utilizing a chaining rule for Lambda, the operate title should begin with the letters “QNA,” and is specified within the Doc Chaining:Chaining Rule subject as ‘Lambda::FunctionNameorARN’. All chaining guidelines should be enclosed in a single quote.

Deploy the QnABot answer

Full the next steps to deploy the answer:

  1. Select Launch Answer on the QnABot implementation information to deploy the newest QnABot template by way of AWS CloudFormation.
  2. Present a reputation for the bot.
  3. Present an electronic mail the place you’ll obtain an electronic mail to reset your password.
  4. Guarantee that EnableCognitoLogin is ready to true.
  5. For all different parameters, settle for the defaults (see the implementation information for parameter definitions), and launch the QnABot stack.

This put up makes use of a static webpage hosted on Amazon CloudFront, and the QnABot chatbot is embedded within the web page utilizing the Amazon Lex net UI pattern plugin. We additionally present directions for testing this answer utilizing the QnABot consumer web page.

Create a ServiceNow account

This part walks via the steps to create a ServiceNow account and ServiceNow developer occasion:

  1. First, join a ServiceNow account.

  1. Go to your electronic mail and ensure this electronic mail handle in your ServiceNow ID.
  2. As a part of the verification, you’ll will likely be requested to offer the six-digit verification code despatched to your electronic mail.
  3. You possibly can skip the web page that asks you to arrange two-factor authentication. You’re redirected to the touchdown web page with the ServiceNow Developer program.
  4. Within the Getting Began steps, select Sure, I would like a developer oriented IDE.

  1. Select Begin Constructing to arrange an occasion.

When the construct is full, which can take couple of seconds to minutes, you may be supplied with the occasion URL, person title, and password particulars. Save this info to make use of in later steps.

  1. Log in to the positioning utilizing the next URL (present your occasion): https://devXXXXXX.service-now.com/now/nav/ui/basic/params/goal/change_request_list.do.

Be sure you keep logged in to the ServiceNow developer occasion all through the method.

If logged out, use your electronic mail and password to log again in and get up the occasion and stop hibernation.

  1. Select All within the navigation bar, then select Incidents.

  1. Choose All to take away the entire filters.

All incidents will likely be proven on this web page.

Create customers in ServiceNow and an Amazon Cognito pool

You possibly can create an incident utilizing the userid of the chatbot person. For that, we have to verify that the userId of the chatbot person exists in ServiceNow. First, we create the ServiceNow person, then we create a person with the identical ID in an Amazon Cognito person pool. Amazon Cognito is an AWS service to authenticate purchasers and supply non permanent AWS credentials.

  1. Create a ServiceNow person. Be sure you embrace a primary title, final title, and electronic mail.

Be aware down the person ID of the newly created person. You’ll need this when creating an Amazon Cognito person in a person pool.

  1. On the Amazon Cognito console, select Person swimming pools within the navigation pane.

When you’ve got deployed the Amazon Lex net UI plugin, you will note two person pool names; for those who didn’t, you’ll see just one person pool title.

  1. Choose the person pool that has your QnABot title and create a brand new person. Use the identical userId as that of the ServiceNow person.
  2. In case you are utilizing the Amazon Lex net UI, create a person within the applicable Amazon Cognito person pool by following the previous steps.

Be aware that the userId you created will likely be used for the QnABot consumer and Amazon Lex Internet UI consumer.

Create a Lambda operate for invoking ServiceNow

On this step, you create a Lambda operate that invokes the ServiceNow API to create a ticket.

  1. On the Lambda console, select Features within the navigation pane.
  2. Select Create operate.

  1. Choose Writer from scratch.
  2. For Perform title, enter a reputation, equivalent to qna-ChatBotLambda. (Do not forget that QnABot requires the prefix qna- within the title.)
  3. For Runtime, select Node.js 18.x.

This Lambda operate creates new position. If you wish to use an current position, you’ll be able to change the default AWS Identification and Entry Administration (IAM) execution position by deciding on Use current position.

  1. Select Create operate.
  2. After you create the operate, use the inline editor to edit the code for index.js.
  3. Proper-click on index.js and rename it to index.mjs.
  4. Enter the next code, which is pattern code for the operate that you just’re utilizing because the compute layer for our logic:
import AWS from '@aws-sdk/client-secrets-manager';

const incident="incident";
const secret_name = "servicenow/password";

export const handler = async (occasion, context) => {
    console.log('Obtained occasion:',JSON.stringify(occasion, null,2));
    // make async name createticket which creates serviceNow ticket
    await createTicket( occasion).then(response => occasion=response);
    return occasion;

// async operate to create servicenow ticket
async operate createTicket( occasion){
    var password='';
    await getSecretValue().then(response => password=response);
    // fetch description and userid from occasion
      var shortDesc =  occasion.req._event.inputTranscript;
    console.log("acquired slots worth", shortDesc);
    // userName of the logged in person
    var userName= occasion.req._userInfo.UserName;
    console.log("userId", userName);
    console.log("password from secrets and techniques supervisor::", password);
    // description supplied by person is added to short_description
    var requestData = {
        "short_description": shortDesc,
        "caller_id": userName
      var postData = JSON.stringify(requestData);

    // create url from hostname fetched from envrionment variables. Remaining path is fixed.
    const url = "https://"+course of.env.SERVICENOW_HOST+":443/api/now/desk/"+incident;

    // create incident in servicenow and return occasion with ticket info
    attempt {
            await fetch(url,{
                methodology: 'POST',
            headers: {
                'Content material-Kind': 'utility/json',
                'Settle for': 'utility/json',
                'Authorization': 'Primary ' + Buffer.from(course of.env.SERVICENOW_USERNAME + ":" + password).toString('base64'),
                'Content material-Size': Buffer.byteLength(postData),
            'physique': postData
            .then(knowledge=>{ console.log(knowledge); 
                var ticketNumber = knowledge.consequence.quantity;
                var ticketType = knowledge.consequence.sys_class_name;
                occasion.res.message="Carried out! I've opened an " + ticketType + " ticket for you in ServiceNow. Your ticket quantity is: " + ticketNumber + ".";
            return occasion;
        catch (e) {
            return 500;


// get secret worth from secrets and techniques supervisor
async operate getSecretValue(){
    var secret;
    var consumer = new AWS.SecretsManager({
        area: course of.env.AWS_REGION
   // await to get secret worth
    attempt {
        secret = await consumer.getSecretValue({SecretId: secret_name});
    catch (err) {
        console.log("error", err);
   const secretString = JSON.parse(secret.SecretString);
    return secretString.password;

This operate makes use of the ServiceNow Incident API. For extra info, consult with Create an incident.

  1. Select Deploy to deploy this code to the $LATEST model of the Lambda operate.
  2. On the Configuration tab, within the Surroundings variables part, add the next:
      • Add SERVICENOW_HOST with the worth devXXXXXX.service-now.com.
      • Add SERVICENOW_USERNAME with the worth admin.

  3. Copy the Lambda operate ARN. You’ll need it at later stage.

The subsequent step is to retailer your ServiceNow person title and password in Secrets and techniques Supervisor.

  1. On the Secrets and techniques Supervisor console, create a brand new secret.
  2. Choose Different kind of secret.
  3. Add your key-value pairs as proven and select Subsequent.

  1. For Secret title, enter a descriptive title (for this put up, servicenow/password). For those who select a distinct title, replace the worth of const secret_name within the Lambda operate code.
  2. Select Subsequent.
  3. Go away Configure rotation on default and select Subsequent.
  4. Evaluate the key info and select Retailer.
  5. Copy the ARN of the newly created secret.

Now let’s give Lambda permissions to Secrets and techniques Supervisor.

  1. On the Lambda operate web page, go to the Configurations tab and navigate to the Permissions part.

  1. Select the execution position title to open the IAM web page for the position.
  2. Within the following inline coverage, present the ARN of the key you created earlier:
	"Model": "2012-10-17",
	"Assertion": [
			"Sid": "SecretsManagerRead",
			"Effect": "Allow",
			"Action": ["secretsmanager:GetResourcePolicy",
			"Useful resource": "<ARN>"
  1. Add the inline coverage to the position.

Configure QnABot configurations

On this part, we first create some information questions utilizing the Questions function of QnABot. We then create a response bot that elicits a response from a person once they ask for assist. This bot makes use of doc chaining to name one other bot, and triggers Lambda to create a ServiceNow ticket.

For extra details about utilizing QnABot with generative AI, consult with Deploy generative AI self-service query answering utilizing the QnABot on AWS answer powered by Amazon Lex with Amazon Kendra, and Amazon Bedrock.

Create information query 1

Create a information query for putting in software program:

  1. On the AWS CloudFormation console, navigate to the QnABot stack.
  2. On the Outputs tab, and open the hyperlink for ContentDesignerURL.
  3. Log in to the QnABot Content material Designer utilizing admin credentials.
  4. Select Add so as to add a brand new query.
  5. Choose qna.
  6. For Merchandise ID, enter software program.001.
  7. Beneath Questions/Utterances, enter the next:
    a.	The best way to set up a software program 
    b.	The best way to set up developer instruments 
    c.	are you able to give me directions to put in software program 
  8. Beneath Reply, enter the next reply:
Putting in from Self Service doesn't require any sort of permissions or admin credentials. It's going to present you software program that's accessible for you, with none further requests.
1. Click on the search icon within the menu on the high. Kind Self Service and press Enter.
2. Sign up along with your safety key credentials.
3. Seek for your required software program within the high proper nook.
4. Click on the Set up button.

  1. Broaden the Superior part and enter the identical textual content in Markdown Reply.

  1. Go away the remainder as default, and select Create to save lots of the query.

Create information query 2

Now you create the second information query.

  1. Select Add so as to add a brand new query.
  2. Choose qna.
  3. For Merchandise ID, enter information.001.
  4. Beneath Questions/Utterances, enter Need to be taught extra about Amazon Lex.
  5. Beneath Reply, enter the next reply:
### Amazon Lex
Here's a video of Amazon Lex Introduction <iframe width="580" peak="327" src="https://www.youtube.com/embed/Q2yJf4bn5fQ" title="Conversational AI powered by Amazon Lex | Amazon Internet Companies" frameborder="0" enable="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
Do you need to be taught extra about it?<br>
Listed below are some sources<br>
1. [Introduction to Amazon Lex](https://discover.skillbuilder.aws/be taught/course/exterior/view/elearning/249/introduction-to-amazon-lex)
2. [Building better bots using Amazon Connect](https://discover.skillbuilder.aws/be taught/course/exterior/view/elearning/481/building-better-bots-using-amazon-connect)
3. [Amazon Lex V2 getting started- Streaming APIs](https://aws.amazon.com/blogs/machine-learning/delivering-natural-conversational-experiences-using-amazon-lex-streaming-apis/)

  1. Broaden the Superior part and enter the identical reply below Markdown Reply.

  1. Go away the remainder as default, and select Create to save lots of the query.

Create information query 3

Full the next steps so as to add one other information query:

  1. Select Add so as to add a brand new query.
  2. Choose qna.
  3. For Merchandise ID, enter password.reset.
  4. Beneath Questions/Utterances, enter I have to reset my password.
  5. Beneath Reply, enter the next reply:
#### Password Reset Directions
Please observe beneath directions to reset your password
1. Please go to AnyTech's IT net web page. 
2. Use the Password Reset Device on the left hand navigation. 
3. Within the Password Reset Device, present your new password and save. 
4. As soon as you modify your password, please sign off of your laptop computer and login.
**Be aware**: In case you are logged out of your laptop, you'll be able to ask your supervisor to reset the password.

  1. Broaden the Superior part and enter the identical textual content for Markdown Reply.
  2. Select Create to save lots of the query.

Create a response bot

Full the next steps to create the primary response bot, which elicits a response:

  1. Select Add so as to add a brand new query.
  2. Choose qna.
  3. For Merchandise ID, enter ElicitResponse.001.
  4. Beneath Questions/Utterances, enter Please create a ticket.
  5. Beneath Reply, enter the next reply:
Positive, I might help you with that!! Please give a brief description of your downside.

  1. Broaden the Superior part and navigate to the Elicit Response part.
  2. For Elicit Response: ResponseBot Hook, enter QNAFreeText.
  3. For Elicit Response: Response Session Attribute Namespace, enter short_description.

This creates a slot named short_description that captures the response or description for the incident. This slot makes use of the built-in QNAFreeText, which is used for capturing free textual content.

  1. For Doc Chaining: Chaining Rule, enter QID::merchandise.002. This should be in single quotes. Bear in mind this chaining rule to make use of when creating your doc chain.
  2. Go away the remainder as default.

  1. Select Create to save lots of the query.

Create a doc chain

Now we create a doc chain in QnABot that may set off the Lambda operate to create a ticket and reply with a ticket quantity. Doc chaining means that you can chain two bots primarily based on the rule you configured. Full the next steps:

  1. Select Add so as to add a brand new query.
  2. Choose qna.
  3. For Merchandise ID, enter merchandise.002. This could match the QID worth given within the doc chain rule earlier.
  4. Beneath Questions/Utterances, enter servicenow integration.
  5. Beneath Reply, enter the next reply:
There was an error, please contact system administrator
  1. Within the Superior part, add the Lambda operate ARN for Lambda Hook.

  1. Select Create to save lots of the query.

Take a look at the QnABot

To check the QnABot default consumer, full the next steps:

  1. Select the choices menu within the Content material Designer and select QnABot Consumer.

The QnABot consumer will open in a brand new browser tab.

  1. Log in utilizing the newly created person credentials to start the check.

For those who plan to make use of the Amazon Lex Internet UI on a static web page, observe these directions.

  1. Select the chat icon on the backside of the web page to start out the chat.
  2. To log in, select Login on the menu.

You can be routed to the login web page.

  1. Present the userId created earlier.
  2. For first-time logins, you may be prompted to reset your password.

  1. Now we are able to check the chatbot with instance use instances. For our first use case, we need to study Amazon and enter the query “I need to study Amazon Lex, are you able to give me some details about it?” QnABot supplies a video and a few hyperlinks to sources.

  1. In our subsequent, instance, we have to set up software program on our laptop computer, and ask “Are you able to give me directions to put in software program.” QnABot understands that the person is requesting assist putting in software program and supplies solutions from the information financial institution. You possibly can observe these directions and set up the software program you want.

  1. Whereas putting in the software program, what for those who locked your password as a consequence of a number of failed login makes an attempt? To request a password reset, you’ll be able to ask “I have to reset my password.”

  1. You would possibly want further help resetting the password and need to create a ticket. On this case, enter “Please create a ticket.” QnABot asks for an outline of the issue; you’ll be able to enter “reset password.” QnAbot creates a ticket with the outline supplied and supplies the ticket quantity as a part of the response.

  1. You possibly can confirm the incident ticket was created on the ServiceNow console below Incidents. If the ticket shouldn’t be proven on the primary web page, seek for the ticket quantity utilizing the search toolbar.

Clear up

To keep away from incurring future prices, delete the sources you created. For directions to uninstall the QnABot answer plugin, consult with Uninstall the answer.


Integrating QnABot on AWS with ServiceNow supplies an end-to-end answer for automated buyer assist. With QnABot’s conversational AI capabilities to grasp buyer questions and ServiceNow’s sturdy incident administration options, corporations can streamline ticket creation and determination. You can even lengthen this answer to indicate a listing of tickets created by the person. For extra details about incorporating these methods into your bots, see QnABot on AWS.

Concerning the Authors

Sujatha Dantuluri is a Senior Options Architect within the US federal civilian group at AWS. She has over 20 years of expertise supporting industrial and federal authorities. She works intently with prospects in constructing and architecting mission-critical options. She has additionally contributed to IEEE requirements.

Maia Haile is a Options Architect at Amazon Internet Companies primarily based within the Washington, D.C. space. In that position, she helps public sector prospects obtain their mission aims with well-architected options on AWS. She has 5 years of expertise spanning nonprofit healthcare, media and leisure, and retail. Her ardour is utilizing AI and ML to assist public sector prospects obtain their enterprise and technical objectives.

Supply hyperlink

latest articles

ChicMe WW
Head Up For Tails [CPS] IN

explore more