Do your workers look ahead to hours on the phone to open an IT ticket? Do they look ahead to an agent to triage a difficulty, which generally solely requires restarting the pc? Offering wonderful IT help is essential for any group, however legacy techniques have relied closely on human brokers being obtainable to consumption stories and triage points. Conversational AI (or chatbots) may help triage a few of these frequent IT issues and create a ticket for the duties when human help is required. Chatbots rapidly resolve frequent enterprise points, enhance worker experiences, and liberate brokers’ time to deal with extra advanced issues.

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 accordance with Gartner Magic Quadrant 2023, ServiceNow is among 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 publish, we show how you can 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 ceaselessly requested questions, chatbot solutions may help resolve the problem. When a person determines that the solutions supplied aren’t helpful, they’ll request the creation of a ticket in ServiceNow.

Resolution 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 techniques like ServiceNow. Should you want to construct your individual chatbot utilizing Amazon Lex or add solely Amazon Lex as a part of your software, discuss with Integrate 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 Simple Storage Service (Amazon S3).
  2. The Content material Designer Lambda perform 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 supply an outline of the problem. When the outline is supplied, it invokes a Lambda perform.
  4. The Lambda perform fetches secrets and techniques from AWS Secrets Manager, 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, you could require inputs to completely different questions earlier than you’ll be able to create a ticket in ServiceNow. You should use 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 use built-in response bots or create a customized response bot. Response chatbot names should begin with the letters “QNA.”

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

You should use doc chaining to elicit the response and invoke Lambda capabilities. 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 capabilities. You’ll be able to determine the subsequent query within the doc by figuring out the query ID (QID) specified within the Doc Chaining:Chaining Rule area 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 perform identify should begin with the letters “QNA,” and is specified within the Doc Chaining:Chaining Rule area as ‘Lambda::FunctionNameorARN’. All chaining guidelines have to be enclosed in a single quote.

Deploy the QnABot answer

Full the next steps to deploy the answer:

  1. Select Launch Resolution on the QnABot implementation guide to deploy the most recent QnABot template through AWS CloudFormation.
  2. Present a reputation for the bot.
  3. Present an e mail the place you’ll obtain an e mail to reset your password.
  4. Make it possible for EnableCognitoLogin is ready to true.
  5. For all different parameters, settle for the defaults (see the implementation guide for parameter definitions), and launch the QnABot stack.

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

Create a ServiceNow account

This part walks by way of the steps to create a ServiceNow account and ServiceNow developer occasion:

  1. First, sign up for a ServiceNow account.

  1. Go to your e mail and make sure this e mail tackle on your ServiceNow ID.
  2. As a part of the verification, you’ll shall be requested to supply the six-digit verification code despatched to your e mail.
  3. You’ll be able to 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 want 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 identify, 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 e 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 shall be proven on this web page.

Create customers in ServiceNow and an Amazon Cognito pool

You’ll be able to create an incident utilizing the userid of the chatbot person. For that, we have to affirm 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 user. Be sure you embody a primary identify, final identify, and e 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.

If in case you have deployed the Amazon Lex net UI plugin, you will notice two person pool names; when you didn’t, you’ll see just one person pool identify.

  1. Choose the person pool that has your QnABot identify and create a new user. 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 shall be used for the QnABot consumer and Amazon Lex Internet UI consumer.

Create a Lambda perform for invoking ServiceNow

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

  1. On the Lambda console, select Capabilities within the navigation pane.
  2. Select Create perform.

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

This Lambda perform creates new function. If you wish to use an present function, you’ll be able to change the default AWS Identity and Access Management (IAM) execution function by choosing Use present function.

  1. Select Create perform.
  2. After you create the perform, 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 perform that you simply’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('Acquired occasion:',JSON.stringify(occasion, null,2));
    // make async name createticket which creates serviceNow ticket
    await createTicket( occasion).then(response => occasion=response);
    return occasion;
    
};

// async perform to create servicenow ticket
async perform createTicket( occasion){
 
    var password='';
    await getSecretValue().then(response => password=response);
    
    // fetch description and userid from occasion
      var shortDesc =  occasion.req._event.inputTranscript;
    console.log("obtained 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,{
                technique: 'POST',
            headers: {
                'Content material-Kind': 'software/json',
                'Settle for': 'software/json',
                'Authorization': 'Fundamental ' + Buffer.from(course of.env.SERVICENOW_USERNAME + ":" + password).toString('base64'),
                'Content material-Size': Buffer.byteLength(postData),
            },
            'physique': postData
            }).then(response=>response.json())
            .then(knowledge=>{ console.log(knowledge); 
                var ticketNumber = knowledge.end result.quantity;
                var ticketType = knowledge.end result.sys_class_name;
                occasion.res.message="Finished! I've opened an " + ticketType + " ticket for you in ServiceNow. Your ticket quantity is: " + ticketNumber + ".";
            });  
            return occasion;
        }
        catch (e) {
            console.error(e);
            return 500;
        }

}

// get secret worth from secrets and techniques supervisor
async perform 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 perform makes use of the ServiceNow Incident API. For extra info, discuss with Create an incident.

  1. Select Deploy to deploy this code to the $LATEST model of the Lambda perform.
  2. On the Configuration tab, within the Atmosphere 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 perform ARN. You’ll need it at later stage.

The following step is to retailer your ServiceNow person identify and password in Secrets and techniques Supervisor.

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

  1. For Secret identify, enter a descriptive identify (for this publish, servicenow/password). Should you select a unique identify, replace the worth of const secret_name within the Lambda perform code.
  2. Select Subsequent.
  3. Depart 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 perform web page, go to the Configurations tab and navigate to the Permissions part.

  1. Select the execution function identify to open the IAM web page for the function.
  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",
				"secretsmanager:GetSecretValue",
				"secretsmanager:DescribeSecret",
				"secretsmanager:ListSecrets",
				"secretsmanager:ListSecretVersionIds"
],
			"Useful resource": "<ARN>"
		}
	]
}

  1. Add the inline policy to the role.

Configure QnABot configurations

On this part, we first create some information questions utilizing the Questions characteristic 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, discuss with Deploy generative AI self-service question answering using the QnABot on AWS solution 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.	Easy methods to set up a software program 
    b.	Easy methods 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 form of permissions or admin credentials. It'll present you software program that's obtainable 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. Develop the Superior part and enter the identical textual content in Markdown Reply.

  1. Depart the remaining as default, and select Create to avoid wasting 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 study 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 study extra about it?<br>
Listed here are some sources<br>
1. [Introduction to Amazon Lex](https://discover.skillbuilder.aws/study/course/exterior/view/elearning/249/introduction-to-amazon-lex)
2. [Building better bots using Amazon Connect](https://discover.skillbuilder.aws/study/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. Develop the Superior part and enter the identical reply below Markdown Reply.

  1. Depart the remaining as default, and select Create to avoid wasting 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 must reset my password.
  5. Beneath Reply, enter the next reply:
#### Password Reset Directions
Please observe under directions to reset your password
1. Please go to AnyTech's IT net web page. 
2. Use the Password Reset Instrument on the left hand navigation. 
3. Within the Password Reset Instrument, present your new password and save. 
4. As soon as you modify your password, please sign off of your laptop computer and login.
<br><br>
**Be aware**: In case you are logged out of your laptop, you'll be able to ask your supervisor to reset the password.

  1. Develop the Superior part and enter the identical textual content for Markdown Reply.
  2. Select Create to avoid wasting 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 may help you with that!! Please give a brief description of your downside.

  1. Develop 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 have to be in single quotes. Keep in mind this chaining rule to make use of when creating your doc chain.
  2. Depart the remaining as default.

  1. Select Create to avoid wasting the query.

Create a doc chain

Now we create a doc chain in QnABot that can set off the Lambda perform to create a ticket and reply with a ticket quantity. Doc chaining lets you chain two bots based mostly 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 perform ARN for Lambda Hook.

  1. Select Create to avoid wasting 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 Shopper.

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

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

Should you 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 may 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 will check the chatbot with instance use circumstances. For our first use case, we need to find out about Amazon and enter the query “I need to find out about Amazon Lex, are you able to give me some details about it?” QnABot offers 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 offers solutions from the information financial institution. You’ll be able to observe these directions and set up the software program you want.

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

  1. You may 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 offers the ticket quantity as a part of the response.

  1. You’ll be able to 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 costs, delete the sources you created. For directions to uninstall the QnABot answer plugin, discuss with Uninstall the solution.

Conclusion

Integrating QnABot on AWS with ServiceNow offers an end-to-end answer for automated buyer help. With QnABot’s conversational AI capabilities to grasp buyer questions and ServiceNow’s strong incident administration options, corporations can streamline ticket creation and backbone. It’s also possible to 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 business and federal authorities. She works carefully 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 based mostly within the Washington, D.C. space. In that function, 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.

Leave a Reply

Your email address will not be published. Required fields are marked *