Unable to Set 'Urgency' via API – Defaults to System Value

PraffulNikam
Tera Contributor

 

Hi Community,

I’m working on an external integration where incidents are created in ServiceNow through an API call. The payload includes both impact and urgency values, like so:

 

json
{ "short_description": "Incident via API", "description": "Urgency and impact should be set correctly", "impact": "1", "urgency": "3", "state": "New" }

The impact value is correctly reflected in the created incident, but the urgency field always defaults to the system’s configured default (e.g., "2 - Medium")—regardless of the value sent in the payload.

What I’ve tried so far:

  • Removed the default value on the urgency field

  • Confirmed there are no Business Rules or ACLs blocking updates

  • Sent the payload both as numeric and string values

  • Ensured the field is active and visible on the form

Still, the urgency always falls back to the default value and doesn’t accept the payload input.

Has anyone encountered this behavior? Is there a workaround or configuration setting I might be missing to allow the urgency field to accept values from API input?

Thanks in advance!

8 REPLIES 8

@PraffulNikam 

are you testing with admin user?

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

@Ankur Bawiskar 
Yes I am using admin user 

@PraffulNikam 

not very sure then as it worked fine for me

If my response helped please mark it correct and close the thread so that it benefits future readers.

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

bck
Tera Contributor

Hi Community,

 

We see the same problem, but strangely only in some environments.

We have a Java program running in a WebSphere Application Server and incidents created from that program can be created with urgency different from the default value.

 

However, creating incidents from stand-alone Java programs or from Postman or from a small PowerShell script are all created with the default value for independent of what we specify in the payload. In our case the default values for both impact and urgency are 3 – Low)

 

PowerShell script to demonstrate the problem:

 

$userName = "<user>"

$password = "<password>"

$url = https://<host>/api/now/table/incident

$base64AuthInfo = [System.Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $userName,$password)))

 

$payload = '{"short_description":"PowerShell header","comments":"PowerShell message"","impact":"2","urgency":"2"}'

write-host “Payload: $payload”

$postData = [System.Text.Encoding]::UTF8.GetBytes(($payload))

try {

  $response = Invoke-WebRequest -Uri $url -Method Post -ContentType "application/json" -TimeoutSec 1000 -Body $postData -Headers @{Authorization="Basic $base64AuthInfo"}

  $jsonResponse = $response | ConvertFrom-Json

  $incident = $jsonResponse.result.number

  $impact = $jsonResponse.result.impact

  $urgency = $jsonResponse.result.urgency

  write-host "Created incident: $incident, impact: $impact, urgency: $urgency"

}

catch {

  write-host "Exception: $_"

}

 

It results in this output:

Payload: {"short_description":"PowerShell header","comments":"PowerShell message","impact":"2","urgency":"2"}

Created incident: INC1109812, impact: 2, urgency: 3