Where to add Catalog Item and required fied in Create ServiceNow Ticket in Workflow

When the user is onboarded and offboarded, create a SNOW ticket and provision to the connected application simultaneously.

I tried creating it from ServiceDesk integration, but it only creates SNOW tickets and does not make provisions for connected applications.

I started doing the workflow as per the link below. But each source has a separate CatalogItem to create a ServiceNow ticket to that Catalog Item, as shown in the screenshot below (screenshot from ServiceDesk integration), and how and where to map the IDN Source and catalog Item in the workflow and where to add the fields to populate requested by, additionalInfo and requester for and CostCenter (screenshot from ServiceDesk integration)

image

These values can be added as key:value pairs in the Additional Fields section of Manage Service Now ticket action.

Example:

assignment_group:Hardware
due_date:{{$.defineVariable1.dueDate}}
comments:New Ticket for provisioning user Hardware

In this blog I’ve demonstrated created incidents/requests using table API. But i believe you are trying to create a ticket using catalog item and the API for that might be different. You can modify the Service Now endpoint URL based on the documentation here and pass the catalog item to it.

@mcheek Do you know which API to be used in this case?

@sharvari

Thanks Sharvari.

Is there a place where we can specify that the ServiceNow ticket needs to be generated when the user is onboarded based on the birthright role?

For example - the below list of sources have brithright role when the user is onboarded. Only AD2, Azure, and Webservice Connector1 related SNOW tickets must be generated.

AD 1

AD 2

Azure

Webservice Connector 1

Webservice Connector 2

JDBC connecor 1

I found the below URL and working with SNOW team.

https://www.servicenow.com/community/itsm-forum/how-to-submit-a-record-producer-via-rest-api-explorer/m-p/557927#M129706

You will have to use a suitable trigger for this. You can try using Provisioning completed and look out for the role you need to be provisioned before you trigger the ticket action.

After provisioning completed I am able to create the SNOW ticket, not able to populate title,lastname and Username into SNOW, In the get identity step in workflow I can see the list of all attribute of the identity.

Any idea how to populate these two variables

{
	"engagement_channel": "sp",
	"get_portal_messages": "true",
	"referrer": null,
	"sysparm_item_guid": "80c454d0974dc078c11153af06",
	"sysparm_no_validation": "true",
	"sysparm_quantity": "1",
	"variables": {
		"additional_info": "Below is the application detials\n Title': {{$.getIdentity.attributes. title}}  \n lastname': {{$.getIdentity.attributes.lastname}} \n Username': {{$.getIdentity.attributes.displayName}}",
		"contact_number": "8165999518",
		"entity": "d02acf6e352c0500c14c0e58da9c32",
		"req_left_cont_start": "true",
		"req_right_cont_start": "true",
		"requested_by": "c19bb8d94fcf260047433e0210c773",
		"requested_for": "c19bb8d94fcf2477b433e0210c773",
		"requester_info": "true",
		"requester_info_container": "true"
	}
}

Have you tried to use it directly without any single quotes in between?

I tried like below still not populated.

Below is the application detials\n Title: {{$.trigger.attributes.title}} \n lastname: {{$.getIdentity.attributes.lastname}} \n Username: {{$.getIdentity.attributes.displayName}}",

I see the all the attribute in the get identity, but it is not populated, no reason why

There is no problem with the get identity action or data available in it, i am guessing its because of way we pass variables to the http action. The variable is not escaped and so it is not getting substituted and comes in as string.

Give this a try:

“additional_info”: “Below is the application detials Title {{$.getIdentity.attributes.title}} lastname {{$.getIdentity.attributes.lastname}} Username {{$.getIdentity.attributes.displayName}}”,

This worked

“additional_info”: “Below is the application detials Title {{$.getIdentity.attributes.title}} lastname {{$.getIdentity.attributes.lastname}} Username {{$.getIdentity.attributes.displayName}}”,

I have last question when I try to add below condition it is not creating snow ticket these two sources workday and Active Directory upon provisioning completion. When I add single source it works fine. Is my condition is correct for multiple sources.

$.accountRequests[?(@.provisioningResult == “committed” && (@.provisioningTarget == “Workday” || @.provisioningTarget == “Active Directory”) && “Add” in @.attributeRequests[*].operation)]

Please test your filter using JSONpath editor.