Create Ticket
curl --request POST \
--url 'https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tool": "SERVICENOW_CREATE_TICKET",
"parameters": {
"description": "<string>",
"shortDescription": "<string>",
"status": "<string>",
"channelName": "<string>",
"note": {},
"additionalFields": {}
}
}
'import requests
url = "https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET"
payload = {
"tool": "SERVICENOW_CREATE_TICKET",
"parameters": {
"description": "<string>",
"shortDescription": "<string>",
"status": "<string>",
"channelName": "<string>",
"note": {},
"additionalFields": {}
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
tool: 'SERVICENOW_CREATE_TICKET',
parameters: {
description: '<string>',
shortDescription: '<string>',
status: '<string>',
channelName: '<string>',
note: {},
additionalFields: {}
}
})
};
fetch('https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'tool' => 'SERVICENOW_CREATE_TICKET',
'parameters' => [
'description' => '<string>',
'shortDescription' => '<string>',
'status' => '<string>',
'channelName' => '<string>',
'note' => [
],
'additionalFields' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET"
payload := strings.NewReader("{\n \"tool\": \"SERVICENOW_CREATE_TICKET\",\n \"parameters\": {\n \"description\": \"<string>\",\n \"shortDescription\": \"<string>\",\n \"status\": \"<string>\",\n \"channelName\": \"<string>\",\n \"note\": {},\n \"additionalFields\": {}\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tool\": \"SERVICENOW_CREATE_TICKET\",\n \"parameters\": {\n \"description\": \"<string>\",\n \"shortDescription\": \"<string>\",\n \"status\": \"<string>\",\n \"channelName\": \"<string>\",\n \"note\": {},\n \"additionalFields\": {}\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tool\": \"SERVICENOW_CREATE_TICKET\",\n \"parameters\": {\n \"description\": \"<string>\",\n \"shortDescription\": \"<string>\",\n \"status\": \"<string>\",\n \"channelName\": \"<string>\",\n \"note\": {},\n \"additionalFields\": {}\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"parent": "",
"made_sla": "true",
"caused_by": "",
"watch_list": "",
"upon_reject": "cancel",
"sys_updated_on": "2026-10-16 05:49:17",
"child_incidents": "0",
"hold_reason": "",
"origin_table": "",
"task_effective_number": "INC0010001",
"approval_history": "",
"number": "INC0010001",
"resolved_by": "",
"sys_updated_by": "admin",
"opened_by": {
"link": "https://example.service-now.com/api/now/v1/table/sys_user/3fa91b7e4e6dc483508a91b88473a598",
"value": "3fa91b7e4e6dc483508a91b88473a598"
},
"user_input": "",
"sys_created_on": "2026-10-16 05:49:17",
"sys_domain": {
"link": "https://example.service-now.com/api/now/v1/table/sys_user_group/global",
"value": "global"
},
"state": "1",
"route_reason": "",
"sys_created_by": "admin",
"knowledge": "false",
"order": "",
"calendar_stc": "",
"closed_at": "",
"cmdb_ci": "",
"delivery_plan": "",
"contract": "",
"impact": "3",
"active": "true",
"work_notes_list": "",
"business_service": "",
"business_impact": "",
"priority": "5",
"sys_domain_path": "/",
"rfc": "",
"time_worked": "",
"expected_start": "",
"opened_at": "2026-10-16 05:49:17",
"business_duration": "",
"group_list": "",
"work_end": "",
"caller_id": "",
"reopened_time": "",
"resolved_at": "",
"approval_set": "",
"subcategory": "",
"work_notes": "",
"universal_request": "",
"short_description": "[Paragon docs test] safe to delete",
"close_code": "",
"correlation_display": "",
"delivery_task": "",
"work_start": "",
"assignment_group": "",
"additional_assignee_list": "",
"business_stc": "",
"cause": "",
"description": "Temporary record created while documenting ActionKit responses. Deleted right after.",
"origin_id": "",
"calendar_duration": "",
"close_notes": "",
"notify": "1",
"service_offering": "",
"sys_class_name": "incident",
"closed_by": "",
"follow_up": "",
"parent_incident": "",
"sys_id": "591b6346be6f86b29a219cf757b2cb68",
"contact_type": "",
"reopened_by": "",
"incident_state": "1",
"urgency": "3",
"problem_id": "",
"company": "",
"reassignment_count": "0",
"activity_due": "",
"assigned_to": "",
"severity": "3",
"comments": "",
"approval": "not requested",
"sla_due": "",
"comments_and_work_notes": "",
"due_date": "",
"sys_mod_count": "0",
"reopen_count": "0",
"sys_tags": "",
"escalation": "0",
"upon_approval": "proceed",
"correlation_id": "",
"location": "",
"category": "inquiry"
}
}Tools
Create Ticket
POST
/
projects
/
{project_id}
/
tools
/
#SERVICENOW_CREATE_TICKET
Create Ticket
curl --request POST \
--url 'https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tool": "SERVICENOW_CREATE_TICKET",
"parameters": {
"description": "<string>",
"shortDescription": "<string>",
"status": "<string>",
"channelName": "<string>",
"note": {},
"additionalFields": {}
}
}
'import requests
url = "https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET"
payload = {
"tool": "SERVICENOW_CREATE_TICKET",
"parameters": {
"description": "<string>",
"shortDescription": "<string>",
"status": "<string>",
"channelName": "<string>",
"note": {},
"additionalFields": {}
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
tool: 'SERVICENOW_CREATE_TICKET',
parameters: {
description: '<string>',
shortDescription: '<string>',
status: '<string>',
channelName: '<string>',
note: {},
additionalFields: {}
}
})
};
fetch('https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'tool' => 'SERVICENOW_CREATE_TICKET',
'parameters' => [
'description' => '<string>',
'shortDescription' => '<string>',
'status' => '<string>',
'channelName' => '<string>',
'note' => [
],
'additionalFields' => [
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET"
payload := strings.NewReader("{\n \"tool\": \"SERVICENOW_CREATE_TICKET\",\n \"parameters\": {\n \"description\": \"<string>\",\n \"shortDescription\": \"<string>\",\n \"status\": \"<string>\",\n \"channelName\": \"<string>\",\n \"note\": {},\n \"additionalFields\": {}\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tool\": \"SERVICENOW_CREATE_TICKET\",\n \"parameters\": {\n \"description\": \"<string>\",\n \"shortDescription\": \"<string>\",\n \"status\": \"<string>\",\n \"channelName\": \"<string>\",\n \"note\": {},\n \"additionalFields\": {}\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://actionkit.useparagon.com/projects/{project_id}/tools/#SERVICENOW_CREATE_TICKET")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tool\": \"SERVICENOW_CREATE_TICKET\",\n \"parameters\": {\n \"description\": \"<string>\",\n \"shortDescription\": \"<string>\",\n \"status\": \"<string>\",\n \"channelName\": \"<string>\",\n \"note\": {},\n \"additionalFields\": {}\n }\n}"
response = http.request(request)
puts response.read_body{
"result": {
"parent": "",
"made_sla": "true",
"caused_by": "",
"watch_list": "",
"upon_reject": "cancel",
"sys_updated_on": "2026-10-16 05:49:17",
"child_incidents": "0",
"hold_reason": "",
"origin_table": "",
"task_effective_number": "INC0010001",
"approval_history": "",
"number": "INC0010001",
"resolved_by": "",
"sys_updated_by": "admin",
"opened_by": {
"link": "https://example.service-now.com/api/now/v1/table/sys_user/3fa91b7e4e6dc483508a91b88473a598",
"value": "3fa91b7e4e6dc483508a91b88473a598"
},
"user_input": "",
"sys_created_on": "2026-10-16 05:49:17",
"sys_domain": {
"link": "https://example.service-now.com/api/now/v1/table/sys_user_group/global",
"value": "global"
},
"state": "1",
"route_reason": "",
"sys_created_by": "admin",
"knowledge": "false",
"order": "",
"calendar_stc": "",
"closed_at": "",
"cmdb_ci": "",
"delivery_plan": "",
"contract": "",
"impact": "3",
"active": "true",
"work_notes_list": "",
"business_service": "",
"business_impact": "",
"priority": "5",
"sys_domain_path": "/",
"rfc": "",
"time_worked": "",
"expected_start": "",
"opened_at": "2026-10-16 05:49:17",
"business_duration": "",
"group_list": "",
"work_end": "",
"caller_id": "",
"reopened_time": "",
"resolved_at": "",
"approval_set": "",
"subcategory": "",
"work_notes": "",
"universal_request": "",
"short_description": "[Paragon docs test] safe to delete",
"close_code": "",
"correlation_display": "",
"delivery_task": "",
"work_start": "",
"assignment_group": "",
"additional_assignee_list": "",
"business_stc": "",
"cause": "",
"description": "Temporary record created while documenting ActionKit responses. Deleted right after.",
"origin_id": "",
"calendar_duration": "",
"close_notes": "",
"notify": "1",
"service_offering": "",
"sys_class_name": "incident",
"closed_by": "",
"follow_up": "",
"parent_incident": "",
"sys_id": "591b6346be6f86b29a219cf757b2cb68",
"contact_type": "",
"reopened_by": "",
"incident_state": "1",
"urgency": "3",
"problem_id": "",
"company": "",
"reassignment_count": "0",
"activity_due": "",
"assigned_to": "",
"severity": "3",
"comments": "",
"approval": "not requested",
"sla_due": "",
"comments_and_work_notes": "",
"due_date": "",
"sys_mod_count": "0",
"reopen_count": "0",
"sys_tags": "",
"escalation": "0",
"upon_approval": "proceed",
"correlation_id": "",
"location": "",
"category": "inquiry"
}
}Provider API: ServiceNow Table API (v2 for list and search Tools, v1 for single-record Tools).
Authorizations
Your Paragon User Token (JWT), which you can generate using your project's signing keys.
Path Parameters
Your Paragon Project ID. You can copy your Project ID from your dashboard URL or by clicking Copy Project ID under the Environment switcher.
Body
application/json
Response
200 - application/json
The ServiceNow Table API response for the new record. The record is wrapped in result. ServiceNow returns every field of the table, with empty strings for fields that have no value, and reference fields as link and value pairs. The fields depend on the table and your instance configuration.