Calling saveServiceDesk using Service Desk API Parameters
For full details of the Service Desk API Endpoint, see Service Desk API.
For full details of the Service Desk Actions Endpoint, see Service Desk Actions API.
type
Data Type: String
Required Field: Yes
Notes:
Determines the Service Desk Item type:
"SO" - Service Order
"IN" - Incident
"ES" - Estimate
"WO" - Work Order
"IQ" - Inquiries
”ACTION” - Actions
“UDF” - Service Desk UDFs
“EST_CHARGES” for Estimate Charges
“EST_LABOR” for Estimate Labor
“EST_EQP” for Estimate Equipment
“GLA” for GLAs for the Service Order
“EQUIPMENT” for adding Equipment to a Service Order
“LABOR” for adding Labor to a Service Order
“WORKFLOW” for adding a Service Desk Workflow
“CHARGES” for adding Service Desk Charges
“ATTACHMENT” for adding an attachment to the Service Desk Item
sd_action
Data Type: String
Required Field: No
Required Type: “ACTION”
Notes:
The type of Service Desk Action to be created.
“ADD” - for add
“CHG_MOVE” - for move
“CHG_UPDOWN” - for up/down
“CHG_MISC” - for misc
“REMOVE” - for remove
“CHG_SERVICE_ID” - for service id
“CHG_MULTI_LOCATION” - for add location
“CHG_OWNER” - for a change owner
“TASK” - for a Task
recid
Data Type: Integer
Required Field: Yes*
Required Type: any
Notes:
The recid of the SD Item.
*only required for Updates
status
Data Type: String
Required Field: No
Required Type: any
Notes:
This field should only be used when attempting to Complete (“complete”) or Finalize (“finalize”) a Service Order or Incident. When a new Service Desk Item is created, the status is set automatically to "Pending".
due_date
Data Type: String
Required Field: No
Required Type: any
Notes:
The date when the Service Desk item is due.
finalized_date
Data Type: String
Required Field: No*
Required Type: “SO”
Notes:
Required when setting status to "finalize". The desired date is in the valid format of: mm/dd/yyyy. This field is for Service Orders only. Charges created will use the finalize Date as their Billing Date.
source
Data Type: String
Required Field: No
Required Type: any
Default Value: “API”
Notes:
Code for the source of the Service Desk Item. List Type must be SD_SOURCE.
urgency
Data Type: String
Required Field: No
Required Type: any
Notes:
Set the urgency on the Service Desk Item. Must use the LISTS value for Service Desk Urgency.
csr
Data Type: Integer
Required Field: Yes
Required Type: any
Notes:
The customer service representative assigned to the Service Desk item. The Record ID of the Service Rep to be assigned is a required field.
owner
Data Type: Integer
Required Field: No*
Required Type: any
Notes:
The recid of either the Contact or the Department owner.
*Required only when completing an order
owner_type
Data Type: String
Required Field: No*
Required Type: any
Notes:
Type of owner. “contact” or “department”.
*Required only when setting an owner
requestor
Data Type: Integer
Required Field: No
Required Type: any
Notes:
The recid for the name of the person (contact) who is requesting the Service Desk item.
description
Data Type: String
Required Field: No
Required Type: any
Notes:
A description of the Service Desk item
assoc_proj
Data Type: Integer
Required Field: No
Required Type: any
Notes:
The recid of the project or problem associated with the service desk item.
remarks
Data Type: String
Required Field: Yes
Required Type: “REMARKS”
Notes:
Service Desk remarks. These remarks show up on the "Activity/Remarks" tab of Service Desk.
udf_UDF-RECID
Data Type: Integer
Required Field: No*
Required Type: not “ACTION”
Notes:
UDF-RECID is the RECID of the UDF to assign the value to. Example: udf_684=value
*udf_UDF-RECID and udf_UDF-IDENTIFIER are Conditionally Required. The use of one is Required, but not both.
udf_UDF-IDENTIFIER
Data Type: String
Required Field: No*
Required Type: not “ACTION”
Notes:
IDENTIFIER is the unique Identifier of the UDF to assign the value to. Example: udf_LEGACYNUM=value
*udf_UDF-RECID and udf_UDF-IDENTIFIER are Conditionally Required. The use of one is Required, but not both.
prob_code
Data Type: Integer
Required Field: Yes
Required Type: “IN”
Notes:
The recid of the Trouble Code
problem
Data Type: String
Required Field: No
Required Type: “IN”
Notes:
The details or description of the trouble
res_code
Data Type: Integer
Required Field: No*
Required Type: “IN”
Notes:
The recid of the Resolution Code. If setting the status to "complete", this field becomes required.
resolution
Data Type: String
Required Field: No
Required Type: “IN”
Notes:
The details or description of the Resolution
service
Data Type: Integer
Required Field: No
Required Type: “IN”, “ACTION” with sd_action of “CHG_UPDOWN”, “CHG_MOVE”, “CHG_MISC”, “REMOVE”, “CHG_SERVICE_ID”, “CHG_MULTI_LOCATION”, or “CHG_OWNER”
Notes:
The recid for the Service
equipment
Data Type: Integer
Required Field: No
Required Type: “IN”, “EQUIPMENT”
Notes:
The recid for the Equipment
sdc
Data Type: Integer
Required Field: No
Required Type: “IN”, “WO”, “IQ”, “ACTION”
Notes:
The recid of the Service Desk Classification
equipment_udf_IDENTIFIER
Data Type: String
Required Field: No
Required Type: “IN”
Notes:
IDENTIFIER of UDF preceded by "equipment_udf_". Example: equipment_udf_FIELD123.
The provided value will be validated against UDF’s data type requirements and used if acceptable. Only valid if the parameter "equipment" is provided
equipment_udf_RECID
Data Type: String
Required Field: No
Required Type: “IN”
Notes:
RECID of UDF preceded by "equipment_udf_". Example: equipment_udf_123.
The provided value will be validated against UDF’s data type requirements and used if acceptable. Only valid if the parameter "equipment" is provided
service_udf_IDENTIFIER
Data Type: String
Required Field: No
Required Type: “IN”
Notes:
IDENTIFIER of UDF preceded by "service_udf_". Example: service_udf_FIELD123.
The provided value will be validated against UDF’s data type requirements and used if acceptable. Only valid if the parameter "service" is provided
service_udf_RECID
Data Type: String
Required Field: No
Required Type: “IN”
Notes:
RECID of UDF preceded by "service_udf_". Example: service_udf_123
The provided value will be validated against UDF’s data type requirements and used if acceptable. Only valid if the parameter "service" is provided.
charge_catalog_recid
Data Type: Integer
Required Field: No
Required Type: “ES”, “EST_CHARGES”, “CHARGES”
When “type” is “EST_CHARGES” this parameter is called “charge_catalog”
Notes:
The recid of the applicable Charge.
charge_description
Data Type: String
Required Field: No
Required Type: “ES”, “EST_CHARGES”
Notes:
The details or description of the Charge
chrg_quantity
Data Type: Integer
Required Field: No
Required Type: “ES”, “EST_CHARGES”
Default Value: 1
Notes:
Quantity of Charge to be used.
prorate
Data Type: Integer
Required Field: No
Required Type: “ES”, “EST_CHARGES”, “CHARGES”
Default Value: 0
Notes:
Should the Charge be prorated when activated?
”1” for Yes, “0” for No.
override_amount
Data Type: Decimal
Required Field: No
Required Type: “ES”, “EST_CHARGES”, “CHARGES”
Notes:
If allowed by the selected Charge, overrides the default amount from the Charge.
eqp_catalog
Data Type: Integer
Required Field: No
Required Type: “ES”, “EST_EQP”, “EQUIPMENT”
Notes:
The recid of the Equipment Catalog item to added to the Estimate.
eqp_quantity
Data Type: Integer
Required Field: No
Required Type: “ES”, “EST_EQP”
Default Value: 1
Notes:
Quantity of the Equipment to be added
eqp_billable
Data Type: Integer
Required Field: No
Required Type: “ES”, “EST_EQP”
Notes:
Mark whether the Equipment item is billable. “1” for Yes, “0” for No.
labor_type
Data Type: Integer or String
Required Field: Yes*
Required Type: “ES”, “EST_LABOR”, “LABOR”
Notes:
Type of Labor to be added.
*Only Required when adding Labor to the Estimate (when "workgroup" field is provided).
*for “LABOR” options are “Regular”, “OT” and “2xOT”
workgroup
Data Type: Integer
Required Field: No
Required Type: “ES”, “EST_LABOR”, “LABOR”, “WORKFLOW”
Notes:
The recid of the Workgroup to be associated with the Labor record
labor_description
Data Type: String
Required Field: No
Required Type: “ES”, “EST_LABOR”
Notes:
Description to give the Labor record.
hours
Data Type: String
Required Field: Yes*
Required Type: “ES”, “EST_LABOR”, “LABOR”
Notes:
Hours to be assigned to the labor. Use "h" for hours and "m" for minutes. Example: "1h 30m"
*Only Required when adding labor to the estimate (when "workgroup" field is provided).
rate
Data Type: Decimal
Required Field: No
Required Type: “ES”, “EST_LABOR”
Notes:
Rate to be billed for Labor. If not provided, default rate from Workgroup will be used.
labor_billable
Data Type: Integer
Required Field: No
Required Type: “ES”, “EST_LABOR”
Notes:
Mark whether the Labor item is billable. “1” for Yes, “0” for No.
sd_recid
Data Type: Integer
Required Field: Yes*
Required Type: “UDF”, “GLA”, “EQUIPMENT”, “LABOR”, “WORKFLOW”, “CHARGES”, “ATTACHMENT”
Notes:
*Either sd_recid or sd_number are conditionally Required, but not both. RECID column from SERVICE_DESK table.
sd_number
Data Type: String
Required Field: Yes*
Required Type: “UDF”, “GLA”, “EQUIPMENT”, “LABOR”, “WORKFLOW”, “CHARGES”, “ATTACHMENT”
Notes:
*Either sd_recid or sd_number are conditionally Required, but not both. The Number of the Service Desk item that the UDF is for.
sda_recid
Data Type: Integer
Required Field: No*
Required Type: “UDF”, “GLA”, “EQUIPMENT”, “LABOR”, “WORKFLOW”, “CHARGES”, “ATTACHMENT”, “ACTION”
Notes:
RECID of the Service Desk Action. If "sda_recid" is provided, "sd_recid" and "sd_number" are not Required.
sda_number
Data Type: String
Required Field: No*
Required Type: “UDF”, “GLA”, “EQUIPMENT”, “LABOR”, “WORKFLOW”, “CHARGES”, “ATTACHMENT”, “ACTION”
Notes:
Service Desk Action Number for the Action. "sda_number" can be provided instead of "sda_recid" IF "sd_recid" or "sd_number" are provided.
estimate_recid
Data Type: Integer
Required Field: Yes
Required Type: “EST_CHARGES”, “EST_LABOR”, “EST_EQP”
Notes:
RECID column from SERVICE_DESK_EST table.
action_default_gla
Data Type: String or Integer
Required Field: No*
Required Type: “GLA”
Notes:
If a single GLA is sent with a Service Desk request, the value of this is RECID of the GLA. If multiple GLAs are sent with a Service Desk request OR request made directly to the Service Desk GLA POST, this param is "1" or "0" (true/false). If multiple GLAs are sent, then these are comma-separated, corresponding to the GLAs.
gla
Data Type: String
Required Field: Yes
Required Type: “GLA”, “ACTION”
Notes:
A single GLA RECID or comma-separated GLA RECIDs "Default" or "Usage"
gla_type
Data Type: String
Required Field: Yes
Required Type: “GLA”, “ACTION”
Notes:
A single GLA type or comma-separated GLA types. Example:
gla_percent
Data Type: String
Required Field: Yes
Required Type: “GLA”, “ACTION”
Notes:
A single number of "100" or comma-separated numbers that equal 100. Example: "50,50"
equipment _id
Data Type: Integer
Required Field: No*
Required Type: “EQUIPMENT”
Notes:
Equipment ID for the Equipment. Conditionally Required for Cabling type Equipment.
to_location
Data Type: Integer
Required Field: No
Required Type: “EQUIPMENT”
Notes:
RECID of the Location the Equipment will be moved to.
from_location
Data Type: Integer
Required Field: No
Required Type: “EQUIPMENT”
Notes:
RECID of the Location the Equipment will be moved from.
qty
Data Type: Integer
Required Field: Yes
Required Type: “EQUIPMENT”
Notes:
Quantity of the Equipment to be added
billable
Data Type: Integer
Required Field: No
Required Type: “EQUIPMENT”, “LABOR”, “WORKFLOW”
Default Value: Based on the Equipment Catalog Setting
Notes:
Mark whether the Equipment/Labor item is Billable. “1” for Yes, “0” for No.
asset_tag
Data Type: String
Required Field: No*
Required Type: “EQUIPMENT”
Notes:
The Asset Tag for the Equipment. Conditionally Required for Asset type Equipment.
override_gla
Data Type: Integer
Required Field: No
Required Type: “EQUIPMENT”
Notes:
RECID of the GLA to override billing for this Equipment.
expense_type
Data Type: Integer
Required Field: No
Required Type: “EQUIPMENT”
Notes:
The List ID value for the EXPENSE_TYPE List entry that is desired.
date
Data Type: String
Required Field: Yes
Required Type: “LABOR”
Notes:
Date the Labor action was performed on. YYYY/MM/DD format.
workflow
Data Type: Integer
Required Field: No
Required Type: “LABOR”, “WORKFLOW”
Notes:
Recid for the Workflow
worker
Data Type: Integer
Required Field: No
Required Type: “LABOR”, “WORKFLOW”
Notes:
Recid for the Worker. Worker must be an Active Contact with Contact Type = Worker. Worker must be part of provided Workgroup.
flate_rate
Data Type: Decimal
Required Field: No
Required Type: “LABOR”
Default Value: NULL
Notes:
Rate to be billed for Labor. Only zero or positive dollar amounts are allowed.
location
Data Type: Integer
Required Field: No
Required Type: “WO”, “ACTION” with sd_action of “CHG_MULTI_LOCATION”
Notes:
The recid of the Location. Location restrictions will be checked against the Service Catalog
catalog
Data Type: Integer
Required Field: No
Required Type: “WO”, “ACTION” with sd_action of “ADD”, “CHG_UPDOWN”, or “TASK”
Notes:
RECID of the Service Catalog
Service Catalog must be a "Task" Type
sla
Data Type: Integer
Required Field: No
Required Type: “WO”, “ACTION”
Notes:
RECID of the SLA
details
Data Type: CLOB
Required Field: No
Required Type: “WO”
Notes:
The details for the Work Order
impact
Data Type: Integer
Required Field: No
Required Type: “WO”
Notes:
RECID for the Impact value
sequence
Data Type: Integer
Required Field: Yes
Required Type: “WORKFLOW”
Notes:
needs to be higher than highest completed sequence
if status is complete, needs to be higher than lowest pending
scheduled_date
Data Type: String
Required Field: No
Required Type: “WORKFLOW”
Notes:
The date Workflow is scheduled to begin.
scheduled_end_date
Data Type: String
Required Field: No
Required Type: “WORKFLOW”
Notes:
The date Workflow is scheduled to end.
notes
Data Type: String
Required Field: No
Required Type: “WORKFLOW”
Notes:
Editable notes for the Workflow
estimated_time
Data Type: String
Required Field: No
Required Type: “WORKFLOW”
Notes:
Example 1.5 is equivalent to 1 hour 30 minutes
start_date
Data Type: String
Required Field: No
Required Type: “WORKFLOW”, “ACTION”
Notes:
The date it was started
completed_date
Data Type: String
Required Field: No
Required Type: “WORKFLOW”
Notes:
The date the Workflow was completed.
activity_remarks
Data Type: String
Required Field: No*
Required Type: “WORKFLOW”
Notes:
Required if status is hold.
subject
Data Type: String
Required Field: Yes*
Required Type: “IQ”
Notes:
Required in order to Create the Inquiry, and cannot be Updated
message
Data Type: String
Required Field: Yes*
Required Type: “IQ”
Notes:
Required in order to Create the Inquiry
topic
Data Type: Integer
Required Field: Yes*
Required Type: “IQ”
Notes:
Required in order to Create the Inquiry, and must be a valid LIST RECID of the type SD_INQTOPICS_LISTS_RECID
Data Type: String
Required Field: Yes*
Required Type: “IQ”
Notes:
Required in order to Create the Inquiry, UNLESS using Token Authentication. This can not be Updated.
quantity
Data Type: Number
Required Field: No
Required Type: “CHARGES”
Notes:
Quantity of Charges of the chosen Catalog to apply, if the Catalog is set to use Quantity
files
Data Type: Array
Required Field: Yes
Required Type: “ATTACHMENT”
Notes:
The file(s) to be attached.
'files' is an array with infinite number of sub-arrays. Each sub-array has keys of 'filename' (the file's name) and 'data' (the base64 encoded data for the file).
moveto_location
Data Type: Integer
Required Field: No
Required Type: “ACTION”
Notes:
RECID of Location
*Not allowed, and will throw an Error if used on a TASK Action
rating_group
Data Type: String
Required Field: No*
Required Type: “ACTION”
Notes:
The LIST CODE for the Rating Group for the Phone Service being used by the Service Desk Action.
Conditionally Required creating Service Desk Actions when using a Serice Catalog of type "Phone".
service_host
Data Type: Integer
Required Field: No*
Required Type: “ACTION”
Notes:
RECID of Service Host
*Required when adding an Action to a Phone Service Catalog.
owner_contact
Data Type: Integer
Required Field: No*
Required Type: “ACTION”
Notes:
RECID of Contact. Only a Contact or Department can be Owner, not both.
owner_department
Data Type: Integer
Required Field: No*
Required Type: “ACTION”
Notes:
RECID of Department. Only a Contact or Department can be Owner, not both.
new_service_id
Data Type: Integer
Required Field: No
Required Type: “ACTION” with sd_action of “CHG_SERVICE_ID”
Notes:
The new Service ID for the Service being changed.
One of the following must be true for the new Service ID:
existing & available & New Service ID must be in the same Catalog or an ancestor of the Catalog as the original Service ID (NOT normalized type) & not in a pool
existing & available & New Service ID must be in the same Catalog or an ancestor of the Catalog as the original Service ID (NOT normalized type) & in a pool
if the new Service ID specified is an existing Service and the Catalog for the original Service specified on a pool then the new Service ID must be in the same pool
doesn't exist
auth_code_type
Data Type: Integer
Required Field: Yes*
Required Type: “ACTION” with sd_action of “ADD”
Notes:
RECID of Auth Code Type for an authcode service.
*Required when attempting to INSERT an authcode Service.
classes_of_service
Data Type: Integer
Required Field: Yes*
Required Type: “ACTION” with sd_action of “ADD”
Notes:
RECID of Class of Service for an authcode service.
*Required when attempting to INSERT a new auth_code_type record.
bandwidth
Data Type: Integer
Required Field: No
Required Type: “ACTION”
Notes:
RECID of Bandwidth for a data/backbone service.
action_udf_IDENTIFIER
Data Type: String
Required Field: No*
Required Type: “ACTION”
Notes:
IDENTIFIER of UDF belonging to a Service preceded by “action_udf_”. Example: action_udf_FIELD123
Provided value will be validated against UDF’s data type requirements and used if acceptable.
*A single UDF parameter is Required, but not all of them, if using an Action UDF
action_udf_RECID
Data Type: Integer
Required Field: No*
Required Type: “ACTION”
Notes:
RECID of UDF belonging to a Service preceded by “action_udf_”. Example: action_udf_FIELD123
Provided value will be validated against UDF’s data type requirements and used if acceptable.
*A single UDF parameter is Required, but not all of them, if using an Action UDF
Create New Service Order Example
$params = [
"type" => "SO",
"csr" => 1,
];
$api_call = $this->call('saveServiceDesk', $params, true)
Create New Incident Example
$params = [
"type" => "IN",
"csr" => 1,
"prob_code" => 1,
"problem" => "Discription of an Example Problem",
"equipment" => 1
];
$api_call = $this->call('saveServiceDesk', $params, true)
Create New Estimate Example
$params = [
"type" => "ES",
"csr" => 1,
];
$api_call = $this->call('saveServiceDesk', $params, true)
Create New Work Order Example
$params = [
"type" => "WO",
"csr" => 1,
"catalog" => 5
];
$api_call = $this->call('saveServiceDesk', $params, true)
Create New Inquiry Example
$params = [
"type" => "IQ",
"csr" => 1,
"subject" => "Sample Subject of Inquiry",
"message" => "Example Text of a Message",
"topic" => 1,
"email" => "demo@pcr.com"
];
$api_call = $this->call('saveServiceDesk', $params, true)
Create New Service Order Action Examples
$params = [
"type" => "ACTION",
"csr" => 1,
//See Below Examples
];
$api_call = $this->call('saveServiceDesk', $params, true)
Add Action
"sd_action" => "ADD",
"service_host" => 1,
"rating_group" => 1,
"catalog" => 1
Move Action
"sd_action" => "CHG_MOVE"
"moveto_location" => 1,
"service" => 1
Up/Down Action
"sd_action" => "CHG_UPDOWN",
"service" => 1,
"catalog" => 2
Misc Action
"sd_action" => "CHG_MISC",
"service" => 1
Remove Action
"sd_action" => "REMOVE",
"service" => 1
Service ID Action
"sd_action" => "CHG_SERVICE_ID",
"new_service_id" = "555-123-4567",
"service" => 1
Add Location Action
"sd_action" => "CHG_MULTI_LOCATION",
"service" => 1,
"location" => 2
Change Owner Action
"sd_action" => "CHG_OWNER",
"owner_contact" => 1,
"service" => 1
Task Action
"sd_action" => "TASK",
"catalog" => 3
Update Service Order UDF Example
$params = [
"type" => "UDF",
"recid" => 1,
"udf_one" => "UDF Value 1",
"udf_2" => "UDF Value 2"
];
$api_call = $this->call('saveServiceDesk', $params, true)
Add Charges to Estimate Example
$params = [
"type" => "EST_CHARGES",
"estimate_recid" => 1,
"charge_catalog" => 1
];
$api_call = $this->call('saveServiceDesk', $params, true)
Add Labor to Estimate Example
$params = [
"type" => "EST_LABOR",
"estimate_recid" => 1,
"labor_type" => "Regular",
"workgroup" => 1,
"hours" -> "8h"
];
$api_call = $this->call('saveServiceDesk', $params, true)
Add Equipment to Estimate Example
$params = [
"type" => "EST_EQP",
"estimate_recid" => 1,
"eqp_catalog" => 1
];
$api_call = $this->call('saveServiceDesk', $params, true)
Update Service Order Default GLA Example
$params = [
"type" => "GLA",
"sd_recid" => 1,
"action_default_gla" => 1
];
$api_call = $this->call('saveServiceDesk', $params, true)
Add Equipment to Service Order Example
$params = [
"type" => "EQUIPMENT",
"sd_recid" => 1,
"equipment" => 1,
"eqp_catalog" => 1,
"qty" => 1
];
$api_call = $this->call('saveServiceDesk', $params, true)
Add Labor to Service Order Example
$params = [
"type" => "LABOR",
"sd_recid" => 1,
"labor_type" => "Regular",
"workgroup" => 1,
"hours" => "8h",
"date" => "2025-09-03",
"workflow" => 1,
"worker" => 1
];
$api_call = $this->call('saveServiceDesk', $params, true)
Add Workflow to Service Order Example
$params = [
"type" => "WORKFLOW",
"sd_recid" => 1,
"workgroup" => 1,
"sequence" => 100
];
$api_call = $this->call('saveServiceDesk', $params, true)
Add Charges to Service Order Example
$params = [
"type" => "CHARGES",
"sd_recid" => 1,
"quantity" => 1,
"charge_catalog" => 1
];
$api_call = $this->call('saveServiceDesk', $params, true)
Add Attachment to Service Order Example
$params = [
"type" => "ATTACHMENT",
"sd_recid" => 1,
"files": [
{
"filename":"file1.pdf",
"data":"/9j/SOMEMORE/BASE64ENCODED/DATA"
},
{
"filename":"file2.pdf",
"data":"/9j/SOMEMORE/BASE64ENCODED/DATA"
}
]
];
$api_call = $this->call('saveServiceDesk', $params, true)
Add a Remark to the Service Order Example
$params = [
"type" => "REMARKS",
"sd_recid" => 1,
"remarks" => "This is an Example Remark"
];
$api_call = $this->call('saveServiceDesk', $params, true)