ServiceNow – ChatGPT Integration – Making recommendations based on short description

Thought this might be useful for somebody. This is assuming that you have already run through this post to get the initial setup done: ServiceNow – ChatGPT Integration.

This is a very basic configuration and it may be better to do it through a flow, but as an example of how you could potentially update a task (incident in this case) and provide recommendations from ChatGPT when the description is updated. This is a fairly flexible approach so you might have other ideas!

Firstly, open up the incident table. We are going to create a new column called “ChatGPT Recommendations”. Give this column the type of “String” and a max length of 2000. Copy the column name (should be u_chatgpt_recommendations) and submit.

Open the incident form and make sure the new column is showing on the form.

We will now create a business rule to deliver the result. Configure the business rule conditions as follows:

Name:Set recommendations based on description
Table:Incident
Advanced:true (checked)
When to run
When:before
Insert:true (checked)
Update:true (checked)
Short description:changes

Now on the advanced tab we will enter the following code:

(function executeRule(current, previous /*null when async*/ ) {

    // Create an instance of the ChatGPT class
    var chatGPT = new global.ChatGPT();

    // Set the premise for the chat with the assistant. The premise helps set the context of the conversation.
    var premise = chatGPT.setPremise("You are an IT professional providing recommendations to non-technical users. You should give the recommendations only, no pretext.");

    // Create a message requesting ChatGPT to send some recommendations.
    var message1 = chatGPT.createMessage("user", "Provide some recommendations for this: " + current.description);

    // Submit the chat to the GPT-3.5 Turbo model (default). The chat consists of the premise and the user's request.
    // The 'submitChat' function accepts an array of messages which form a conversation.
    var result = chatGPT.submitChat([premise, message1]);

    // Extract only the response from the message.
    var extracted_message = chatGPT.extractAssistantMessage(result);

	// Populate our new field.
    current.u_chatgpt_recommendations = extracted_message;

})(current, previous);

Once submitted, we should be good to go! As an example, I logged a new incident about my monitor being broken. The system showed the following:

Leave a Reply

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