TOPdesk
TOPdesk’s Enterprise Service Management software (ESM) lets your service teams join forces and process requests from a single platform.
Case Management · TOPdesk
Details
| ID | TOPdesk |
|---|---|
| Provider | TOPdesk |
| Category | Case Management |
| From Version | 5.0.0 |
| Docker Image | demisto/python3:3.12.13.10116658 |
| Supported Modules | Agentix XSIAM |
README
TOPdesk’s Enterprise Service Management software (ESM) lets your service teams join forces and process requests from a single platform.
This integration was integrated and tested with 10.08.008-on-premises-release3-build2 for Linux x86 64-bit of TOPdesk.
Use cases
- Get, update, and create TOPdesk incidents, as well as (de-)escalate, (un)archive or upload files to the incidents.
- Fetch newly created TOPdesk incidents.
- Get information about branches, persons and operators.
Configure TOPdesk on Cortex XSOAR
- Navigate to Settings > Integrations > Servers & Services.
- Search for TOPdesk.
-
Click Add instance to create and configure a new integration instance.
Parameter Description Required Server URL (e.g., https://topdesk.mydomain/tas/) The server url. True Username See section about auth details below True Password See section about auth details below True Fetch incidents False Maximum number of incidents per fetch False First fetch time (<number> <time unit>, e.g., 12 hours, 7 days, 3 months, 1 year) False Default Incident Caller ID The default caller ID which is added when creating new TOPdesk incidents and no explicit caller ID is provided. See See Finding the Default Incident Caller ID. False The query to use when fetching incidents Getting incidents with new style FIQL query is available only from TOPdeskRestAPI version 3.4.0. For earlier versions this field will be used as additional inline params as supported. False Incident type Use TOPdesk Incident for some predefined layouts False Trust any certificate (not secure) False Use system proxy settings False - Click Test to validate the URLs, token, and connection.
Auth Details
Person and operator are TOPdesk’s user types. Each user type has a different set of actions that he is allowed to perform.
For example, a person can only update incidents he created, while an operator can update a wider range of incidents.
In general, if an account is able to preform the requested command in TOPdesk’s UI, it should be able to preform it using this integration.
Make sure you use the right account for your needs and that the account used has all the required permissions.
Setup TOPdesk’s application password
- Login to TOPdesk with the designated account.
- In TOPdesk, click Open user menu (top right side of the front page) > Choose My settings
- At the bottom of the page should be an Application passwords section. You can view all application passwords that are configured for the logged in account.
- At the bottom right corner, click Add.
- A window should open requesting a name for the application. Choose any convenient name (e.g., XSOAR-key) and click Create.
- The application password should be shown - copy it to a safe location. This is the password that will be used for the integration in XSOAR.
- Once copied for further usage you can click Close.
Configure Username and Password
Username: Use the account username from which the application password was generated. (Not the key name)
Password: Use the application password generated in step 6 of the Setup TOPdesk’s application password procedure.
Troubleshooting
Make sure the application password is not expired by logging in TOPdesk and viewing it as described in step 3 of the Setup TOPdesk’s application password procedure.
Finding the Default Incident Caller ID
The TOPdesk incident caller is the TOPdesk person who requested a specific TOPdesk incident and is the contact person for all activities related to this incident.
To find the incident caller ID which should be used as the default caller when creating a new TOPdesk incident, first configure the integration instance without providing the Default Incident Caller ID. Then run the command !topdesk-persons-list in the Playground - War Room.
You will receive a list of people and their IDs. Copy the ID of the desired person and edit the integration instance to set the Default Incident Caller ID.
Incident Mirroring
You can enable incident mirroring between Cortex XSOAR incidents and TOPdesk incidents.
To setup the mirroring follow these instructions:
- Navigate to Settings > Integrations > Servers & Services.
- Search for TOPdesk and select your integration instance.
- Enable Fetches incidents.
- In the Mirroring Direction integration parameter, select in which direction the incidents should be mirrored:
- Incoming - Any changes in TOPdesk incidents (
processingStatus,priority,urgency,impact) will be reflected in Cortex XSOAR incidents. - Outgoing - Any changes in Cortex XSOAR incidents will be reflected in TOPdesk incidents (
processingStatus,priority,urgency,impact). - Incoming And Outgoing - Changes in Cortex XSOAR incidents and TOPdesk incidents will be reflected in both directions.
- None - Turns off incident mirroring.
- Incoming - Any changes in TOPdesk incidents (
- The Comment Entry Tag, Work Note Entry Tag and File Entry Tag integration parameters can be used to specify which comments and attachments should be mirrored to TOPdesk. When the tag Comment Entry Tag is used, the comment is visible to the operator and the person. If the tag Work Note Entry Tag is used, the comment is only visible to the operator and the tag File Entry Tag is used to mirror files from Cortex XSOAR to TOPdesk.
- Optional: Check the Close Mirrored XSOAR Incident integration parameter to close the Cortex XSOAR incident when the corresponding incident is closed in TOPdesk.
- Optional: Check the Close Mirrored TOPdesk Incident integration parameter to close the TOPdesk incident when the corresponding Cortex XSOAR incident is closed.
Newly fetched incidents will be mirrored in the chosen direction. However, this selection does not affect existing incidents.
Important Notes
To ensure the mirroring works as expected, mappers are required, both for incoming and outgoing, to map the expected fields in Cortex XSOAR and TOPdesk.
FIQL query
A few implemented commands can get a query as a parameter. A partial list of these commands:
topdesk-incidents-listtopdesk-branches-listtopdesk-persons-listtopdesk-operators-list
While the new versions of TOPdesk all use the new FIQL query format, older versions use limited inline parameters for filters in the requests.
Specifically there are 2 versions being used:
TOPdeskRestAPI
Implements: topdesk-incidents-list
Supports FIQL query version 3.3.0 and higher.
Conveniently, TOPdeskRestAPI also provides an endpoint revealing the API version.
Therefore, once the integration is configured, it automatically translates FIQL query to
inline parameters and vice versa depending on the TOPdesk version.
SupportingFilesAPI
Implements: topdesk-branches-list, topdesk-persons-list, topdesk-operators-list
Supports FIQL query version 1.38.0 and higher.
Unlike TOPdeskRestAPI, SupportingFilesAPI does not currently provide an endpoint revealing the API version.
Therefore, this integration only supports SupportingFilesAPI version 1.38.0 and higher.
Commands
You can execute these commands from the Cortex XSOAR CLI, as part of an automation, or in a playbook.
After you successfully execute a command, a DBot message appears in the War Room with the command details.
topdesk-subcategories-list
Get list of subcategories.
Permissions
Operator: 1st/2nd line incident permissions; Category/Branch/Operator filters apply.
Person: Unrestricted access.
Base Command
topdesk-subcategories-list
Input
| Argument Name | Description | Required |
|---|---|---|
| limit | The limit for the amount of subcategories to store in the Context Data. -1 stores all categories. Default value is 100. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Subcategory.Id | String | Subcategory ID. |
| TOPdesk.Subcategory.Name | String | Subcategory name. |
| TOPdesk.Subcategory.Category.Id | String | Category ID of the subcategory. |
| TOPdesk.Subcategory.Category.Name | String | Category name of the subcategory. |
Command Example
#### Context Example
```json
{
"TOPdesk": {
"Subcategories": [
{
"Category": {
"Id": "some-category-id-1",
"Name": "User Security"
},
"Id": "some-subcategory-id-1",
"Name": "Endpoint Security"
},
{
"Category": {
"Id": "some-category-id-1",
"Name": "User Security"
},
"Id": "some-subcategory-id-2",
"Name": "Mobile Threat Prevention"
}
]
}
}
Human Readable Output
TOPdesk subcategories
Id Name CategoryId CategoryName some-subcategory-id-1 Endpoint Security some-category-id User Security some-subcategory-id-2 Mobile Threat Prevention some-category-id User Security
topdesk-categories-list
Get list of categories.
Permissions
Operator: With 1st/2nd line incident permission; Category/Branch/Operator filters apply
Person: Unrestricted access
Base Command
topdesk-categories-list
Input
| Argument Name | Description | Required |
|---|---|---|
| limit | The limit for the amount of categories to store in the Context Data. -1 stores all categories. Default value is 100. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Category.Id | String | Category ID. |
| TOPdesk.Category.Name | String | Category name. |
Command Example
#### Context Example
```json
{
"TOPdesk": {
"Category": [
{
"Id": "some-category-id-1",
"Name": "User Security"
},
{
"Id": "some-category-id-2",
"Name": "Network Security"
}
]
}
}
Human Readable Output
TOPdesk categories
Id Name some-category-id-1 User Security some-category-id-2 Network Security
topdesk-entry-types-list
Get list of entry types.
Permissions
Operator: With 1st/2nd line incident permission; Category/Branch/Operator filters apply
Person: No access
Base Command
topdesk-entry-types-list
Input
| Argument Name | Description | Required |
|---|---|---|
| limit | The limit for the amount of entry types to store in the Context Data. -1 stores all categories. Default value is 100. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.EntryType.Id | String | EntryType ID. |
| TOPdesk.EntryType.Name | String | EntryType name. |
Command Example
#### Context Example
```json
{
"TOPdesk": {
"EntryType": [
{
"Id": "some-entry-type-id-1",
"Name": "Self Service Desk"
},
{
"Id": "some-entry-type-id-2",
"Name": "Telephone"
}
]
}
}
Human Readable Output
TOPdesk entry types
Id Name some-entry-type-id-1 Self Service Desk some-entry-type-id-2 Telephone
topdesk-call-types-list
Get list of entry types.
Permissions
Operator: With 1st/2nd line incident permission; Category/Branch/Operator filters apply
Person: Unrestricted access
Base Command
topdesk-call-types-list
Input
| Argument Name | Description | Required |
|---|---|---|
| limit | The limit for the amount of call types to store in the Context Data. -1 stores all categories. Default value is 100. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.CallType.Id | String | CallType ID. |
| TOPdesk.CallType.Name | String | CallType name. |
Command Example
#### Context Example
```json
{
"TOPdesk": {
"CallType": [
{
"Id": "some-call-type-id-1",
"Name": "Request for Information"
},
{
"Id": "some-call-type-id-2",
"Name": "Problem"
}
]
}
}
Human Readable Output
TOPdesk call types
Id Name some-call-type-id-1 Request for Information some-call-type-id-2 Problem
topdesk-deescalation-reasons-list
Get list of deescalation reasons.
Permissions
Operator: With 1st and 2nd line incident write permission; Feature must be enabled.
Person: No access
Base Command
topdesk-deescalation-reasons-list
Input
| Argument Name | Description | Required |
|---|---|---|
| limit | The limit for the amount of deescalation reasons to store in the Context Data. -1 stores all categories. Default value is 100. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.DeescalationReason.Id | String | Deescalation reason ID. |
| TOPdesk.DeescalationReason.Name | String | Deescalation reason name. |
Command Example
#### Context Example
```json
{
"TOPdesk": {
"DeescalationReason": [
{
"Id": "some-deescalation-reason-id-1",
"Name": "Resolves after reset"
},
{
"Id": "some-deescalation-reason-id-2",
"Name": "Workaround exists"
}
]
}
}
Human Readable Output
Id Name some-deescalation-reason-id-1 Resolves after reset some-deescalation-reason-id-2 Workaround exists
topdesk-escalation-reasons-list
Get list of escalation reasons.
Permissions
Operator: With 1st line incident write permission and write permission for escalating incidents
Person: No access
Base Command
topdesk-escalation-reasons-list
Input
| Argument Name | Description | Required |
|---|---|---|
| limit | The limit for the amount of escalation reasons to store in the Context Data. -1 stores all categories. Default value is 100. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.EscalationReason.Id | String | Escalation reason ID. |
| TOPdesk.EscalationReason.Name | String | Escalation reason name. |
Command Example
#### Context Example
```json
{
"TOPdesk": {
"EscalationReason": [
{
"Id": "some-escalation-reason-id-1",
"Name": "Call from president"
},
{
"Id": "some-escalation-reason-id-2",
"Name": "Money is being lost"
}
]
}
}
Human Readable Output
TOPdesk escalation reasons
Id Name some-escalation-reason-id-1 Call from president some-escalation-reason-id-2 Money is being lost
topdesk-archiving-reasons-list
Get list of archiving reasons.
Permissions
Operator: Incident write permission and archiving permission; Category/Branch/Operator filters apply;
Person: No access
Base Command
topdesk-archiving-reasons-list
Input
| Argument Name | Description | Required |
|---|---|---|
| limit | The limit for the amount of archiving reasons to store in the Context Data. -1 stores all categories. Default value is 100. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.ArchiveReason.Id | String | Archiving reason ID. |
| TOPdesk.ArchiveReason.Name | String | Archiving reason name. |
Command Example
#### Context Example
```json
{
"TOPdesk": {
"ArchiveReason": [
{
"Id": "some-archive-reason-id-1",
"Name": "No longer valid"
},
{
"Id": "some-archive-reason-id-2",
"Name": "No longer employed"
}
]
}
}
Human Readable Output
TOPdesk archiving reasons
Id Name some-archive-reason-id-1 No longer valid some-archive-reason-id-2 No longer employed
topdesk-persons-list
Get list of persons.
Permissions
Operator: With read permission on persons; Branch filters apply
Visible fields in response: all
Person: Only accessible when phonebook is enabled.
Visible fields in response: id, dynamicName, phoneNumber, mobileNumber, fax, email, jobTitle, department, department.id, department.name, city, departmentFree, branch, branch.id, branch.name, location, location.id, location.branch, location.branch.id, location.branch.name, location.name, location.room
Base Command
topdesk-persons-list
Input
| Argument Name | Description | Required |
|---|---|---|
| start | The offset at which to start listing the persons at. Must be greater or equal to 0. Default is 0. | Optional |
| page_size | The amount of persons to be returned per request. Must be between 1 and 100. Default is 10. | Optional |
| query | A FIQL search expression to filter the result. (e.g., manager.name==Alice) Available from Supporting-Files-API version 1.38.0. The FIQL query syntax is documented in the TOPdesk tutorial. | Optional |
| fields | A comma-separated list of which fields should be included. By default all fields will be included. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Person.Id | String | Person ID. |
| TOPdesk.Person.Status | String | Person status. |
| TOPdesk.Person.SurName | String | Person’s surname. |
| TOPdesk.Person.FirstName | String | Person’s first name. |
| TOPdesk.Person.DynamicName | String | Person’s dynamic name (firstName SecondName). |
| TOPdesk.Person.FirstInitials | String | Person’s first initials. |
| TOPdesk.Person.Prefixes | String | Person’s prefixes (e.g., DR, MR) |
| TOPdesk.Person.BirthName | String | Person’s birth name. |
| TOPdesk.Person.Title | String | Person’s title. |
| TOPdesk.Person.Gender | String | Person’s gender. |
| TOPdesk.Person.Language.Id | String | Person’s language ID. |
| TOPdesk.Person.Language.Name | String | Person’s language name. |
| TOPdesk.Person.PhoneNumber | String | Person’s phone number. |
| TOPdesk.Person.MobileNumber | String | Person’s mobile number. |
| TOPdesk.Person.Fax | String | Person’s fax. |
| TOPdesk.Person.Email | String | Person’s email. |
| TOPdesk.Person.JobTitle | String | Person’s job title. |
| TOPdesk.Person.Department | Unknown | Person’s department. |
| TOPdesk.Person.BudgetHolder | Unknown | Person’s budget holder. |
| TOPdesk.Person.EmployeeNumber | String | Person’s employee number. |
| TOPdesk.Person.NetworkLoginName | String | Person’s network login name. |
| TOPdesk.Person.MainframeLoginName | String | Person’s mainframe login name. |
| TOPdesk.Person.ClientReferenceNumber | String | Person’s client reference number. |
| TOPdesk.Person.City | String | Person’s city. |
| TOPdesk.Person.TasLoginName | String | Person’s tas login name. |
| TOPdesk.Person.ShowBranch | Boolean | Person’s branch visibility. |
| TOPdesk.Person.ShowBudgetholder | Boolean | Person’s budget holder visibility. |
| TOPdesk.Person.ShowDepartment | Boolean | Person’s department visibility. |
| TOPdesk.Person.ShowSubsidiaries | Boolean | Person’s subsidiaries visibility. |
| TOPdesk.Person.ShowAllBranches | Boolean | Person’s all branches visibility. |
| TOPdesk.Person.AuthorizeAll | Boolean | Person authorization on everything. |
| TOPdesk.Person.AuthorizeDepartment | Boolean | Person authorization on department. |
| TOPdesk.Person.AuthorizeBudgetHolder | Boolean | Person’s authorization on budget holder. |
| TOPdesk.Person.AuthorizeBranch | Boolean | Person’s authorization on branch. |
| TOPdesk.Person.AuthorizeSubsidiaryBranches | Boolean | Person’s authorization on subsidiary branches. |
| TOPdesk.Person.IsManager | Boolean | Is the person manager. |
| TOPdesk.Person.Manager | Unknown | Person’s manager. |
| TOPdesk.Person.HasAttention | Boolean | Does the person have attention. |
| TOPdesk.Person.Attention | Unknown | Person’s attention object. |
| TOPdesk.Person.AttentionComment | String | Person’s attention comment. |
| TOPdesk.Person.Creator.Id | String | Person’s creator ID. |
| TOPdesk.Person.Creator.Name | String | Person’s creator name. |
| TOPdesk.Person.CreationDate | Date | Person’s creation date. |
| TOPdesk.Person.Modifier.Id | String | Person’s modifier ID. |
| TOPdesk.Person.Modifier.Name | String | Person’s modifier name. |
| TOPdesk.Person.ModificationDate | Date | Person’s modification date. |
| TOPdesk.Person.OptionalFields1.Boolean1 | Boolean | Person’s optional fields1 boolean1. |
| TOPdesk.Person.OptionalFields1.Boolean2 | Boolean | Person’s optional fields1 boolean2. |
| TOPdesk.Person.OptionalFields1.Boolean3 | Boolean | Person’s optional fields1 boolean3. |
| TOPdesk.Person.OptionalFields1.Boolean4 | Boolean | Person’s optional fields1 boolean4. |
| TOPdesk.Person.OptionalFields1.Boolean5 | Boolean | Person’s optional fields1 boolean5. |
| TOPdesk.Person.OptionalFields1.Number1 | Number | Person’s optional fields1 number1. |
| TOPdesk.Person.OptionalFields1.Number2 | Number | Person’s optional fields1 number2. |
| TOPdesk.Person.OptionalFields1.Number3 | Number | Person’s optional fields1 number3. |
| TOPdesk.Person.OptionalFields1.Number4 | Number | Person’s optional fields1 number4. |
| TOPdesk.Person.OptionalFields1.Number5 | Number | Person’s optional fields1 number5. |
| TOPdesk.Person.OptionalFields1.Date1 | Unknown | Person’s optional fields1 date1. |
| TOPdesk.Person.OptionalFields1.Date2 | Unknown | Person’s optional fields1 date2. |
| TOPdesk.Person.OptionalFields1.Date3 | Unknown | Person’s optional fields1 date3. |
| TOPdesk.Person.OptionalFields1.Date4 | Unknown | Person’s optional fields1 date4. |
| TOPdesk.Person.OptionalFields1.Date5 | Unknown | Person’s optional fields1 date5. |
| TOPdesk.Person.OptionalFields1.Text1 | String | Person’s optional fields1 text1. |
| TOPdesk.Person.OptionalFields1.Text2 | String | Person’s optional fields1 text2. |
| TOPdesk.Person.OptionalFields1.Text3 | String | Person’s optional fields1 text3. |
| TOPdesk.Person.OptionalFields1.Text4 | String | Person’s optional fields1 text4. |
| TOPdesk.Person.OptionalFields1.Text5 | String | Person’s optional fields1 text5. |
| TOPdesk.Person.OptionalFields1.Memo1 | Unknown | Person’s optional fields1 memo1. |
| TOPdesk.Person.OptionalFields1.Memo2 | Unknown | Person’s optional fields1 memo2. |
| TOPdesk.Person.OptionalFields1.Memo3 | Unknown | Person’s optional fields1 memo3. |
| TOPdesk.Person.OptionalFields1.Memo4 | Unknown | Person’s optional fields1 memo4. |
| TOPdesk.Person.OptionalFields1.Memo5 | Unknown | Person’s optional fields1 memo5. |
| TOPdesk.Person.OptionalFields1.Searchlist1 | Unknown | Person’s optional fields1 searchlist1. |
| TOPdesk.Person.OptionalFields1.Searchlist2 | Unknown | Person’s optional fields1 searchlist2. |
| TOPdesk.Person.OptionalFields1.Searchlist3 | Unknown | Person’s optional fields1 searchlist3. |
| TOPdesk.Person.OptionalFields1.Searchlist4 | Unknown | Person’s optional fields1 searchlist4. |
| TOPdesk.Person.OptionalFields1.Searchlist5 | Unknown | Person’s optional fields1 searchlist5. |
| TOPdesk.Person.OptionalFields2.Boolean1 | Boolean | Person’s optional fields2 boolean1. |
| TOPdesk.Person.OptionalFields2.Boolean2 | Boolean | Person’s optional fields2 boolean2. |
| TOPdesk.Person.OptionalFields2.Boolean3 | Boolean | Person’s optional fields2 boolean3. |
| TOPdesk.Person.OptionalFields2.Boolean4 | Boolean | Person’s optional fields2 boolean4. |
| TOPdesk.Person.OptionalFields2.Boolean5 | Boolean | Person’s optional fields2 boolean5. |
| TOPdesk.Person.OptionalFields2.Number1 | Number | Person’s optional fields2 number1. |
| TOPdesk.Person.OptionalFields2.Number2 | Number | Person’s optional fields2 number2. |
| TOPdesk.Person.OptionalFields2.Number3 | Number | Person’s optional fields2 number3. |
| TOPdesk.Person.OptionalFields2.Number4 | Number | Person’s optional fields2 number4. |
| TOPdesk.Person.OptionalFields2.Number5 | Number | Person’s optional fields2 number5. |
| TOPdesk.Person.OptionalFields2.Date1 | Unknown | Person’s optional fields2 date1. |
| TOPdesk.Person.OptionalFields2.Date2 | Unknown | Person’s optional fields2 date2. |
| TOPdesk.Person.OptionalFields2.Date3 | Unknown | Person’s optional fields2 date3. |
| TOPdesk.Person.OptionalFields2.Date4 | Unknown | Person’s optional fields2 date4. |
| TOPdesk.Person.OptionalFields2.Date5 | Unknown | Person’s optional fields2 date5. |
| TOPdesk.Person.OptionalFields2.Text1 | String | Person’s optional fields2 text1. |
| TOPdesk.Person.OptionalFields2.Text2 | String | Person’s optional fields2 text2. |
| TOPdesk.Person.OptionalFields2.Text3 | String | Person’s optional fields2 text3. |
| TOPdesk.Person.OptionalFields2.Text4 | String | Person’s optional fields2 text4. |
| TOPdesk.Person.OptionalFields2.Text5 | String | Person’s optional fields2 text5. |
| TOPdesk.Person.OptionalFields2.Memo1 | Unknown | Person’s optional fields2 memo1. |
| TOPdesk.Person.OptionalFields2.Memo2 | Unknown | Person’s optional fields2 memo2. |
| TOPdesk.Person.OptionalFields2.Memo3 | Unknown | Person’s optional fields2 memo3. |
| TOPdesk.Person.OptionalFields2.Memo4 | Unknown | Person’s optional fields2 memo4. |
| TOPdesk.Person.OptionalFields2.Memo5 | Unknown | Person’s optional fields2 memo5. |
| TOPdesk.Person.OptionalFields2.Searchlist1 | Unknown | Person’s optional fields2 searchlist1. |
| TOPdesk.Person.OptionalFields2.Searchlist2 | Unknown | Person’s optional fields2 searchlist2. |
| TOPdesk.Person.OptionalFields2.Searchlist3 | Unknown | Person’s optional fields2 searchlist3. |
| TOPdesk.Person.OptionalFields2.Searchlist4 | Unknown | Person’s optional fields2 searchlist4. |
| TOPdesk.Person.OptionalFields2.Searchlist5 | Unknown | Person’s optional fields2 searchlist5. |
| TOPdesk.Person.PersonExtraFieldA | Unknown | Person’s extra field A. |
| TOPdesk.Person.PersonExtraFieldB | Unknown | Person’s extra field B. |
| TOPdesk.Person.DepartmentFree | Unknown | Person’s department free. |
| TOPdesk.Person.Branch.Id | String | Person’s branch ID. |
| TOPdesk.Person.Branch.Name | String | Person’s branch name. |
| TOPdesk.Person.Branch.ClientReferenceNumber | String | Person’s branch client reference number. |
| TOPdesk.Person.Branch.TimeZone | String | Person’s branch timezone. |
| TOPdesk.Person.Branch.ExtraA.Id | String | Person’s branch extra A ID. |
| TOPdesk.Person.Branch.ExtraA.Name | String | Person’s branch extra A name. |
| TOPdesk.Person.Branch.ExtraB | Unknown | Person’s branch extra B. |
| TOPdesk.Person.Branch.ExtraB.Id | String | Person’s branch extra B ID. |
| TOPdesk.Person.Branch.ExtraB.Name | String | Person’s branch extra B name. |
| TOPdesk.Person.Location | Unknown | Person’s location. |
Command Example
#### Context Example
```json
{
"TOPdesk": {
"Person": [
{
"AttentionComment": "",
"AuthorizeAll": false,
"AuthorizeBranch": false,
"AuthorizeBudgetHolder": false,
"AuthorizeDepartment": false,
"AuthorizeSubsidiaryBranches": false,
"BirthName": "",
"Branch": {
"ClientReferenceNumber": "1337",
"ExtraA": {
"Id": "some-extra-id",
"Name": "Building in progress"
},
"Id": "some-branch-id-1",
"Name": "HQ",
"TimeZone": ""
},
"City": "",
"ClientReferenceNumber": "1337",
"CreationDate": "2020-12-21T09:16:34.000+0000",
"Creator": {
"Id": "some-admin-id",
"Name": "TOPdesk Admin"
},
"DynamicName": "Xsoar - User - A",
"Email": "",
"EmployeeNumber": "",
"Fax": "",
"FirstInitials": "",
"FirstName": "Xsoar -",
"Gender": "UNDEFINED",
"HasAttention": false,
"Id": "some-user-id-a",
"IsManager": false,
"JobTitle": "",
"Language": {
"Id": "some-eng-lng-id",
"Name": "ENG"
},
"MainframeLoginName": "",
"MobileNumber": "",
"ModificationDate": "2020-12-21T09:20:53.000+0000",
"Modifier": {
"Id": "some-admin-id",
"Name": "TOPdesk Admin"
},
"NetworkLoginName": "",
"OptionalFields1": {
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"OptionalFields2": {
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"PhoneNumber": "",
"Prefixes": "",
"ShowAllBranches": false,
"ShowBranch": true,
"ShowBudgetholder": false,
"ShowDepartment": false,
"ShowSubsidiaries": false,
"Status": "person",
"SurName": "User - A",
"TasLoginName": "xsoar-user-a",
"Title": ""
}
]
}
}
Human Readable Output
TOPdesk persons
Id Name BranchName some-user-id-a Xsoar - User - A XSoar - Customer - A some-user-id-b Xsoar - User - B Xsoar - Customer - B
topdesk-operators-list
Get list of operators.
Permissions
Operator: With read permission on operators; Branch/Operator filters apply
Person: No access
Base Command
topdesk-operators-list
Input
| Argument Name | Description | Required |
|---|---|---|
| start | The offset at which to start listing the operators at. Must be greater or equal to 0. Default is 0. | Optional |
| page_size | The amount of operators to be returned per request. Must be between 1 and 100. Default is 10. | Optional |
| query | A FIQL search expression to filter the result. (e.g., manager.name==Alice) Available from Supporting-Files-API version 1.38.0. The FIQL query syntax is documented in the TOPdesk tutorial. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Operator.Id | String | Operator’s ID. |
| TOPdesk.Operator.PrincipalId | String | Operator’s principal ID. |
| TOPdesk.Operator.Status | String | Operator’s status. |
| TOPdesk.Operator.SurName | String | Operator’s surname. |
| TOPdesk.Operator.FirstName | String | Operator’s first name. |
| TOPdesk.Operator.DynamicName | String | Operator’s dynamic name. |
| TOPdesk.Operator.Initials | String | Operator’s initials. |
| TOPdesk.Operator.Prefixes | String | Operator’s prefixes. |
| TOPdesk.Operator.BirthName | String | Operator’s birth name. |
| TOPdesk.Operator.Title | String | Operator’s title. |
| TOPdesk.Operator.Gender | String | Operator’s gender. |
| TOPdesk.Operator.Language.Id | String | Operator’s language ID. |
| TOPdesk.Operator.Language.Name | String | Operator’s language name. |
| TOPdesk.Operator.Branch.Id | String | Operator’s branch ID. |
| TOPdesk.Operator.Branch.Name | String | Operator’s branch name. |
| TOPdesk.Operator.Branch.ClientReferenceNumber | String | Operator’s Branch Client reference number. |
| TOPdesk.Operator.Branch.TimeZone | String | Operator’s branch timezone. |
| TOPdesk.Operator.Branch.ExtraA.Id | String | Operator’s branch extra A ID. |
| TOPdesk.Operator.Branch.ExtraA.Name | String | Operator’s branch extra A name. |
| TOPdesk.Operator.Branch.ExtraB.Id | String | Operator’s branch extra B ID. |
| TOPdesk.Operator.Branch.ExtraB.Name | String | Operator’s branch extra B name. |
| TOPdesk.Operator.Location | Unknown | Operator’s location. |
| TOPdesk.Operator.Telephone | String | Operator’s telephone. |
| TOPdesk.Operator.MobileNumber | String | Operator’s mobile number. |
| TOPdesk.Operator.FaxNumber | String | Operator’s fax number. |
| TOPdesk.Operator.Email | String | Operator’s email. |
| TOPdesk.Operator.ExchangeAccount | String | Operator’s exchange account. |
| TOPdesk.Operator.LoginName | String | Operator’s login name. |
| TOPdesk.Operator.LoginPermission | Boolean | Operator’s login permission. |
| TOPdesk.Operator.JobTitle | String | Operator’s job title. |
| TOPdesk.Operator.Department | Unknown | Operator’s department. |
| TOPdesk.Operator.BudgetHolder | Unknown | Operator’s budget holder. |
| TOPdesk.Operator.EmployeeNumber | String | Operator’s employee number. |
| TOPdesk.Operator.HourlyRate | Number | Operator’s hourly rate. |
| TOPdesk.Operator.NetworkLoginName | String | Operator’s network login name. |
| TOPdesk.Operator.MainframeLoginName | String | Operator’s mainframe login name. |
| TOPdesk.Operator.HasAttention | Boolean | Operator’s has attention. |
| TOPdesk.Operator.Attention | Unknown | Operator’s attention. |
| TOPdesk.Operator.Comments | String | Operator’s comments. |
| TOPdesk.Operator.Installer | Boolean | Operator’s installer. |
| TOPdesk.Operator.FirstLineCallOperator | Boolean | Operator’s first line call operator. |
| TOPdesk.Operator.SecondLineCallOperator | Boolean | Operator’s second line call operator. |
| TOPdesk.Operator.ProblemManager | Boolean | Operator’s problem manager. |
| TOPdesk.Operator.ProblemOperator | Boolean | Operator’s problem operator. |
| TOPdesk.Operator.ChangeCoordinator | Boolean | Operator’s change coordinator. |
| TOPdesk.Operator.ChangeActivitiesOperator | Boolean | Operator’s change activities operator. |
| TOPdesk.Operator.RequestForChangeOperator | Boolean | Operator’s request for change operator. |
| TOPdesk.Operator.ExtensiveChangeOperator | Boolean | Operator’s extensive change operator. |
| TOPdesk.Operator.SimpleChangeOperator | Boolean | Operator’s simple change operator. |
| TOPdesk.Operator.ScenarioManager | Boolean | Operator’s scenario manager. |
| TOPdesk.Operator.PlanningActivityManager | Boolean | Operator’s planning activity manager. |
| TOPdesk.Operator.ProjectCoordinator | Boolean | Operator’s project coordinator. |
| TOPdesk.Operator.ProjectActiviesOperator | Boolean | Operator’s project activities operator. |
| TOPdesk.Operator.StockManager | Boolean | Operator’s stock manager. |
| TOPdesk.Operator.ReservationsOperator | Boolean | Operator’s reservations operator. |
| TOPdesk.Operator.ServiceOperator | Boolean | Operator’s service operator. |
| TOPdesk.Operator.ExternalHelpDeskParty | Boolean | Operator’s external help desk party. |
| TOPdesk.Operator.ContractManager | Boolean | Operator’s contract manager. |
| TOPdesk.Operator.OperationsOperator | Boolean | Operator’s operations operator. |
| TOPdesk.Operator.OperationsManager | Boolean | Operator’s operations manager. |
| TOPdesk.Operator.KnowledgeBaseManager | Boolean | Operator’s knowledge base manager. |
| TOPdesk.Operator.AccountManager | Boolean | Operator’s account manager. |
| TOPdesk.Operator.CreationDate | Date | Operator’s creation date. |
| TOPdesk.Operator.Creator.Id | String | Operator’s creator ID. |
| TOPdesk.Operator.Creator.Name | String | Operator’s creator name. |
| TOPdesk.Operator.ModificationDate | Date | Operator’s modification date. |
| TOPdesk.Operator.Modifier.Id | String | Operator’s modifier ID. |
| TOPdesk.Operator.Modifier.Name | String | Operator’s modifier name. |
| TOPdesk.Operator.OptionalFields1.Boolean1 | Boolean | Operator’s optional fields1 boolean1. |
| TOPdesk.Operator.OptionalFields1.Boolean2 | Boolean | Operator’s optional fields1 boolean2. |
| TOPdesk.Operator.OptionalFields1.Boolean3 | Boolean | Operator’s optional fields1 boolean3. |
| TOPdesk.Operator.OptionalFields1.Boolean4 | Boolean | Operator’s optional fields1 boolean4. |
| TOPdesk.Operator.OptionalFields1.Boolean5 | Boolean | Operator’s optional fields1 boolean5. |
| TOPdesk.Operator.OptionalFields1.Number1 | Number | Operator’s optional fields1 number1. |
| TOPdesk.Operator.OptionalFields1.Number2 | Number | Operator’s optional fields1 number2. |
| TOPdesk.Operator.OptionalFields1.Number3 | Number | Operator’s optional fields1 number3. |
| TOPdesk.Operator.OptionalFields1.Number4 | Number | Operator’s optional fields1 number4. |
| TOPdesk.Operator.OptionalFields1.Number5 | Number | Operator’s optional fields1 number5. |
| TOPdesk.Operator.OptionalFields1.Date1 | Unknown | Operator’s optional fields1 date1. |
| TOPdesk.Operator.OptionalFields1.Date2 | Unknown | Operator’s optional fields1 date2. |
| TOPdesk.Operator.OptionalFields1.Date3 | Unknown | Operator’s optional fields1 date3. |
| TOPdesk.Operator.OptionalFields1.Date4 | Unknown | Operator’s optional fields1 date4. |
| TOPdesk.Operator.OptionalFields1.Date5 | Unknown | Operator’s optional fields1 date5. |
| TOPdesk.Operator.OptionalFields1.Text1 | String | Operator’s optional fields1 text1. |
| TOPdesk.Operator.OptionalFields1.Text2 | String | Operator’s optional fields1 text2. |
| TOPdesk.Operator.OptionalFields1.Text3 | String | Operator’s optional fields1 text3. |
| TOPdesk.Operator.OptionalFields1.Text4 | String | Operator’s optional fields1 text4. |
| TOPdesk.Operator.OptionalFields1.Text5 | String | Operator’s optional fields1 text5. |
| TOPdesk.Operator.OptionalFields1.Memo1 | Unknown | Operator’s optional fields1 memo1. |
| TOPdesk.Operator.OptionalFields1.Memo2 | Unknown | Operator’s optional fields1 memo2. |
| TOPdesk.Operator.OptionalFields1.Memo3 | Unknown | Operator’s optional fields1 memo3. |
| TOPdesk.Operator.OptionalFields1.Memo4 | Unknown | Operator’s optional fields1 memo4. |
| TOPdesk.Operator.OptionalFields1.Memo5 | Unknown | Operator’s optional fields1 memo5. |
| TOPdesk.Operator.OptionalFields1.Searchlist1 | Unknown | Operator’s optional fields1 searchlist1. |
| TOPdesk.Operator.OptionalFields1.Searchlist2 | Unknown | Operator’s optional fields1 searchlist2. |
| TOPdesk.Operator.OptionalFields1.Searchlist3 | Unknown | Operator’s optional fields1 searchlist3. |
| TOPdesk.Operator.OptionalFields1.Searchlist4 | Unknown | Operator’s optional fields1 searchlist4. |
| TOPdesk.Operator.OptionalFields1.Searchlist5 | Unknown | Operator’s optional fields1 searchlist5. |
| TOPdesk.Operator.OptionalFields2.Boolean1 | Boolean | Operator’s optional fields2 boolean1. |
| TOPdesk.Operator.OptionalFields2.Boolean2 | Boolean | Operator’s optional fields2 boolean2. |
| TOPdesk.Operator.OptionalFields2.Boolean3 | Boolean | Operator’s optional fields2 boolean3. |
| TOPdesk.Operator.OptionalFields2.Boolean4 | Boolean | Operator’s optional fields2 boolean4. |
| TOPdesk.Operator.OptionalFields2.Boolean5 | Boolean | Operator’s optional fields2 boolean5. |
| TOPdesk.Operator.OptionalFields2.Number1 | Number | Operator’s optional fields2 number1. |
| TOPdesk.Operator.OptionalFields2.Number2 | Number | Operator’s optional fields2 number2. |
| TOPdesk.Operator.OptionalFields2.Number3 | Number | Operator’s optional fields2 number3. |
| TOPdesk.Operator.OptionalFields2.Number4 | Number | Operator’s optional fields2 number4. |
| TOPdesk.Operator.OptionalFields2.Number5 | Number | Operator’s optional fields2 number5. |
| TOPdesk.Operator.OptionalFields2.Date1 | Unknown | Operator’s optional fields2 date1. |
| TOPdesk.Operator.OptionalFields2.Date2 | Unknown | Operator’s optional fields2 date2. |
| TOPdesk.Operator.OptionalFields2.Date3 | Unknown | Operator’s optional fields2 date3. |
| TOPdesk.Operator.OptionalFields2.Date4 | Unknown | Operator’s optional fields2 date4. |
| TOPdesk.Operator.OptionalFields2.Date5 | Unknown | Operator’s optional fields2 date5. |
| TOPdesk.Operator.OptionalFields2.Text1 | String | Operator’s optional fields2 text1. |
| TOPdesk.Operator.OptionalFields2.Text2 | String | Operator’s optional fields2 text2. |
| TOPdesk.Operator.OptionalFields2.Text3 | String | Operator’s optional fields2 text3. |
| TOPdesk.Operator.OptionalFields2.Text4 | String | Operator’s optional fields2 text4. |
| TOPdesk.Operator.OptionalFields2.Text5 | String | Operator’s optional fields2 text5. |
| TOPdesk.Operator.OptionalFields2.Memo1 | Unknown | Operator’s optional fields2 memo1. |
| TOPdesk.Operator.OptionalFields2.Memo2 | Unknown | Operator’s optional fields2 memo2. |
| TOPdesk.Operator.OptionalFields2.Memo3 | Unknown | Operator’s optional fields2 memo3. |
| TOPdesk.Operator.OptionalFields2.Memo4 | Unknown | Operator’s optional fields2 memo4. |
| TOPdesk.Operator.OptionalFields2.Memo5 | Unknown | Operator’s optional fields2 memo5. |
| TOPdesk.Operator.OptionalFields2.Searchlist1 | Unknown | Operator’s optional fields2 searchlist1. |
| TOPdesk.Operator.OptionalFields2.Searchlist2 | Unknown | Operator’s optional fields2 searchlist2. |
| TOPdesk.Operator.OptionalFields2.Searchlist3 | Unknown | Operator’s optional fields2 searchlist3. |
| TOPdesk.Operator.OptionalFields2.Searchlist4 | Unknown | Operator’s optional fields2 searchlist4. |
| TOPdesk.Operator.OptionalFields2.Searchlist5 | Unknown | Operator’s optional fields2 searchlist5. |
Command Example
#### Context Example
```json
{
"TOPdesk": {
"Operator": {
"AccountManager": false,
"BirthName": "",
"Branch": {
"ClientReferenceNumber": "1337",
"ExtraA": {
"Id": "some-extra-id",
"Name": "Building in progress"
},
"Id": "some-branch-id-1",
"Name": "HQ",
"TimeZone": ""
},
"ChangeActivitiesOperator": false,
"ChangeCoordinator": false,
"Comments": "",
"ContractManager": false,
"CreationDate": "2020-12-21T09:24:35.000+0000",
"Creator": {
"Id": "some-admin-id",
"Name": "TOPdesk Admin"
},
"DynamicName": "Xsoar - Operator",
"Email": "xsoar-dev@example.com",
"EmployeeNumber": "",
"ExchangeAccount": "xsoar-dev@example.com",
"ExtensiveChangeOperator": false,
"ExternalHelpDeskParty": false,
"FaxNumber": "",
"FirstLineCallOperator": true,
"FirstName": "Xsoar -",
"Gender": "UNDEFINED",
"HasAttention": false,
"Id": "some-operator-id",
"Initials": "",
"Installer": false,
"JobTitle": "",
"KnowledgeBaseManager": false,
"Language": {
"Id": "some-eng-lng-id",
"Name": "ENG"
},
"LoginName": "XSOAR-OPERATOR",
"LoginPermission": true,
"MainframeLoginName": "",
"MobileNumber": "",
"ModificationDate": "2020-12-21T09:24:35.000+0000",
"Modifier": {
"Id": "some-admin-id",
"Name": "TOPdesk Admin"
},
"NetworkLoginName": "",
"OperationsManager": false,
"OperationsOperator": false,
"OptionalFields1": {
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"OptionalFields2": {
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"PlanningActivityManager": false,
"Prefixes": "",
"PrincipalId": "some-principal-id",
"ProblemManager": false,
"ProblemOperator": false,
"ProjectActiviesOperator": false,
"ProjectCoordinator": false,
"RequestForChangeOperator": false,
"ReservationsOperator": false,
"ScenarioManager": false,
"SecondLineCallOperator": true,
"ServiceOperator": false,
"SimpleChangeOperator": false,
"Status": "operator",
"StockManager": false,
"SurName": "Operator",
"Telephone": "",
"Title": ""
}
}
}
Human Readable Output
TOPdesk operators
Id Name BranchName some-operator-id Xsoar - Operator HQ
topdesk-branches-list
Get list of branches.
Permissions
Operator: Branch filters apply
Person: Only accessible when branches are editable in the SSP. Returns only ID and name.
Base Command
topdesk-branches-list
Input
| Argument Name | Description | Required |
|---|---|---|
| start | The offset at which to start listing the persons at. Must be greater or equal to 0. Default is 0. | Optional |
| page_size | The amount of persons to be returned per request. Must be between 1 and 100. Default is 10. | Optional |
| query | A FIQL search expression to filter the result. (e.g., address.country.name=NL) Available from Supporting-Files-API version 1.38.0. The FIQL query syntax is documented in the TOPdesk tutorial. | Optional |
| fields | A comma-separated list of which fields should be included. By default fields ID and name will be included. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Branch.Id | String | Branch’s ID. |
| TOPdesk.Branch.Status | String | Branch’s status. |
| TOPdesk.Branch.Name | String | Branch’s name. |
| TOPdesk.Branch.Specification | String | Branch’s specification. |
| TOPdesk.Branch.ClientReferenceNumber | String | Branch’s client reference number. |
| TOPdesk.Branch.TimeZone | String | Branch’s timezone. |
| TOPdesk.Branch.ExtraA.Id | String | Branch’s extra A ID. |
| TOPdesk.Branch.ExtraA.Name | String | Branch’s extra A name. |
| TOPdesk.Branch.ExtraB.Id | String | Branch’s extra B ID. |
| TOPdesk.Branch.ExtraB.Name | String | Branch’s extra B name. |
| TOPdesk.Branch.Phone | String | Branch’s phone. |
| TOPdesk.Branch.Fax | String | Branch’s fax. |
| TOPdesk.Branch.Address.Country.Id | String | Branch’s address country ID. |
| TOPdesk.Branch.Address.Country.Name | String | Branch’s address country name. |
| TOPdesk.Branch.Address.Street | String | Branch’s address street. |
| TOPdesk.Branch.Address.Number | String | Branch’s address number. |
| TOPdesk.Branch.Address.County | String | Branch’s address county. |
| TOPdesk.Branch.Address.City | String | Branch’s address city. |
| TOPdesk.Branch.Address.Postcode | String | Branch’s address postcode. |
| TOPdesk.Branch.Address.AddressMemo | String | Branch’s address memo. |
| TOPdesk.Branch.Address.AddressType | String | Branch’s address type. |
| TOPdesk.Branch.Email | String | Branch’s email. |
| TOPdesk.Branch.Website | String | Branch’s website. |
| TOPdesk.Branch.PostalAddress.Country.Id | String | Branch’s postal address country ID. |
| TOPdesk.Branch.PostalAddress.Country.Name | String | Branch’s postal address country name. |
| TOPdesk.Branch.PostalAddress.Street | String | Branch’s postal address street. |
| TOPdesk.Branch.PostalAddress.Number | String | Branch’s postal address number. |
| TOPdesk.Branch.PostalAddress.County | String | Branch’s postal address county. |
| TOPdesk.Branch.PostalAddress.City | String | Branch’s postal address city. |
| TOPdesk.Branch.PostalAddress.Postcode | String | Branch’s postal address postcode. |
| TOPdesk.Branch.PostalAddress.AddressMemo | String | Branch’s postal address memo. |
| TOPdesk.Branch.PostalAddress.AddressType | String | Branch’s postal address type. |
| TOPdesk.Branch.BranchType | String | Branch’s branch type. |
| TOPdesk.Branch.HeadBranch.Id | String | Branch’s head branch ID. |
| TOPdesk.Branch.HeadBranch.Name | String | Branch’s head branch name. |
| TOPdesk.Branch.MembershipNumber | String | Branch’s membership number. |
| TOPdesk.Branch.AccountManager.Id | String | Branch’s account manager ID. |
| TOPdesk.Branch.AccountManager.Name | String | Branch’s account manager name. |
| TOPdesk.Branch.Contact.Id | String | Branch’s contact ID. |
| TOPdesk.Branch.Contact.Name | String | Branch’s contact name. |
| TOPdesk.Branch.VatNumber | String | Branch’s VAT number. |
| TOPdesk.Branch.SurfaceArea | Number | Branch’s surface area. |
| TOPdesk.Branch.Volume | Number | Branch’s volume. |
| TOPdesk.Branch.Attention.Id | String | Branch’s attention ID. |
| TOPdesk.Branch.Attention.Name | String | Branch’s attention name. |
| TOPdesk.Branch.AttentionComment | String | Branch’s attention comment. |
| TOPdesk.Branch.AdditionalInfo | String | Branch’s additional info. |
| TOPdesk.Branch.ServiceWindowOption | String | Branch’s service window option. |
| TOPdesk.Branch.ServiceWindow.Id | String | Branch’s service window ID. |
| TOPdesk.Branch.ServiceWindow.Name | String | Branch’s service window name window name. |
| TOPdesk.Branch.RealEstate.RegistryReference | String | Branch’s real estate registry reference. |
| TOPdesk.Branch.RealEstate.OwnerName | String | Branch’s real estate owner name. |
| TOPdesk.Branch.RealEstate.OwnerMobile | String | Branch’s real estate owner mobile. |
| TOPdesk.Branch.RealEstate.OwnerTelephone | String | Branch’s real estate owner telephone. |
| TOPdesk.Branch.RealEstate.OwnerEmail | String | Branch’s real estate owner email. |
| TOPdesk.Branch.RealEstate.DesignatedUse.Id | String | Branch’s real estate designated use ID. |
| TOPdesk.Branch.RealEstate.DesignatedUse.Name | String | Branch’s real estate designated use name. |
| TOPdesk.Branch.RealEstate.ListedBuilding.Id | String | Branch’s real estate listed building ID. |
| TOPdesk.Branch.RealEstate.ListedBuilding.Name | String | Branch’s real estate listed building name. |
| TOPdesk.Branch.RealEstate.ConstructionYear | Number | Branch’s real estate construction year. |
| TOPdesk.Branch.RealEstate.AcquisitionYear | Number | Branch’s real estate acquisition year. |
| TOPdesk.Branch.RealEstate.AcquisitionPrice | Number | Branch’s real estate acquisition price. |
| TOPdesk.Branch.RealEstate.EnergyPerformance.Id | String | Branch’s real estate energy performance ID. |
| TOPdesk.Branch.RealEstate.EnergyPerformance.Name | String | Branch’s real estate energy performance name. |
| TOPdesk.Branch.RealEstate.EnergyPerformanceMeasurementDate | Date | Branch’s real estate energy performance measurement date. |
| TOPdesk.Branch.RealEstate.EnvironmentalImpact.Id | String | Branch’s real estate environmental impact ID. |
| TOPdesk.Branch.RealEstate.EnvironmentalImpact.Name | String | Branch’s real estate environmental impact name. |
| TOPdesk.Branch.RealEstate.EnvironmentalImpactMeasurementDate | Date | Branch’s real estate environmental impact measurement date. |
| TOPdesk.Branch.RealEstate.BuildingLevelEPC.Id | String | Branch’s real estate building level EPC ID. |
| TOPdesk.Branch.RealEstate.BuildingLevelEPC.Name | String | Branch’s real estate building level EPC name. |
| TOPdesk.Branch.RealEstate.TotalAcquisitionCost | Number | Branch’s real estate total acquisition cost. |
| TOPdesk.Branch.RealEstate.PropertyValuation | Number | Branch’s real estate property valuation. |
| TOPdesk.Branch.RealEstate.ResidualValue | Number | Branch’s real estate residual value. |
| TOPdesk.Branch.RealEstate.AnnualDepreciation | Number | Branch’s real estate annual depreciation. |
| TOPdesk.Branch.RealEstate.DepreciationPeriod | Number | Branch’s real estate depreciation period. |
| TOPdesk.Branch.RealEstate.LiquidationValue | Number | Branch’s real estate liquidation value. |
| TOPdesk.Branch.RealEstate.LiquidationValueSurveyDate | Date | Branch’s real estate liquidation value survey date. |
| TOPdesk.Branch.RealEstate.LandValue | Number | Branch’s real estate land value. |
| TOPdesk.Branch.RealEstate.LandValueSurveyDate | Date | Branch’s real estate land value survey date. |
| TOPdesk.Branch.RealEstate.MarketValue | Number | Branch’s real estate market value. |
| TOPdesk.Branch.RealEstate.MarketValueSurveyDate | Date | Branch’s real estate market value survey date. |
| TOPdesk.Branch.RealEstate.RentalValue | Number | Branch’s real estate rental value. |
| TOPdesk.Branch.RealEstate.RentalValueSurveyDate | Date | Branch’s real estate rental value survey date. |
| TOPdesk.Branch.RealEstate.RebuildingValue | Number | Branch’s real estate rebuilding value. |
| TOPdesk.Branch.RealEstate.RebuildingValueSurveyDate | Date | Branch’s real estate rebuilding value survey date. |
| TOPdesk.Branch.OptionalFields1.Boolean1 | Boolean | Branch’s optional fields1 boolean1. |
| TOPdesk.Branch.OptionalFields1.Boolean2 | Boolean | Branch’s optional fields1 boolean2. |
| TOPdesk.Branch.OptionalFields1.Boolean3 | Boolean | Branch’s optional fields1 boolean3. |
| TOPdesk.Branch.OptionalFields1.Boolean4 | Boolean | Branch’s optional fields1 boolean4. |
| TOPdesk.Branch.OptionalFields1.Boolean5 | Boolean | Branch’s optional fields1 boolean5. |
| TOPdesk.Branch.OptionalFields1.Number1 | Number | Branch’s optional fields1 number1. |
| TOPdesk.Branch.OptionalFields1.Number2 | Number | Branch’s optional fields1 number2. |
| TOPdesk.Branch.OptionalFields1.Number3 | Number | Branch’s optional fields1 number3. |
| TOPdesk.Branch.OptionalFields1.Number4 | Number | Branch’s optional fields1 number4. |
| TOPdesk.Branch.OptionalFields1.Number5 | Number | Branch’s optional fields1 number5. |
| TOPdesk.Branch.OptionalFields1.Date1 | Date | Branch’s optional fields1 date1. |
| TOPdesk.Branch.OptionalFields1.Date2 | Date | Branch’s optional fields1 date2. |
| TOPdesk.Branch.OptionalFields1.Date3 | Date | Branch’s optional fields1 date3. |
| TOPdesk.Branch.OptionalFields1.Date4 | Date | Branch’s optional fields1 date4. |
| TOPdesk.Branch.OptionalFields1.Date5 | Date | Branch’s optional fields1 date5. |
| TOPdesk.Branch.OptionalFields1.Text1 | String | Branch’s optional fields1 text1. |
| TOPdesk.Branch.OptionalFields1.Text2 | String | Branch’s optional fields1 text2. |
| TOPdesk.Branch.OptionalFields1.Text3 | String | Branch’s optional fields1 text3. |
| TOPdesk.Branch.OptionalFields1.Text4 | String | Branch’s optional fields1 text4. |
| TOPdesk.Branch.OptionalFields1.Text5 | String | Branch’s optional fields1 text5. |
| TOPdesk.Branch.OptionalFields1.Memo1 | String | Branch’s optional fields1 memo1. |
| TOPdesk.Branch.OptionalFields1.Memo2 | String | Branch’s optional fields1 memo2. |
| TOPdesk.Branch.OptionalFields1.Memo3 | String | Branch’s optional fields1 memo3. |
| TOPdesk.Branch.OptionalFields1.Memo4 | String | Branch’s optional fields1 memo4. |
| TOPdesk.Branch.OptionalFields1.Memo5 | String | Branch’s optional fields1 memo5. |
| TOPdesk.Branch.OptionalFields1.Searchlist1.Id | String | Branch’s optional fields1 searchlist1 ID. |
| TOPdesk.Branch.OptionalFields1.Searchlist1.Name | String | Branch’s optional fields1 searchlist1 name. |
| TOPdesk.Branch.OptionalFields1.Searchlist2.Id | String | Branch’s optional fields1 searchlist2 ID. |
| TOPdesk.Branch.OptionalFields1.Searchlist2.Name | String | Branch’s optional fields1 searchlist2 name. |
| TOPdesk.Branch.OptionalFields1.Searchlist3.Id | String | Branch’s optional fields1 searchlist3 ID. |
| TOPdesk.Branch.OptionalFields1.Searchlist3.Name | String | Branch’s optional fields1 searchlist3 name. |
| TOPdesk.Branch.OptionalFields1.Searchlist4.Id | String | Branch’s optional fields1 searchlist4 ID. |
| TOPdesk.Branch.OptionalFields1.Searchlist4.Name | String | Branch’s optional fields1 searchlist4 name. |
| TOPdesk.Branch.OptionalFields1.Searchlist5.Id | String | Branch’s optional fields1 searchlist5 ID. |
| TOPdesk.Branch.OptionalFields1.Searchlist5.Name | String | Branch’s optional fields1 searchlist5 name. |
| TOPdesk.Branch.OptionalFields2.Boolean1 | Boolean | Branch’s optional fields2 boolean1. |
| TOPdesk.Branch.OptionalFields2.Boolean2 | Boolean | Branch’s optional fields2 boolean2. |
| TOPdesk.Branch.OptionalFields2.Boolean3 | Boolean | Branch’s optional fields2 boolean3. |
| TOPdesk.Branch.OptionalFields2.Boolean4 | Boolean | Branch’s optional fields2 boolean4. |
| TOPdesk.Branch.OptionalFields2.Boolean5 | Boolean | Branch’s optional fields2 boolean5. |
| TOPdesk.Branch.OptionalFields2.Number1 | Number | Branch’s optional fields2 number1. |
| TOPdesk.Branch.OptionalFields2.Number2 | Number | Branch’s optional fields2 number2. |
| TOPdesk.Branch.OptionalFields2.Number3 | Number | Branch’s optional fields2 number3. |
| TOPdesk.Branch.OptionalFields2.Number4 | Number | Branch’s optional fields2 number4. |
| TOPdesk.Branch.OptionalFields2.Number5 | Number | Branch’s optional fields2 number5. |
| TOPdesk.Branch.OptionalFields2.Date1 | Date | Branch’s optional fields2 date1. |
| TOPdesk.Branch.OptionalFields2.Date2 | Date | Branch’s optional fields2 date2. |
| TOPdesk.Branch.OptionalFields2.Date3 | Date | Branch’s optional fields2 date3. |
| TOPdesk.Branch.OptionalFields2.Date4 | Date | Branch’s optional fields2 date4. |
| TOPdesk.Branch.OptionalFields2.Date5 | Date | Branch’s optional fields2 date5. |
| TOPdesk.Branch.OptionalFields2.Text1 | String | Branch’s optional fields2 text1. |
| TOPdesk.Branch.OptionalFields2.Text2 | String | Branch’s optional fields2 text2. |
| TOPdesk.Branch.OptionalFields2.Text3 | String | Branch’s optional fields2 text3. |
| TOPdesk.Branch.OptionalFields2.Text4 | String | Branch’s optional fields2 text4. |
| TOPdesk.Branch.OptionalFields2.Text5 | String | Branch’s optional fields2 text5. |
| TOPdesk.Branch.OptionalFields2.Memo1 | String | Branch’s optional fields2 memo1. |
| TOPdesk.Branch.OptionalFields2.Memo2 | String | Branch’s optional fields2 memo2. |
| TOPdesk.Branch.OptionalFields2.Memo3 | String | Branch’s optional fields2 memo3. |
| TOPdesk.Branch.OptionalFields2.Memo4 | String | Branch’s optional fields2 memo4. |
| TOPdesk.Branch.OptionalFields2.Memo5 | String | Branch’s optional fields2 memo5. |
| TOPdesk.Branch.OptionalFields2.Searchlist1.Id | String | Branch’s optional fields2 searchlist1 ID. |
| TOPdesk.Branch.OptionalFields2.Searchlist1.Name | String | Branch’s optional fields2 searchlist1 name. |
| TOPdesk.Branch.OptionalFields2.Searchlist2.Id | String | Branch’s optional fields2 searchlist2 ID. |
| TOPdesk.Branch.OptionalFields2.Searchlist2.Name | String | Branch’s optional fields2 searchlist2 name. |
| TOPdesk.Branch.OptionalFields2.Searchlist3.Id | String | Branch’s optional fields2 searchlist3 ID. |
| TOPdesk.Branch.OptionalFields2.Searchlist3.Name | String | Branch’s optional fields2 searchlist3 name. |
| TOPdesk.Branch.OptionalFields2.Searchlist4.Id | String | Branch’s optional fields2 searchlist4 ID. |
| TOPdesk.Branch.OptionalFields2.Searchlist4.Name | String | Branch’s optional fields2 searchlist4 name. |
| TOPdesk.Branch.OptionalFields2.Searchlist5.Id | String | Branch’s optional fields2 searchlist5 ID. |
| TOPdesk.Branch.OptionalFields2.Searchlist5.Name | String | Branch’s optional fields2 searchlist5 name. |
| TOPdesk.Branch.Notes | String | Branch’s notes. |
| TOPdesk.Branch.Creator.Id | String | Branch’s creator ID. |
| TOPdesk.Branch.Creator.Name | String | Branch’s creator name. |
| TOPdesk.Branch.CreationDate | Date | Branch’s creation date. |
| TOPdesk.Branch.Modifier.Id | String | Branch’s modifier ID. |
| TOPdesk.Branch.Modifier.Name | String | Branch’s modifier name. |
| TOPdesk.Branch.ModificationDate | Date | Branch’s modification date. |
| TOPdesk.Branch.HasAttention | Boolean | Branch’s has attention. |
Command Example
!topdesk-branches-list start=5
Context Example
{
"TOPdesk": {
"Branch": [
{
"Id": "some-branch-id",
"Status": "Active",
"Name": "HeadQuarters",
"Specification": "string",
"ClientReferenceNumber": "string",
"TimeZone": "string",
"ExtraA": {
"Id": "some-id-76",
"Name": "string"
},
"ExtraB": {
"Id": "some-id-98",
"Name": "string"
},
"Phone": "1337",
"Fax": "string",
"Address": {
"Country": {
"Id": "some-id-78",
"Name": "string"
},
"Street": "Featherstone Street",
"Number": "49",
"County": "Greater London",
"City": "London",
"Postcode": "EC1Y 8SY",
"AddressMemo": "49 Featherstone Street\nLONDON\nEC1Y 8SY\nUNITED KINGDOM",
"AddressType": "GB"
},
"Email": "string",
"Website": "some-domain.com",
"PostalAddress": {
"Country": {
"Id": "some-id-56",
"Name": "string"
},
"Street": "Featherstone Street",
"Number": "49",
"County": "Greater London",
"City": "London",
"Postcode": "EC1Y 8SY",
"AddressMemo": "49 Featherstone Street\nLONDON\nEC1Y 8SY\nUNITED KINGDOM",
"AddressType": "GB"
},
"BranchType": "string",
"HeadBranch": {
"Id": "some-id-45",
"Name": "string"
},
"MembershipNumber": "string",
"AccountManager": {
"Id": "some-id-45",
"Name": "string"
},
"Contact": {
"Id": "some-id-34",
"Name": "string"
},
"VatNumber": "string",
"SurfaceArea": 0,
"Volume": 0,
"Attention": {
"Id": "some-id-23",
"Name": "string"
},
"AttentionComment": "string",
"AdditionalInfo": "string",
"ServiceWindowOption": "string",
"ServiceWindow": {
"Id": "some-id-12",
"Name": "string"
},
"RealEstate": {
"RegistryReference": "string",
"OwnerName": "string",
"OwnerMobile": "string",
"OwnerTelephone": "string",
"OwnerEmail": "string",
"DesignatedUse": {
"Id": "some-id-99",
"Name": "string"
},
"ListedBuilding": {
"Id": "some-id-88",
"Name": "string"
},
"ConstructionYear": 0,
"AcquisitionYear": 0,
"AcquisitionPrice": 0,
"EnergyPerformance": {
"Id": "some-id-77",
"Name": "string"
},
"EnergyPerformanceMeasurementDate": "2021-03-24T12:39:50.643Z",
"EnvironmentalImpact": {
"Id": "some-id-66",
"Name": "string"
},
"EnvironmentalImpactMeasurementDate": "2021-03-24T12:39:50.643Z",
"BuildingLevelEPC": {
"Id": "some-id-55",
"Name": "string"
},
"TotalAcquisitionCost": 0,
"PropertyValuation": 0,
"ResidualValue": 0,
"AnnualDepreciation": 0,
"DepreciationPeriod": 0,
"LiquidationValue": 0,
"LiquidationValueSurveyDate": "2021-03-24T12:39:50.643Z",
"LandValue": 0,
"LandValueSurveyDate": "2021-03-24T12:39:50.643Z",
"MarketValue": 0,
"MarketValueSurveyDate": "2021-03-24T12:39:50.643Z",
"RentalValue": 0,
"RentalValueSurveyDate": "2021-03-24T12:39:50.643Z",
"RebuildingValue": 0,
"RebuildingValueSurveyDate": "2021-03-24T12:39:50.643Z"
},
"OptionalFields1": {
"Boolean1": true,
"Boolean2": true,
"Boolean3": true,
"Boolean4": true,
"Boolean5": true,
"Number1": 0,
"Number2": 0,
"Number3": 0,
"Number4": 0,
"Number5": 0,
"Date1": "2021-03-24T12:39:50.643Z",
"Date2": "2021-03-24T12:39:50.643Z",
"Date3": "2021-03-24T12:39:50.643Z",
"Date4": "2021-03-24T12:39:50.643Z",
"Date5": "2021-03-24T12:39:50.643Z",
"Text1": "string",
"Text2": "string",
"Text3": "string",
"Text4": "string",
"Text5": "string",
"Memo1": "string",
"Memo2": "string",
"Memo3": "string",
"Memo4": "string",
"Memo5": "string",
"Searchlist1": {
"Id": "some-id-55",
"Name": "string"
},
"Searchlist2": {
"Id": "some-id-44",
"Name": "string"
},
"Searchlist3": {
"Id": "some-id-33",
"Name": "string"
},
"Searchlist4": {
"Id": "some-id-22",
"Name": "string"
},
"searchlist5": {
"Id": "some-id-11",
"Name": "string"
}
},
"optionalFields2": {
"Boolean1": true,
"Boolean2": true,
"Boolean3": true,
"Boolean4": true,
"Boolean5": true,
"Number1": 0,
"Number2": 0,
"Number3": 0,
"Number4": 0,
"Number5": 0,
"Date1": "2021-03-24T12:39:50.643Z",
"Date2": "2021-03-24T12:39:50.643Z",
"Date3": "2021-03-24T12:39:50.643Z",
"Date4": "2021-03-24T12:39:50.643Z",
"Date5": "2021-03-24T12:39:50.643Z",
"Text1": "string",
"Text2": "string",
"Text3": "string",
"Text4": "string",
"Text5": "string",
"Memo1": "string",
"Memo2": "string",
"Memo3": "string",
"Memo4": "string",
"Memo5": "string",
"Searchlist1": {
"Id": "some-id-6",
"Name": "string"
},
"Searchlist2": {
"Id": "some-id-5",
"Name": "string"
},
"Searchlist3": {
"Id": "some-id-4",
"Name": "string"
},
"Searchlist4": {
"Id": "some-id-3",
"Name": "string"
},
"searchlist5": {
"Id": "some-id-2",
"Name": "string"
}
},
"Notes": "string",
"Creator": {
"Id": "some-id-1",
"name": "string"
},
"CreationDate": "2021-03-24T12:39:50.644Z",
"Modifier": {
"Id": "some-id",
"Name": "string"
},
"ModificationDate": "2021-03-24T12:39:50.644Z",
"HasAttention": true
}
]
}
}
Human Readable Output
TOPdesk branches
Id Status Name Phone Website Address some-branch-id Active HeadQuarters 1337 some-domain.com 49 Featherstone Street\nLONDON\nEC1Y 8SY\nUNITED KINGDOM
topdesk-incidents-list
Get list of incidents.
Permissions
Operator: With read permission on 1st/2nd line incident; Category/Branch/Operator filters apply
Person: Accessible; Person visibility settings apply
Base Command
topdesk-incidents-list
Input
| Argument Name | Description | Required |
|---|---|---|
| start | The offset at which to start listing the operators at. Must be greater or equal to 0. Default is 0. | Optional |
| page_size | The amount of operators to be returned per request. Must be between 1 and 100. Default is 10. | Optional |
| query | A search expression to filter the result. The FIQL query syntax will be used if ‘Use new query option’ in the settings is checked, otherwise old style query will be used. The FIQL query syntax is documented in the in the TOPdesk tutorial. TOPdesk tutorial. (e.g., (FIQL) status==firsLine) (e.g., (old style) status=firsLine). | Optional |
| incident_id | The ID of the incident to retrieve, overrides any other arguments. | Optional |
| incident_number | The number of the incident to retrieve, overrides any other argument but incident_id. | Optional |
| status. | Retrieve only the incidents of the given status. firstLine/secondLine/partial. Possible values are: firstLine, secondLine, partial. | Optional |
| caller_id | Retrieve only the incidents of the given caller ID. | Optional |
| branch_id | Retrieve only the incidents of the given branch ID. | Optional |
| category | Retrieve only the incidents of the given category. Supported only with new FIQL type queries. | Optional |
| subcategory | Retrieve only the incidents of the given subcategory. Supported only with new FIQL type queries. | Optional |
| call_type | Retrieve only the incidents of the given call type. Supported only with new FIQL type queries. | Optional |
| entry_type | Retrieve only the incidents of the given entry type. Supported only with new FIQL type queries. | Optional |
| fields | A comma-separated list of which fields should be returned. By default all fields will be returned. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Incident.Id | String | TOPdesk incident’s ID. |
| TOPdesk.Incident.Status | String | TOPdesk incident’s status. |
| TOPdesk.Incident.Number | String | TOPdesk incident’s number. |
| TOPdesk.Incident.Request | String | TOPdesk incident’s request. |
| TOPdesk.Incident.Requests | String | TOPdesk incident’s requests. |
| TOPdesk.Incident.Action | String | TOPdesk incident’s action. |
| TOPdesk.Incident.Attachments | String | TOPdesk incident’s attachments. |
| TOPdesk.Incident.Caller.Id | String | TOPdesk incident’s caller ID. |
| TOPdesk.Incident.Caller.DynamicName | String | TOPdesk incident’s caller dynamic name. |
| TOPdesk.Incident.Caller.Branch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.Caller.Branch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.Caller.Branch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.Caller.Branch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.Caller.Branch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.Caller.Branch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.CallerBranch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.CallerBranch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.CallerBranch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.CallerBranch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.CallerBranch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.CallerBranch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.BranchExtraFieldA | Unknown | TOPdesk incident’s branch extra field A. |
| TOPdesk.Incident.BranchExtraFieldB | Unknown | TOPdesk incident’s branch extra field B. |
| TOPdesk.Incident.BriefDescription | String | TOPdesk incident’s brief description. |
| TOPdesk.Incident.ExternalNumber | String | TOPdesk incident’s external number. |
| TOPdesk.Incident.Category.Id | String | TOPdesk incident’s category ID. |
| TOPdesk.Incident.Category.Name | String | TOPdesk incident’s category name. |
| TOPdesk.Incident.Subcategory.Id | String | TOPdesk incident’s subcategory ID. |
| TOPdesk.Incident.Subcategory.Name | String | TOPdesk incident’s subcategory name. |
| TOPdesk.Incident.CallType.Id | String | TOPdesk incident’s call type ID. |
| TOPdesk.Incident.CallType.Name | String | TOPdesk incident’s call type name. |
| TOPdesk.Incident.EntryType.Id | String | TOPdesk incident’s entry type ID. |
| TOPdesk.Incident.EntryType.Name | String | TOPdesk incident’s entry type name. |
| TOPdesk.Incident.Object.Id | String | TOPdesk incident’s object ID. |
| TOPdesk.Incident.Object.Name | String | TOPdesk incident’s object name. |
| TOPdesk.Incident.Object.Type.Id | String | TOPdesk incident’s object type ID. |
| TOPdesk.Incident.Object.Type.Name | String | TOPdesk incident’s object type name. |
| TOPdesk.Incident.Object.Make.Id | String | TOPdesk incident’s object make ID. |
| TOPdesk.Incident.Object.Make.Name | String | TOPdesk incident’s object make name. |
| TOPdesk.Incident.Object.Model.Id | String | TOPdesk incident’s object model ID. |
| TOPdesk.Incident.Object.Model.Name | String | TOPdesk incident’s object model name. |
| TOPdesk.Incident.Object.Branch.Id | String | TOPdesk incident’s object branch ID. |
| TOPdesk.Incident.Object.Branch.Name | String | TOPdesk incident’s object branch name. |
| TOPdesk.Incident.Object.Location.Id | String | TOPdesk incident’s object location ID. |
| TOPdesk.Incident.Object.Location.Name | String | TOPdesk incident’s object location name. |
| TOPdesk.Incident.Object.Specification | String | TOPdesk incident’s object specification. |
| TOPdesk.Incident.Object.SerialNumber | String | TOPdesk incident’s object serial number. |
| TOPdesk.Incident.Asset.Id | String | TOPdesk incident’s asset ID. |
| TOPdesk.Incident.Branch.ClientReferenceNumber | String | TOPdesk incident’s branch client reference number. |
| TOPdesk.Incident.Branch.TimeZone | String | TOPdesk incident’s branch timezone. |
| TOPdesk.Incident.Branch.ExtraA | Unknown | TOPdesk incident’s branch extra A. |
| TOPdesk.Incident.Branch.ExtraB | Unknown | TOPdesk incident’s branch extra B. |
| TOPdesk.Incident.Branch.Id | String | TOPdesk incident’s branch ID. |
| TOPdesk.Incident.Branch.Name | String | TOPdesk incident’s branch name. |
| TOPdesk.Incident.Location.Id | String | TOPdesk incident’s location ID. |
| TOPdesk.Incident.Location.Branch.ClientReferenceNumber | String | TOPdesk incident’s location branch client reference number. |
| TOPdesk.Incident.Location.Branch.TimeZone | String | TOPdesk incident’s location branch timezone. |
| TOPdesk.Incident.Location.Branch.ExtraA | Unknown | TOPdesk incident’s location branch extra A. |
| TOPdesk.Incident.Location.Branch.ExtraB | Unknown | TOPdesk incident’s location branch extra B. |
| TOPdesk.Incident.Location.Branch.Id | String | TOPdesk incident’s location branch ID. |
| TOPdesk.Incident.Location.Branch.Name | String | TOPdesk incident’s location branch name. |
| TOPdesk.Incident.Location.Name | String | TOPdesk incident’s location name. |
| TOPdesk.Incident.Location.Room | String | TOPdesk incident’s location room. |
| TOPdesk.Incident.Impact.Id | String | TOPdesk incident’s impact ID. |
| TOPdesk.Incident.Impact.Name | String | TOPdesk incident’s impact name. |
| TOPdesk.Incident.Urgency.Id | String | TOPdesk incident’s urgency ID. |
| TOPdesk.Incident.Urgency.Name | String | TOPdesk incident’s urgency name. |
| TOPdesk.Incident.Priority.Id | String | TOPdesk incident’s priority ID. |
| TOPdesk.Incident.Priority.Name | String | TOPdesk incident’s priority name. |
| TOPdesk.Incident.Duration.Id | String | TOPdesk incident’s duration ID. |
| TOPdesk.Incident.Duration.Name | String | TOPdesk incident’s duration name. |
| TOPdesk.Incident.TargetDate | Date | TOPdesk incident’s target date. |
| TOPdesk.Incident.Sla.Id | String | TOPdesk incident’s sla ID. |
| TOPdesk.Incident.OnHold | Boolean | TOPdesk incident’s on hold. |
| TOPdesk.Incident.OnHoldDate | Unknown | TOPdesk incident’s on hold date. |
| TOPdesk.Incident.OnHoldDuration | Number | TOPdesk incident’s on hold duration. |
| TOPdesk.Incident.FeedbackMessage | Unknown | TOPdesk incident’s feedback message. |
| TOPdesk.Incident.FeedbackRating | Unknown | TOPdesk incident’s feedback rating. |
| TOPdesk.Incident.Operator.Id | String | TOPdesk incident’s operator ID. |
| TOPdesk.Incident.Operator.Status | String | TOPdesk incident’s operator status. |
| TOPdesk.Incident.Operator.Name | String | TOPdesk incident’s operator name. |
| TOPdesk.Incident.OperatorGroup.Id | String | TOPdesk incident’s operator group ID. |
| TOPdesk.Incident.OperatorGroup.Name | String | TOPdesk incident’s operator group name. |
| TOPdesk.Incident.Supplier.Id | String | TOPdesk incident’s supplier ID. |
| TOPdesk.Incident.Supplier.Name | String | TOPdesk incident’s supplier name. |
| TOPdesk.Incident.Supplier.ForFirstLine | Boolean | TOPdesk incident’s supplier for first line. |
| TOPdesk.Incident.Supplier.ForSecondLine | Boolean | TOPdesk incident’s supplier for second line. |
| TOPdesk.Incident.ProcessingStatus.Id | String | TOPdesk incident’s processing status ID. |
| TOPdesk.Incident.ProcessingStatus.Name | String | TOPdesk incident’s processing status name. |
| TOPdesk.Incident.Completed | Boolean | TOPdesk incident’s completed. |
| TOPdesk.Incident.CompletedDate | Unknown | TOPdesk incident’s completed date. |
| TOPdesk.Incident.Closed | Boolean | TOPdesk incident’s closed. |
| TOPdesk.Incident.ClosedDate | Unknown | TOPdesk incident’s closed date. |
| TOPdesk.Incident.ClosureCode.Id | String | TOPdesk incident’s closure code ID. |
| TOPdesk.Incident.ClosureCode.Name | String | TOPdesk incident’s closure code name. |
| TOPdesk.Incident.TimeSpent | Number | TOPdesk incident’s time spent. |
| TOPdesk.Incident.TimeSpentFirstLine | Number | TOPdesk incident’s time spent first line |
| TOPdesk.Incident.TimeSpentSecondLineAndPartials | Number | TOPdesk incident’s time spent second line and partials. |
| TOPdesk.Incident.Costs | Number | TOPdesk incident’s costs. |
| TOPdesk.Incident.EscalationStatus | String | TOPdesk incident’s escalation status. |
| TOPdesk.Incident.EscalationReason.Id | String | TOPdesk incident’s escalation reason ID. |
| TOPdesk.Incident.EscalationReason.Name | String | TOPdesk incident’s escalation reason name. |
| TOPdesk.Incident.EscalationOperator.Id | String | TOPdesk incident’s escalation operator ID. |
| TOPdesk.Incident.EscalationOperator.Name | String | TOPdesk incident’s escalation operator name. |
| TOPdesk.Incident.CallDate | Date | TOPdesk incident’s call date. |
| TOPdesk.Incident.Creator.Id | String | TOPdesk incident’s creator ID. |
| TOPdesk.Incident.Creator.Name | String | TOPdesk incident’s creator name. |
| TOPdesk.Incident.CreationDate | Date | TOPdesk incident’s creation date. |
| TOPdesk.Incident.Modifier.Id | String | TOPdesk incident’s modifier ID. |
| TOPdesk.Incident.Modifier.Name | String | TOPdesk incident’s modifier name. |
| TOPdesk.Incident.ModificationDate | Date | TOPdesk incident’s modification date. |
| TOPdesk.Incident.MajorCall | Boolean | TOPdesk incident’s major call. |
| TOPdesk.Incident.MajorCallObject.Name | String | TOPdesk incident’s Major call object name. |
| TOPdesk.Incident.MajorCallObject.Id | String | TOPdesk incident’s major call object ID. |
| TOPdesk.Incident.MajorCallObject.Status | Number | TOPdesk incident’s major call object status. |
| TOPdesk.Incident.MajorCallObject.MajorIncident | Boolean | TOPdesk incident’s major call object major incident. |
| TOPdesk.Incident.PublishToSsd | Boolean | TOPdesk incident’s publish to SSD. |
| TOPdesk.Incident.Monitored | Boolean | TOPdesk incident’s monitored. |
| TOPdesk.Incident.ExpectedTimeSpent | Number | TOPdesk incident’s expected time spent. |
| TOPdesk.Incident.MainIncident | Unknown | TOPdesk incident’s main incident. |
| TOPdesk.Incident.PartialIncidents.Link | String | TOPdesk incident’s partial incidents link. |
| TOPdesk.Incident.OptionalFields1.Boolean1 | Boolean | TOPdesk incident’s optional fields1 boolean1. |
| TOPdesk.Incident.OptionalFields1.Boolean2 | Boolean | TOPdesk incident’s optional fields1 boolean2. |
| TOPdesk.Incident.OptionalFields1.Boolean3 | Boolean | TOPdesk incident’s optional fields1 boolean3. |
| TOPdesk.Incident.OptionalFields1.Boolean4 | Boolean | TOPdesk incident’s optional fields1 boolean4. |
| TOPdesk.Incident.OptionalFields1.Boolean5 | Boolean | TOPdesk incident’s optional fields1 boolean5. |
| TOPdesk.Incident.OptionalFields1.Number1 | Number | TOPdesk incident’s optional fields1 number1. |
| TOPdesk.Incident.OptionalFields1.Number2 | Number | TOPdesk incident’s optional fields1 number2. |
| TOPdesk.Incident.OptionalFields1.Number3 | Number | TOPdesk incident’s optional fields1 number3. |
| TOPdesk.Incident.OptionalFields1.Number4 | Number | TOPdesk incident’s optional fields1 number4. |
| TOPdesk.Incident.OptionalFields1.Number5 | Number | TOPdesk incident’s optional fields1 number5. |
| TOPdesk.Incident.OptionalFields1.Date1 | Date | TOPdesk incident’s optional fields1 date1. |
| TOPdesk.Incident.OptionalFields1.Date2 | Date | TOPdesk incident’s optional fields1 date2. |
| TOPdesk.Incident.OptionalFields1.Date3 | Date | TOPdesk incident’s optional fields1 date3. |
| TOPdesk.Incident.OptionalFields1.Date4 | Date | TOPdesk incident’s optional fields1 date4. |
| TOPdesk.Incident.OptionalFields1.Date5 | Date | TOPdesk incident’s optional fields1 date5. |
| TOPdesk.Incident.OptionalFields1.Text1 | String | TOPdesk incident’s optional fields1 text1. |
| TOPdesk.Incident.OptionalFields1.Text2 | String | TOPdesk incident’s optional fields1 text2. |
| TOPdesk.Incident.OptionalFields1.Text3 | String | TOPdesk incident’s optional fields1 text3. |
| TOPdesk.Incident.OptionalFields1.Text4 | String | TOPdesk incident’s optional fields1 text4. |
| TOPdesk.Incident.OptionalFields1.Text5 | String | TOPdesk incident’s optional fields1 text5. |
| TOPdesk.Incident.OptionalFields1.Memo1 | String | TOPdesk incident’s optional fields1 memo1. |
| TOPdesk.Incident.OptionalFields1.Memo2 | String | TOPdesk incident’s optional fields1 memo2. |
| TOPdesk.Incident.OptionalFields1.Memo3 | String | TOPdesk incident’s optional fields1 memo3. |
| TOPdesk.Incident.OptionalFields1.Memo4 | String | TOPdesk incident’s optional fields1 memo4. |
| TOPdesk.Incident.OptionalFields1.Memo5 | String | TOPdesk incident’s optional fields1 memo5. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Id | String | TOPdesk incident’s optional fields1 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Name | String | TOPdesk incident’s optional fields1 searchlist1 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Id | String | TOPdesk incident’s optional fields1 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Name | String | TOPdesk incident’s optional fields1 searchlist2 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Id | String | TOPdesk incident’s optional fields1 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Name | String | TOPdesk incident’s optional fields1 searchlist3 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Id | String | TOPdesk incident’s optional fields1 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Name | String | TOPdesk incident’s optional fields1 searchlist4 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Id | String | TOPdesk incident’s optional fields1 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Name | String | TOPdesk incident’s optional fields1 searchlist5 name. |
| TOPdesk.Incident.OptionalFields2.Boolean1 | Boolean | TOPdesk incident’s optional fields2 boolean1. |
| TOPdesk.Incident.OptionalFields2.Boolean2 | Boolean | TOPdesk incident’s optional fields2 boolean2. |
| TOPdesk.Incident.OptionalFields2.Boolean3 | Boolean | TOPdesk incident’s optional fields2 boolean3. |
| TOPdesk.Incident.OptionalFields2.Boolean4 | Boolean | TOPdesk incident’s optional fields2 boolean4. |
| TOPdesk.Incident.OptionalFields2.Boolean5 | Boolean | TOPdesk incident’s optional fields2 boolean5. |
| TOPdesk.Incident.OptionalFields2.Number1 | Number | TOPdesk incident’s optional fields2 number1. |
| TOPdesk.Incident.OptionalFields2.Number2 | Number | TOPdesk incident’s optional fields2 number2. |
| TOPdesk.Incident.OptionalFields2.Number3 | Number | TOPdesk incident’s optional fields2 number3. |
| TOPdesk.Incident.OptionalFields2.Number4 | Number | TOPdesk incident’s optional fields2 number4. |
| TOPdesk.Incident.OptionalFields2.Number5 | Number | TOPdesk incident’s optional fields2 number5. |
| TOPdesk.Incident.OptionalFields2.Date1 | Date | TOPdesk incident’s optional fields2 date1. |
| TOPdesk.Incident.OptionalFields2.Date2 | Date | TOPdesk incident’s optional fields2 date2. |
| TOPdesk.Incident.OptionalFields2.Date3 | Date | TOPdesk incident’s optional fields2 date3. |
| TOPdesk.Incident.OptionalFields2.Date4 | Date | TOPdesk incident’s optional fields2 date4. |
| TOPdesk.Incident.OptionalFields2.Date5 | Date | TOPdesk incident’s optional fields2 date5. |
| TOPdesk.Incident.OptionalFields2.Text1 | String | TOPdesk incident’s optional fields2 text1. |
| TOPdesk.Incident.OptionalFields2.Text2 | String | TOPdesk incident’s optional fields2 text2. |
| TOPdesk.Incident.OptionalFields2.Text3 | String | TOPdesk incident’s OptionalFields2.Text3 |
| TOPdesk.Incident.OptionalFields2.Text4 | String | TOPdesk incident’s optional fields2 text4. |
| TOPdesk.Incident.OptionalFields2.Text5 | String | TOPdesk incident’s optional fields2 text5. |
| TOPdesk.Incident.OptionalFields2.Memo1 | String | TOPdesk incident’s optional fields2 memo1. |
| TOPdesk.Incident.OptionalFields2.Memo2 | String | TOPdesk incident’s optional fields2 memo2. |
| TOPdesk.Incident.OptionalFields2.Memo3 | String | TOPdesk incident’s optional fields2 memo3. |
| TOPdesk.Incident.OptionalFields2.Memo4 | String | TOPdesk incident’s optional fields2 memo4. |
| TOPdesk.Incident.OptionalFields2.Memo5 | String | TOPdesk incident’s optional fields2 memo5. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Id | String | TOPdesk incident’s optional fields2 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Name | String | TOPdesk incident’s optional fields2 searchlist1 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Id | String | TOPdesk incident’s optional fields2 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Name | String | TOPdesk incident’s optional fields2 searchlist2 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Id | String | TOPdesk incident’s optional fields2 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Name | String | TOPdesk incident’s optional fields2 searchlist3 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Id | String | TOPdesk incident’s optional fields2 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Name | String | TOPdesk incident’s optional fields2 searchlist4 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Id | String | TOPdesk incident’s optional fields2 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Name | String | TOPdesk incident’s optional fields2 searchlist5 name. |
| TOPdesk.Incident.ExternalLinks.Id | String | TOPdesk incident’s external links ID. |
| TOPdesk.Incident.ExternalLinks.Type | String | TOPdesk incident’s external links type. |
| TOPdesk.Incident.ExternalLinks.Date | Date | TOPdesk incident’s external links date. |
Command Example
#### Context Example
```json
{
"TOPdesk": {
"Incident": [
{
"Action": "/tas/api/incidents/id/some-id/actions",
"Attachments": "/tas/api/incidents/id/some-id/attachments",
"BriefDescription": "",
"CallDate": "2021-03-24T08:15:13.867+0000",
"Caller": {
"DynamicName": "some-caller"
},
"Closed": false,
"Completed": false,
"CreationDate": "2021-03-24T08:15:13.867+0000",
"Creator": {
"Id": "some-id-1",
"Name": "Xsoar - Operator"
},
"ExternalNumber": "",
"Id": "some-id",
"MajorCall": false,
"ModificationDate": "2021-03-24T08:15:13.000+0000",
"Modifier": {
"Id": "some-id-1",
"Name": "Xsoar - Operator"
},
"Monitored": false,
"Number": "XSOAR-1337",
"OnHold": false,
"OptionalFields1": {
"Searchlist1": {
"Id": "some-id-3",
"Name": "Some Search Name"
},
"Searchlist3": {
"Id": "some-id-4",
"Name": "Some Other Search Name"
},
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"OptionalFields2": {
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"ProcessingStatus": {
"Id": "some-processing-status-id",
"Name": "Logged"
},
"PublishToSsd": false,
"Requests": "/tas/api/incidents/id/some-id/requests",
"Responded": false,
"Status": "firstLine"
}
]
}
}
Human Readable Output
TOPdesk incidents
Id Number Line CallerName Status some-id XSOAR-1337 firstLine some-caller Logged
topdesk-incident-actions
List all actions for specific incident
Permissions
Operator: With read permission on 1st/2nd line incident; Category/Branch/Operator filters apply
Persons: Accessible; Person visibility settings apply
Base Command
topdesk-incident-actions-list
Input
| Argument Name | Description | Required |
|---|---|---|
| incident_id | The incident ID. An ID or a number must be set. If both are set, the ID will be used. | Optional |
| incident_number | The incident number. An ID or a number must be set. If both are set, the ID will be used. | Optional |
| limit | The limit for the amount of actions. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Action.EntryDate | Date | Date of entry of the action |
| TOPdesk.Action.Flag | Unknown | Action’s flag |
| TOPdesk.Action.Operator.Id | String | ID of the operator who created the action. |
| TOPdesk.Action.Operator.Name | String | Name of the operator who created the action. |
| TOPdesk.Action.InvisibleForCaller | Bool | If the action is visible for person. |
| TOPdesk.Action.Person | String | Person who created the action, not operator. |
| TOPdesk.Action.Id | String | ID of the action. |
| TOPdesk.Action.Memotext | String | Content of the action. |
topdesk-incident-create
Create an incident in TOPdesk.
The command first uses the callerLookup option and tries to attach an existing user to the caller field of the incident.
If the callerLookup shows up empty, the command will create an incident with an unregistered caller with a name as provided in the caller option.
Permissions
Operator: With create permission on 1st/2nd line incident, partials require 2nd line create permission
Person: Can only create first line incidents for himself. Only the following fields can be set depending on the setting for the new call form:
- request
- briefDescription
- callType
- category
- subcategory
- object
- location
- operatorGroup
Base Command
topdesk-incident-create
Input
| Argument Name | Description | Required |
|---|---|---|
| caller | The caller ID for this incident. For an unregistered caller provide a name. | Required |
| status. | Status of the incident. Can only be set by operators. Possible values are: firstLine, secondLine, partial. | Optional |
| description | Brief description. maximum 80 characters. | Optional |
| request | Initial request. Can be set by operators and persons. | Optional |
| action | Initial action. Can be set by operators and persons. | Optional |
| action_invisible_for_caller | Whether the initial action is invisible for persons. Can only be set by operators. Default value is false. Possible values are: true, false. | Optional |
| entry_type | Entry type by name. Can only be set by operators. XSOAR is set by default for mirroring. | Optional |
| category | Category by name. Can be set by operators. It is an error to provide both an ID and a name. | Optional |
| subcategory | Subcategory by name. Can be set by operators. It is an error to provide both an ID and a name. | Optional |
| external_number | External number. Can only be set by operators. Max 60 characters. | Optional |
| main_incident | Main incident ID or number, required for creating a partial incident. Can only be set by operators. | Optional |
| additional_params | Additional parameters to pass when creating an incident. (e.g., {“optionalFields1”:{“text1”:”test”}}) | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Incident.Id | String | TOPdesk incident’s ID. |
| TOPdesk.Incident.Status | String | TOPdesk incident’s status. |
| TOPdesk.Incident.Number | String | TOPdesk incident’s number. |
| TOPdesk.Incident.Request | String | TOPdesk incident’s request. |
| TOPdesk.Incident.Requests | String | TOPdesk incident’s requests. |
| TOPdesk.Incident.Action | String | TOPdesk incident’s action. |
| TOPdesk.Incident.Attachments | String | TOPdesk incident’s attachments. |
| TOPdesk.Incident.Caller.Id | String | TOPdesk incident’s caller ID. |
| TOPdesk.Incident.Caller.DynamicName | String | TOPdesk incident’s caller dynamic name. |
| TOPdesk.Incident.Caller.Branch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.Caller.Branch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.Caller.Branch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.Caller.Branch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.Caller.Branch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.Caller.Branch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.CallerBranch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.CallerBranch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.CallerBranch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.CallerBranch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.CallerBranch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.CallerBranch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.BranchExtraFieldA | Unknown | TOPdesk incident’s branch extra field A. |
| TOPdesk.Incident.BranchExtraFieldB | Unknown | TOPdesk incident’s branch extra field B. |
| TOPdesk.Incident.BriefDescription | String | TOPdesk incident’s brief description. |
| TOPdesk.Incident.ExternalNumber | String | TOPdesk incident’s external number. |
| TOPdesk.Incident.Category.Id | String | TOPdesk incident’s category ID. |
| TOPdesk.Incident.Category.Name | String | TOPdesk incident’s category name. |
| TOPdesk.Incident.Subcategory.Id | String | TOPdesk incident’s subcategory ID. |
| TOPdesk.Incident.Subcategory.Name | String | TOPdesk incident’s subcategory name. |
| TOPdesk.Incident.CallType.Id | String | TOPdesk incident’s call type ID. |
| TOPdesk.Incident.CallType.Name | String | TOPdesk incident’s call type name. |
| TOPdesk.Incident.EntryType.Id | String | TOPdesk incident’s entry type ID. |
| TOPdesk.Incident.EntryType.Name | String | TOPdesk incident’s entry type name. |
| TOPdesk.Incident.Object.Id | String | TOPdesk incident’s object ID. |
| TOPdesk.Incident.Object.Name | String | TOPdesk incident’s object name. |
| TOPdesk.Incident.Object.Type.Id | String | TOPdesk incident’s object type ID. |
| TOPdesk.Incident.Object.Type.Name | String | TOPdesk incident’s object type name. |
| TOPdesk.Incident.Object.Make.Id | String | TOPdesk incident’s object make ID. |
| TOPdesk.Incident.Object.Make.Name | String | TOPdesk incident’s object make name. |
| TOPdesk.Incident.Object.Model.Id | String | TOPdesk incident’s object model ID. |
| TOPdesk.Incident.Object.Model.Name | String | TOPdesk incident’s object model name. |
| TOPdesk.Incident.Object.Branch.Id | String | TOPdesk incident’s object branch ID. |
| TOPdesk.Incident.Object.Branch.Name | String | TOPdesk incident’s object branch name. |
| TOPdesk.Incident.Object.Location.Id | String | TOPdesk incident’s object location ID. |
| TOPdesk.Incident.Object.Location.Name | String | TOPdesk incident’s object location name. |
| TOPdesk.Incident.Object.Specification | String | TOPdesk incident’s object specification. |
| TOPdesk.Incident.Object.SerialNumber | String | TOPdesk incident’s object serial number. |
| TOPdesk.Incident.Asset.Id | String | TOPdesk incident’s asset ID. |
| TOPdesk.Incident.Branch.ClientReferenceNumber | String | TOPdesk incident’s branch client reference number. |
| TOPdesk.Incident.Branch.TimeZone | String | TOPdesk incident’s branch timezone. |
| TOPdesk.Incident.Branch.ExtraA | Unknown | TOPdesk incident’s branch extra A. |
| TOPdesk.Incident.Branch.ExtraB | Unknown | TOPdesk incident’s branch extra B. |
| TOPdesk.Incident.Branch.Id | String | TOPdesk incident’s branch ID. |
| TOPdesk.Incident.Branch.Name | String | TOPdesk incident’s branch name. |
| TOPdesk.Incident.Location.Id | String | TOPdesk incident’s location ID. |
| TOPdesk.Incident.Location.Branch.ClientReferenceNumber | String | TOPdesk incident’s location branch client reference number. |
| TOPdesk.Incident.Location.Branch.TimeZone | String | TOPdesk incident’s location branch timezone. |
| TOPdesk.Incident.Location.Branch.ExtraA | Unknown | TOPdesk incident’s location branch extra A. |
| TOPdesk.Incident.Location.Branch.ExtraB | Unknown | TOPdesk incident’s location branch extra B. |
| TOPdesk.Incident.Location.Branch.Id | String | TOPdesk incident’s location branch ID. |
| TOPdesk.Incident.Location.Branch.Name | String | TOPdesk incident’s location branch name. |
| TOPdesk.Incident.Location.Name | String | TOPdesk incident’s location name. |
| TOPdesk.Incident.Location.Room | String | TOPdesk incident’s location room. |
| TOPdesk.Incident.Impact.Id | String | TOPdesk incident’s impact ID. |
| TOPdesk.Incident.Impact.Name | String | TOPdesk incident’s impact name. |
| TOPdesk.Incident.Urgency.Id | String | TOPdesk incident’s urgency ID. |
| TOPdesk.Incident.Urgency.Name | String | TOPdesk incident’s urgency name. |
| TOPdesk.Incident.Priority.Id | String | TOPdesk incident’s priority ID. |
| TOPdesk.Incident.Priority.Name | String | TOPdesk incident’s priority name. |
| TOPdesk.Incident.Duration.Id | String | TOPdesk incident’s duration ID. |
| TOPdesk.Incident.Duration.Name | String | TOPdesk incident’s duration name. |
| TOPdesk.Incident.TargetDate | Date | TOPdesk incident’s target date. |
| TOPdesk.Incident.Sla.Id | String | TOPdesk incident’s sla ID. |
| TOPdesk.Incident.OnHold | Boolean | TOPdesk incident’s on hold. |
| TOPdesk.Incident.OnHoldDate | Unknown | TOPdesk incident’s on hold date. |
| TOPdesk.Incident.OnHoldDuration | Number | TOPdesk incident’s on hold duration. |
| TOPdesk.Incident.FeedbackMessage | Unknown | TOPdesk incident’s feedback message. |
| TOPdesk.Incident.FeedbackRating | Unknown | TOPdesk incident’s feedback rating. |
| TOPdesk.Incident.Operator.Id | String | TOPdesk incident’s operator ID. |
| TOPdesk.Incident.Operator.Status | String | TOPdesk incident’s operator status. |
| TOPdesk.Incident.Operator.Name | String | TOPdesk incident’s operator name. |
| TOPdesk.Incident.OperatorGroup.Id | String | TOPdesk incident’s operator group ID. |
| TOPdesk.Incident.OperatorGroup.Name | String | TOPdesk incident’s operator group name. |
| TOPdesk.Incident.Supplier.Id | String | TOPdesk incident’s supplier ID. |
| TOPdesk.Incident.Supplier.Name | String | TOPdesk incident’s supplier name. |
| TOPdesk.Incident.Supplier.ForFirstLine | Boolean | TOPdesk incident’s supplier for first line. |
| TOPdesk.Incident.Supplier.ForSecondLine | Boolean | TOPdesk incident’s supplier for second line. |
| TOPdesk.Incident.ProcessingStatus.Id | String | TOPdesk incident’s processing status ID. |
| TOPdesk.Incident.ProcessingStatus.Name | String | TOPdesk incident’s processing status name. |
| TOPdesk.Incident.Completed | Boolean | TOPdesk incident’s completed. |
| TOPdesk.Incident.CompletedDate | Unknown | TOPdesk incident’s completed date. |
| TOPdesk.Incident.Closed | Boolean | TOPdesk incident’s closed. |
| TOPdesk.Incident.ClosedDate | Unknown | TOPdesk incident’s closed date. |
| TOPdesk.Incident.ClosureCode.Id | String | TOPdesk incident’s closure code ID. |
| TOPdesk.Incident.ClosureCode.Name | String | TOPdesk incident’s closure code name. |
| TOPdesk.Incident.TimeSpent | Number | TOPdesk incident’s time spent. |
| TOPdesk.Incident.TimeSpentFirstLine | Number | TOPdesk incident’s time spent first line |
| TOPdesk.Incident.TimeSpentSecondLineAndPartials | Number | TOPdesk incident’s time spent second line and partials. |
| TOPdesk.Incident.Costs | Number | TOPdesk incident’s costs. |
| TOPdesk.Incident.EscalationStatus | String | TOPdesk incident’s escalation status. |
| TOPdesk.Incident.EscalationReason.Id | String | TOPdesk incident’s escalation reason ID. |
| TOPdesk.Incident.EscalationReason.Name | String | TOPdesk incident’s escalation reason name. |
| TOPdesk.Incident.EscalationOperator.Id | String | TOPdesk incident’s escalation operator ID. |
| TOPdesk.Incident.EscalationOperator.Name | String | TOPdesk incident’s escalation operator name. |
| TOPdesk.Incident.CallDate | Date | TOPdesk incident’s call date. |
| TOPdesk.Incident.Creator.Id | String | TOPdesk incident’s creator ID. |
| TOPdesk.Incident.Creator.Name | String | TOPdesk incident’s creator name. |
| TOPdesk.Incident.CreationDate | Date | TOPdesk incident’s creation date. |
| TOPdesk.Incident.Modifier.Id | String | TOPdesk incident’s modifier ID. |
| TOPdesk.Incident.Modifier.Name | String | TOPdesk incident’s modifier name. |
| TOPdesk.Incident.ModificationDate | Date | TOPdesk incident’s modification date. |
| TOPdesk.Incident.MajorCall | Boolean | TOPdesk incident’s major call. |
| TOPdesk.Incident.MajorCallObject.Name | String | TOPdesk incident’s Major call object name. |
| TOPdesk.Incident.MajorCallObject.Id | String | TOPdesk incident’s major call object ID. |
| TOPdesk.Incident.MajorCallObject.Status | Number | TOPdesk incident’s major call object status. |
| TOPdesk.Incident.MajorCallObject.MajorIncident | Boolean | TOPdesk incident’s major call object major incident. |
| TOPdesk.Incident.PublishToSsd | Boolean | TOPdesk incident’s publish to SSD. |
| TOPdesk.Incident.Monitored | Boolean | TOPdesk incident’s monitored. |
| TOPdesk.Incident.ExpectedTimeSpent | Number | TOPdesk incident’s expected time spent. |
| TOPdesk.Incident.MainIncident | Unknown | TOPdesk incident’s main incident. |
| TOPdesk.Incident.PartialIncidents.Link | String | TOPdesk incident’s partial incidents link. |
| TOPdesk.Incident.OptionalFields1.Boolean1 | Boolean | TOPdesk incident’s optional fields1 boolean1. |
| TOPdesk.Incident.OptionalFields1.Boolean2 | Boolean | TOPdesk incident’s optional fields1 boolean2. |
| TOPdesk.Incident.OptionalFields1.Boolean3 | Boolean | TOPdesk incident’s optional fields1 boolean3. |
| TOPdesk.Incident.OptionalFields1.Boolean4 | Boolean | TOPdesk incident’s optional fields1 boolean4. |
| TOPdesk.Incident.OptionalFields1.Boolean5 | Boolean | TOPdesk incident’s optional fields1 boolean5. |
| TOPdesk.Incident.OptionalFields1.Number1 | Number | TOPdesk incident’s optional fields1 number1. |
| TOPdesk.Incident.OptionalFields1.Number2 | Number | TOPdesk incident’s optional fields1 number2. |
| TOPdesk.Incident.OptionalFields1.Number3 | Number | TOPdesk incident’s optional fields1 number3. |
| TOPdesk.Incident.OptionalFields1.Number4 | Number | TOPdesk incident’s optional fields1 number4. |
| TOPdesk.Incident.OptionalFields1.Number5 | Number | TOPdesk incident’s optional fields1 number5. |
| TOPdesk.Incident.OptionalFields1.Date1 | Date | TOPdesk incident’s optional fields1 date1. |
| TOPdesk.Incident.OptionalFields1.Date2 | Date | TOPdesk incident’s optional fields1 date2. |
| TOPdesk.Incident.OptionalFields1.Date3 | Date | TOPdesk incident’s optional fields1 date3. |
| TOPdesk.Incident.OptionalFields1.Date4 | Date | TOPdesk incident’s optional fields1 date4. |
| TOPdesk.Incident.OptionalFields1.Date5 | Date | TOPdesk incident’s optional fields1 date5. |
| TOPdesk.Incident.OptionalFields1.Text1 | String | TOPdesk incident’s optional fields1 text1. |
| TOPdesk.Incident.OptionalFields1.Text2 | String | TOPdesk incident’s optional fields1 text2. |
| TOPdesk.Incident.OptionalFields1.Text3 | String | TOPdesk incident’s optional fields1 text3. |
| TOPdesk.Incident.OptionalFields1.Text4 | String | TOPdesk incident’s optional fields1 text4. |
| TOPdesk.Incident.OptionalFields1.Text5 | String | TOPdesk incident’s optional fields1 text5. |
| TOPdesk.Incident.OptionalFields1.Memo1 | String | TOPdesk incident’s optional fields1 memo1. |
| TOPdesk.Incident.OptionalFields1.Memo2 | String | TOPdesk incident’s optional fields1 memo2. |
| TOPdesk.Incident.OptionalFields1.Memo3 | String | TOPdesk incident’s optional fields1 memo3. |
| TOPdesk.Incident.OptionalFields1.Memo4 | String | TOPdesk incident’s optional fields1 memo4. |
| TOPdesk.Incident.OptionalFields1.Memo5 | String | TOPdesk incident’s optional fields1 memo5. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Id | String | TOPdesk incident’s optional fields1 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Name | String | TOPdesk incident’s optional fields1 searchlist1 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Id | String | TOPdesk incident’s optional fields1 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Name | String | TOPdesk incident’s optional fields1 searchlist2 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Id | String | TOPdesk incident’s optional fields1 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Name | String | TOPdesk incident’s optional fields1 searchlist3 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Id | String | TOPdesk incident’s optional fields1 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Name | String | TOPdesk incident’s optional fields1 searchlist4 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Id | String | TOPdesk incident’s optional fields1 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Name | String | TOPdesk incident’s optional fields1 searchlist5 name. |
| TOPdesk.Incident.OptionalFields2.Boolean1 | Boolean | TOPdesk incident’s optional fields2 boolean1. |
| TOPdesk.Incident.OptionalFields2.Boolean2 | Boolean | TOPdesk incident’s optional fields2 boolean2. |
| TOPdesk.Incident.OptionalFields2.Boolean3 | Boolean | TOPdesk incident’s optional fields2 boolean3. |
| TOPdesk.Incident.OptionalFields2.Boolean4 | Boolean | TOPdesk incident’s optional fields2 boolean4. |
| TOPdesk.Incident.OptionalFields2.Boolean5 | Boolean | TOPdesk incident’s optional fields2 boolean5. |
| TOPdesk.Incident.OptionalFields2.Number1 | Number | TOPdesk incident’s optional fields2 number1. |
| TOPdesk.Incident.OptionalFields2.Number2 | Number | TOPdesk incident’s optional fields2 number2. |
| TOPdesk.Incident.OptionalFields2.Number3 | Number | TOPdesk incident’s optional fields2 number3. |
| TOPdesk.Incident.OptionalFields2.Number4 | Number | TOPdesk incident’s optional fields2 number4. |
| TOPdesk.Incident.OptionalFields2.Number5 | Number | TOPdesk incident’s optional fields2 number5. |
| TOPdesk.Incident.OptionalFields2.Date1 | Date | TOPdesk incident’s optional fields2 date1. |
| TOPdesk.Incident.OptionalFields2.Date2 | Date | TOPdesk incident’s optional fields2 date2. |
| TOPdesk.Incident.OptionalFields2.Date3 | Date | TOPdesk incident’s optional fields2 date3. |
| TOPdesk.Incident.OptionalFields2.Date4 | Date | TOPdesk incident’s optional fields2 date4. |
| TOPdesk.Incident.OptionalFields2.Date5 | Date | TOPdesk incident’s optional fields2 date5. |
| TOPdesk.Incident.OptionalFields2.Text1 | String | TOPdesk incident’s optional fields2 text1. |
| TOPdesk.Incident.OptionalFields2.Text2 | String | TOPdesk incident’s optional fields2 text2. |
| TOPdesk.Incident.OptionalFields2.Text3 | String | TOPdesk incident’s optional fields2.text3. |
| TOPdesk.Incident.OptionalFields2.Text4 | String | TOPdesk incident’s optional fields2 text4. |
| TOPdesk.Incident.OptionalFields2.Text5 | String | TOPdesk incident’s optional fields2 text5. |
| TOPdesk.Incident.OptionalFields2.Memo1 | String | TOPdesk incident’s optional fields2 memo1. |
| TOPdesk.Incident.OptionalFields2.Memo2 | String | TOPdesk incident’s optional fields2 memo2. |
| TOPdesk.Incident.OptionalFields2.Memo3 | String | TOPdesk incident’s optional fields2 memo3. |
| TOPdesk.Incident.OptionalFields2.Memo4 | String | TOPdesk incident’s optional fields2 memo4. |
| TOPdesk.Incident.OptionalFields2.Memo5 | String | TOPdesk incident’s optional fields2 memo5. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Id | String | TOPdesk incident’s optional fields2 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Name | String | TOPdesk incident’s optional fields2 searchlist1 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Id | String | TOPdesk incident’s optional fields2 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Name | String | TOPdesk incident’s optional fields2 searchlist2 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Id | String | TOPdesk incident’s optional fields2 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Name | String | TOPdesk incident’s optional fields2 searchlist3 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Id | String | TOPdesk incident’s optional fields2 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Name | String | TOPdesk incident’s optional fields2 searchlist4 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Id | String | TOPdesk incident’s optional fields2 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Name | String | TOPdesk incident’s optional fields2 searchlist5 name. |
| TOPdesk.Incident.ExternalLinks.Id | String | TOPdesk incident’s external links ID. |
| TOPdesk.Incident.ExternalLinks.Type | String | TOPdesk incident’s external links type. |
| TOPdesk.Incident.ExternalLinks.Date | Date | TOPdesk incident’s external links date. |
Command Example
!topdesk-incident-create caller=some-caller
Context Example
{
"TOPdesk": {
"Incident": [
{
"Action": "/tas/api/incidents/id/some-id/actions",
"Attachments": "/tas/api/incidents/id/some-id/attachments",
"BriefDescription": "",
"CallDate": "2021-03-24T08:15:13.867+0000",
"Caller": {
"DynamicName": "some-caller"
},
"Closed": false,
"Completed": false,
"CreationDate": "2021-03-24T08:15:13.867+0000",
"Creator": {
"Id": "some-id-1",
"Name": "Xsoar - Operator"
},
"ExternalNumber": "",
"Id": "some-id",
"MajorCall": false,
"ModificationDate": "2021-03-24T08:15:13.000+0000",
"Modifier": {
"Id": "some-id-1",
"Name": "Xsoar - Operator"
},
"Monitored": false,
"Number": "XSOAR-1337",
"OnHold": false,
"OptionalFields1": {
"Searchlist1": {
"Id": "some-id-3",
"Name": "Some Search Name"
},
"Searchlist3": {
"Id": "some-id-4",
"Name": "Some Other Search Name"
},
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"OptionalFields2": {
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"ProcessingStatus": {
"Id": "some-processing-status-id",
"Name": "Logged"
},
"PublishToSsd": false,
"Requests": "/tas/api/incidents/id/some-id/requests",
"Responded": false,
"Status": "firstLine"
}
]
}
}
Human Readable Output
TOPdesk incidents
Id Number Line CallerName Status some-id XSOAR-1337 firstLine some-caller Logged
topdesk-incident-update
Update an incident in TOPdesk.
Permissions
Operator: With edit permission on 1st/2nd line incident; Category/Branch/Operator filters apply
Person: Accessible; Person visibility settings apply.
Depending on settings, the following fields can be updated:
- action
- closed
- feedbackRating
- feedbackMessage
Base Command
topdesk-incident-update
Input
| Argument Name | Description | Required |
|---|---|---|
| id | The incident ID. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
| number. | The incident number. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
| status. | Status of the incident. Can only be set by operators. Possible values are: firstLine, secondLine, partial. | Optional |
| description | Brief description. maximum 80 characters. | Optional |
| request | Initial request. Can be set by operators and persons. | Optional |
| action | Initial action. Can be set by operators and persons. | Optional |
| caller | The caller ID for this incident. For an unregistered caller provide a name. | Optional |
| action_invisible_for_caller | Whether the initial action is invisible for persons. Can only be set by operators. Default value is false. Possible values are: true, false. | Optional |
| entry_type | Entry type by name. Can only be set by operators. XSOAR is set by default for mirroring. | Optional |
| category | Category by name. Can be set by operators. It is an error to provide both an ID and a name. | Optional |
| subcategory | Subcategory by name. Can be set by operators. It is an error to provide both an ID and a name. | Optional |
| external_number | External number. Can only be set by operators. Max 60 characters. | Optional |
| main_incident | Main incident ID or number, required for creating a partial incident. Can only be set by operators. | Optional |
| additional_params | Additional parameters to pass when creating an incident. (e.g., {“optionalFields1”:{“text1”:”test”}}) | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Incident.Id | String | TOPdesk incident’s ID. |
| TOPdesk.Incident.Status | String | TOPdesk incident’s status. |
| TOPdesk.Incident.Number | String | TOPdesk incident’s number. |
| TOPdesk.Incident.Request | String | TOPdesk incident’s request. |
| TOPdesk.Incident.Requests | String | TOPdesk incident’s requests. |
| TOPdesk.Incident.Action | String | TOPdesk incident’s action. |
| TOPdesk.Incident.Attachments | String | TOPdesk incident’s attachments. |
| TOPdesk.Incident.Caller.Id | String | TOPdesk incident’s caller ID. |
| TOPdesk.Incident.Caller.DynamicName | String | TOPdesk incident’s caller dynamic name. |
| TOPdesk.Incident.Caller.Branch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.Caller.Branch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.Caller.Branch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.Caller.Branch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.Caller.Branch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.Caller.Branch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.CallerBranch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.CallerBranch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.CallerBranch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.CallerBranch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.CallerBranch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.CallerBranch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.BranchExtraFieldA | Unknown | TOPdesk incident’s branch extra field A. |
| TOPdesk.Incident.BranchExtraFieldB | Unknown | TOPdesk incident’s branch extra field B. |
| TOPdesk.Incident.BriefDescription | String | TOPdesk incident’s brief description. |
| TOPdesk.Incident.ExternalNumber | String | TOPdesk incident’s external number. |
| TOPdesk.Incident.Category.Id | String | TOPdesk incident’s category ID. |
| TOPdesk.Incident.Category.Name | String | TOPdesk incident’s category name. |
| TOPdesk.Incident.Subcategory.Id | String | TOPdesk incident’s subcategory ID. |
| TOPdesk.Incident.Subcategory.Name | String | TOPdesk incident’s subcategory name. |
| TOPdesk.Incident.CallType.Id | String | TOPdesk incident’s call type ID. |
| TOPdesk.Incident.CallType.Name | String | TOPdesk incident’s call type name. |
| TOPdesk.Incident.EntryType.Id | String | TOPdesk incident’s entry type ID. |
| TOPdesk.Incident.EntryType.Name | String | TOPdesk incident’s entry type name. |
| TOPdesk.Incident.Object.Id | String | TOPdesk incident’s object ID. |
| TOPdesk.Incident.Object.Name | String | TOPdesk incident’s object name. |
| TOPdesk.Incident.Object.Type.Id | String | TOPdesk incident’s object type ID. |
| TOPdesk.Incident.Object.Type.Name | String | TOPdesk incident’s object type name. |
| TOPdesk.Incident.Object.Make.Id | String | TOPdesk incident’s object make ID. |
| TOPdesk.Incident.Object.Make.Name | String | TOPdesk incident’s object make name. |
| TOPdesk.Incident.Object.Model.Id | String | TOPdesk incident’s object model ID. |
| TOPdesk.Incident.Object.Model.Name | String | TOPdesk incident’s object model name. |
| TOPdesk.Incident.Object.Branch.Id | String | TOPdesk incident’s object branch ID. |
| TOPdesk.Incident.Object.Branch.Name | String | TOPdesk incident’s object branch name. |
| TOPdesk.Incident.Object.Location.Id | String | TOPdesk incident’s object location ID. |
| TOPdesk.Incident.Object.Location.Name | String | TOPdesk incident’s object location name. |
| TOPdesk.Incident.Object.Specification | String | TOPdesk incident’s object specification. |
| TOPdesk.Incident.Object.SerialNumber | String | TOPdesk incident’s object serial number. |
| TOPdesk.Incident.Asset.Id | String | TOPdesk incident’s asset ID. |
| TOPdesk.Incident.Branch.ClientReferenceNumber | String | TOPdesk incident’s branch client reference number. |
| TOPdesk.Incident.Branch.TimeZone | String | TOPdesk incident’s branch timezone. |
| TOPdesk.Incident.Branch.ExtraA | Unknown | TOPdesk incident’s branch extra A. |
| TOPdesk.Incident.Branch.ExtraB | Unknown | TOPdesk incident’s branch extra B. |
| TOPdesk.Incident.Branch.Id | String | TOPdesk incident’s branch ID. |
| TOPdesk.Incident.Branch.Name | String | TOPdesk incident’s branch name. |
| TOPdesk.Incident.Location.Id | String | TOPdesk incident’s location ID. |
| TOPdesk.Incident.Location.Branch.ClientReferenceNumber | String | TOPdesk incident’s location branch client reference number. |
| TOPdesk.Incident.Location.Branch.TimeZone | String | TOPdesk incident’s location branch timezone. |
| TOPdesk.Incident.Location.Branch.ExtraA | Unknown | TOPdesk incident’s location branch extra A. |
| TOPdesk.Incident.Location.Branch.ExtraB | Unknown | TOPdesk incident’s location branch extra B. |
| TOPdesk.Incident.Location.Branch.Id | String | TOPdesk incident’s location branch ID. |
| TOPdesk.Incident.Location.Branch.Name | String | TOPdesk incident’s location branch name. |
| TOPdesk.Incident.Location.Name | String | TOPdesk incident’s location name. |
| TOPdesk.Incident.Location.Room | String | TOPdesk incident’s location room. |
| TOPdesk.Incident.Impact.Id | String | TOPdesk incident’s impact ID. |
| TOPdesk.Incident.Impact.Name | String | TOPdesk incident’s impact name. |
| TOPdesk.Incident.Urgency.Id | String | TOPdesk incident’s urgency ID. |
| TOPdesk.Incident.Urgency.Name | String | TOPdesk incident’s urgency name. |
| TOPdesk.Incident.Priority.Id | String | TOPdesk incident’s priority ID. |
| TOPdesk.Incident.Priority.Name | String | TOPdesk incident’s priority name. |
| TOPdesk.Incident.Duration.Id | String | TOPdesk incident’s duration ID. |
| TOPdesk.Incident.Duration.Name | String | TOPdesk incident’s duration name. |
| TOPdesk.Incident.TargetDate | Date | TOPdesk incident’s target date. |
| TOPdesk.Incident.Sla.Id | String | TOPdesk incident’s sla ID. |
| TOPdesk.Incident.OnHold | Boolean | TOPdesk incident’s on hold. |
| TOPdesk.Incident.OnHoldDate | Unknown | TOPdesk incident’s on hold date. |
| TOPdesk.Incident.OnHoldDuration | Number | TOPdesk incident’s on hold duration. |
| TOPdesk.Incident.FeedbackMessage | Unknown | TOPdesk incident’s feedback message. |
| TOPdesk.Incident.FeedbackRating | Unknown | TOPdesk incident’s feedback rating. |
| TOPdesk.Incident.Operator.Id | String | TOPdesk incident’s operator ID. |
| TOPdesk.Incident.Operator.Status | String | TOPdesk incident’s operator status. |
| TOPdesk.Incident.Operator.Name | String | TOPdesk incident’s operator name. |
| TOPdesk.Incident.OperatorGroup.Id | String | TOPdesk incident’s operator group ID. |
| TOPdesk.Incident.OperatorGroup.Name | String | TOPdesk incident’s operator group name. |
| TOPdesk.Incident.Supplier.Id | String | TOPdesk incident’s supplier ID. |
| TOPdesk.Incident.Supplier.Name | String | TOPdesk incident’s supplier name. |
| TOPdesk.Incident.Supplier.ForFirstLine | Boolean | TOPdesk incident’s supplier for first line. |
| TOPdesk.Incident.Supplier.ForSecondLine | Boolean | TOPdesk incident’s supplier for second line. |
| TOPdesk.Incident.ProcessingStatus.Id | String | TOPdesk incident’s processing status ID. |
| TOPdesk.Incident.ProcessingStatus.Name | String | TOPdesk incident’s processing status name. |
| TOPdesk.Incident.Completed | Boolean | TOPdesk incident’s completed. |
| TOPdesk.Incident.CompletedDate | Unknown | TOPdesk incident’s completed date. |
| TOPdesk.Incident.Closed | Boolean | TOPdesk incident’s closed. |
| TOPdesk.Incident.ClosedDate | Unknown | TOPdesk incident’s closed date. |
| TOPdesk.Incident.ClosureCode.Id | String | TOPdesk incident’s closure code ID. |
| TOPdesk.Incident.ClosureCode.Name | String | TOPdesk incident’s closure code name. |
| TOPdesk.Incident.TimeSpent | Number | TOPdesk incident’s time spent. |
| TOPdesk.Incident.TimeSpentFirstLine | Number | TOPdesk incident’s time spent first line |
| TOPdesk.Incident.TimeSpentSecondLineAndPartials | Number | TOPdesk incident’s time spent second line and partials. |
| TOPdesk.Incident.Costs | Number | TOPdesk incident’s costs. |
| TOPdesk.Incident.EscalationStatus | String | TOPdesk incident’s escalation status. |
| TOPdesk.Incident.EscalationReason.Id | String | TOPdesk incident’s escalation reason ID. |
| TOPdesk.Incident.EscalationReason.Name | String | TOPdesk incident’s escalation reason name. |
| TOPdesk.Incident.EscalationOperator.Id | String | TOPdesk incident’s escalation operator ID. |
| TOPdesk.Incident.EscalationOperator.Name | String | TOPdesk incident’s escalation operator name. |
| TOPdesk.Incident.CallDate | Date | TOPdesk incident’s call date. |
| TOPdesk.Incident.Creator.Id | String | TOPdesk incident’s creator ID. |
| TOPdesk.Incident.Creator.Name | String | TOPdesk incident’s creator name. |
| TOPdesk.Incident.CreationDate | Date | TOPdesk incident’s creation date. |
| TOPdesk.Incident.Modifier.Id | String | TOPdesk incident’s modifier ID. |
| TOPdesk.Incident.Modifier.Name | String | TOPdesk incident’s modifier name. |
| TOPdesk.Incident.ModificationDate | Date | TOPdesk incident’s modification date. |
| TOPdesk.Incident.MajorCall | Boolean | TOPdesk incident’s major call. |
| TOPdesk.Incident.MajorCallObject.Name | String | TOPdesk incident’s Major call object name. |
| TOPdesk.Incident.MajorCallObject.Id | String | TOPdesk incident’s major call object ID. |
| TOPdesk.Incident.MajorCallObject.Status | Number | TOPdesk incident’s major call object status. |
| TOPdesk.Incident.MajorCallObject.MajorIncident | Boolean | TOPdesk incident’s major call object major incident. |
| TOPdesk.Incident.PublishToSsd | Boolean | TOPdesk incident’s publish to SSD. |
| TOPdesk.Incident.Monitored | Boolean | TOPdesk incident’s monitored. |
| TOPdesk.Incident.ExpectedTimeSpent | Number | TOPdesk incident’s expected time spent. |
| TOPdesk.Incident.MainIncident | Unknown | TOPdesk incident’s main incident. |
| TOPdesk.Incident.PartialIncidents.Link | String | TOPdesk incident’s partial incidents link. |
| TOPdesk.Incident.OptionalFields1.Boolean1 | Boolean | TOPdesk incident’s optional fields1 boolean1. |
| TOPdesk.Incident.OptionalFields1.Boolean2 | Boolean | TOPdesk incident’s optional fields1 boolean2. |
| TOPdesk.Incident.OptionalFields1.Boolean3 | Boolean | TOPdesk incident’s optional fields1 boolean3. |
| TOPdesk.Incident.OptionalFields1.Boolean4 | Boolean | TOPdesk incident’s optional fields1 boolean4. |
| TOPdesk.Incident.OptionalFields1.Boolean5 | Boolean | TOPdesk incident’s optional fields1 boolean5. |
| TOPdesk.Incident.OptionalFields1.Number1 | Number | TOPdesk incident’s optional fields1 number1. |
| TOPdesk.Incident.OptionalFields1.Number2 | Number | TOPdesk incident’s optional fields1 number2. |
| TOPdesk.Incident.OptionalFields1.Number3 | Number | TOPdesk incident’s optional fields1 number3. |
| TOPdesk.Incident.OptionalFields1.Number4 | Number | TOPdesk incident’s optional fields1 number4. |
| TOPdesk.Incident.OptionalFields1.Number5 | Number | TOPdesk incident’s optional fields1 number5. |
| TOPdesk.Incident.OptionalFields1.Date1 | Date | TOPdesk incident’s optional fields1 date1. |
| TOPdesk.Incident.OptionalFields1.Date2 | Date | TOPdesk incident’s optional fields1 date2. |
| TOPdesk.Incident.OptionalFields1.Date3 | Date | TOPdesk incident’s optional fields1 date3. |
| TOPdesk.Incident.OptionalFields1.Date4 | Date | TOPdesk incident’s optional fields1 date4. |
| TOPdesk.Incident.OptionalFields1.Date5 | Date | TOPdesk incident’s optional fields1 date5. |
| TOPdesk.Incident.OptionalFields1.Text1 | String | TOPdesk incident’s optional fields1 text1. |
| TOPdesk.Incident.OptionalFields1.Text2 | String | TOPdesk incident’s optional fields1 text2. |
| TOPdesk.Incident.OptionalFields1.Text3 | String | TOPdesk incident’s optional fields1 text3. |
| TOPdesk.Incident.OptionalFields1.Text4 | String | TOPdesk incident’s optional fields1 text4. |
| TOPdesk.Incident.OptionalFields1.Text5 | String | TOPdesk incident’s optional fields1 text5. |
| TOPdesk.Incident.OptionalFields1.Memo1 | String | TOPdesk incident’s optional fields1 memo1. |
| TOPdesk.Incident.OptionalFields1.Memo2 | String | TOPdesk incident’s optional fields1 memo2. |
| TOPdesk.Incident.OptionalFields1.Memo3 | String | TOPdesk incident’s optional fields1 memo3. |
| TOPdesk.Incident.OptionalFields1.Memo4 | String | TOPdesk incident’s optional fields1 memo4. |
| TOPdesk.Incident.OptionalFields1.Memo5 | String | TOPdesk incident’s optional fields1 memo5. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Id | String | TOPdesk incident’s optional fields1 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Name | String | TOPdesk incident’s optional fields1 searchlist1 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Id | String | TOPdesk incident’s optional fields1 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Name | String | TOPdesk incident’s optional fields1 searchlist2 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Id | String | TOPdesk incident’s optional fields1 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Name | String | TOPdesk incident’s optional fields1 searchlist3 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Id | String | TOPdesk incident’s optional fields1 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Name | String | TOPdesk incident’s optional fields1 searchlist4 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Id | String | TOPdesk incident’s optional fields1 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Name | String | TOPdesk incident’s optional fields1 searchlist5 name. |
| TOPdesk.Incident.OptionalFields2.Boolean1 | Boolean | TOPdesk incident’s optional fields2 boolean1. |
| TOPdesk.Incident.OptionalFields2.Boolean2 | Boolean | TOPdesk incident’s optional fields2 boolean2. |
| TOPdesk.Incident.OptionalFields2.Boolean3 | Boolean | TOPdesk incident’s optional fields2 boolean3. |
| TOPdesk.Incident.OptionalFields2.Boolean4 | Boolean | TOPdesk incident’s optional fields2 boolean4. |
| TOPdesk.Incident.OptionalFields2.Boolean5 | Boolean | TOPdesk incident’s optional fields2 boolean5. |
| TOPdesk.Incident.OptionalFields2.Number1 | Number | TOPdesk incident’s optional fields2 number1. |
| TOPdesk.Incident.OptionalFields2.Number2 | Number | TOPdesk incident’s optional fields2 number2. |
| TOPdesk.Incident.OptionalFields2.Number3 | Number | TOPdesk incident’s optional fields2 number3. |
| TOPdesk.Incident.OptionalFields2.Number4 | Number | TOPdesk incident’s optional fields2 number4. |
| TOPdesk.Incident.OptionalFields2.Number5 | Number | TOPdesk incident’s optional fields2 number5. |
| TOPdesk.Incident.OptionalFields2.Date1 | Date | TOPdesk incident’s optional fields2 date1. |
| TOPdesk.Incident.OptionalFields2.Date2 | Date | TOPdesk incident’s optional fields2 date2. |
| TOPdesk.Incident.OptionalFields2.Date3 | Date | TOPdesk incident’s optional fields2 date3. |
| TOPdesk.Incident.OptionalFields2.Date4 | Date | TOPdesk incident’s optional fields2 date4. |
| TOPdesk.Incident.OptionalFields2.Date5 | Date | TOPdesk incident’s optional fields2 date5. |
| TOPdesk.Incident.OptionalFields2.Text1 | String | TOPdesk incident’s optional fields2 text1. |
| TOPdesk.Incident.OptionalFields2.Text2 | String | TOPdesk incident’s optional fields2 text2. |
| TOPdesk.Incident.OptionalFields2.Text3 | String | TOPdesk incident’s Optional fields2.text3 |
| TOPdesk.Incident.OptionalFields2.Text4 | String | TOPdesk incident’s optional fields2 text4. |
| TOPdesk.Incident.OptionalFields2.Text5 | String | TOPdesk incident’s optional fields2 text5. |
| TOPdesk.Incident.OptionalFields2.Memo1 | String | TOPdesk incident’s optional fields2 memo1. |
| TOPdesk.Incident.OptionalFields2.Memo2 | String | TOPdesk incident’s optional fields2 memo2. |
| TOPdesk.Incident.OptionalFields2.Memo3 | String | TOPdesk incident’s optional fields2 memo3. |
| TOPdesk.Incident.OptionalFields2.Memo4 | String | TOPdesk incident’s optional fields2 memo4. |
| TOPdesk.Incident.OptionalFields2.Memo5 | String | TOPdesk incident’s optional fields2 memo5. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Id | String | TOPdesk incident’s optional fields2 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Name | String | TOPdesk incident’s optional fields2 searchlist1 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Id | String | TOPdesk incident’s optional fields2 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Name | String | TOPdesk incident’s optional fields2 searchlist2 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Id | String | TOPdesk incident’s optional fields2 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Name | String | TOPdesk incident’s optional fields2 searchlist3 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Id | String | TOPdesk incident’s optional fields2 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Name | String | TOPdesk incident’s optional fields2 searchlist4 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Id | String | TOPdesk incident’s optional fields2 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Name | String | TOPdesk incident’s optional fields2 searchlist5 name. |
| TOPdesk.Incident.ExternalLinks.Id | String | TOPdesk incident’s external links ID. |
| TOPdesk.Incident.ExternalLinks.Type | String | TOPdesk incident’s external links type. |
| TOPdesk.Incident.ExternalLinks.Date | Date | TOPdesk incident’s external links date. |
Command Example
!topdesk-incident-update description=some-updated-description number=XSOAR-1337
Context Example
{
"TOPdesk": {
"Incident": [
{
"Action": "/tas/api/incidents/id/some-id/actions",
"Attachments": "/tas/api/incidents/id/some-id/attachments",
"BriefDescription": "some-updated-description",
"CallDate": "2021-03-24T08:15:13.867+0000",
"Caller": {
"DynamicName": "some-caller"
},
"Closed": false,
"Completed": false,
"CreationDate": "2021-03-24T08:15:13.867+0000",
"Creator": {
"Id": "some-id-1",
"Name": "Xsoar - Operator"
},
"ExternalNumber": "",
"Id": "some-id",
"MajorCall": false,
"ModificationDate": "2021-03-24T08:15:13.000+0000",
"Modifier": {
"Id": "some-id-1",
"Name": "Xsoar - Operator"
},
"Monitored": false,
"Number": "XSOAR-1337",
"OnHold": false,
"OptionalFields1": {
"Searchlist1": {
"Id": "some-id-3",
"Name": "Some Search Name"
},
"Searchlist3": {
"Id": "some-id-4",
"Name": "Some Other Search Name"
},
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"OptionalFields2": {
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"ProcessingStatus": {
"Id": "some-processing-status-id",
"Name": "Logged"
},
"PublishToSsd": false,
"Requests": "/tas/api/incidents/id/some-id/requests",
"Responded": false,
"Status": "firstLine"
}
]
}
}
Human Readable Output
TOPdesk incidents
Id Number Line CallerName Status some-id XSOAR-1337 firstLine some-caller Logged
topdesk-incident-escalate
Escalate an incident in TOPdesk.
Permissions
Operator: With 1st line incident write permission and write permission for escalating incidents; Category/Branch/Operator filters apply
Person: No access
Base Command
topdesk-incident-escalate
Input
| Argument Name | Description | Required |
|---|---|---|
| id | The incident ID. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
| number. | The incident number. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
| escalate_reason_id | The escalation reason ID. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Incident.Id | String | TOPdesk incident’s ID. |
| TOPdesk.Incident.Status | String | TOPdesk incident’s status. |
| TOPdesk.Incident.Number | String | TOPdesk incident’s number. |
| TOPdesk.Incident.Request | String | TOPdesk incident’s request. |
| TOPdesk.Incident.Requests | String | TOPdesk incident’s requests. |
| TOPdesk.Incident.Action | String | TOPdesk incident’s action. |
| TOPdesk.Incident.Attachments | String | TOPdesk incident’s attachments. |
| TOPdesk.Incident.Caller.Id | String | TOPdesk incident’s caller ID. |
| TOPdesk.Incident.Caller.DynamicName | String | TOPdesk incident’s caller dynamic name. |
| TOPdesk.Incident.Caller.Branch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.Caller.Branch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.Caller.Branch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.Caller.Branch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.Caller.Branch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.Caller.Branch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.CallerBranch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.CallerBranch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.CallerBranch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.CallerBranch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.CallerBranch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.CallerBranch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.BranchExtraFieldA | Unknown | TOPdesk incident’s branch extra field A. |
| TOPdesk.Incident.BranchExtraFieldB | Unknown | TOPdesk incident’s branch extra field B. |
| TOPdesk.Incident.BriefDescription | String | TOPdesk incident’s brief description. |
| TOPdesk.Incident.ExternalNumber | String | TOPdesk incident’s external number. |
| TOPdesk.Incident.Category.Id | String | TOPdesk incident’s category ID. |
| TOPdesk.Incident.Category.Name | String | TOPdesk incident’s category name. |
| TOPdesk.Incident.Subcategory.Id | String | TOPdesk incident’s subcategory ID. |
| TOPdesk.Incident.Subcategory.Name | String | TOPdesk incident’s subcategory name. |
| TOPdesk.Incident.CallType.Id | String | TOPdesk incident’s call type ID. |
| TOPdesk.Incident.CallType.Name | String | TOPdesk incident’s call type name. |
| TOPdesk.Incident.EntryType.Id | String | TOPdesk incident’s entry type ID. |
| TOPdesk.Incident.EntryType.Name | String | TOPdesk incident’s entry type name. |
| TOPdesk.Incident.Object.Id | String | TOPdesk incident’s object ID. |
| TOPdesk.Incident.Object.Name | String | TOPdesk incident’s object name. |
| TOPdesk.Incident.Object.Type.Id | String | TOPdesk incident’s object type ID. |
| TOPdesk.Incident.Object.Type.Name | String | TOPdesk incident’s object type name. |
| TOPdesk.Incident.Object.Make.Id | String | TOPdesk incident’s object make ID. |
| TOPdesk.Incident.Object.Make.Name | String | TOPdesk incident’s object make name. |
| TOPdesk.Incident.Object.Model.Id | String | TOPdesk incident’s object model ID. |
| TOPdesk.Incident.Object.Model.Name | String | TOPdesk incident’s object model name. |
| TOPdesk.Incident.Object.Branch.Id | String | TOPdesk incident’s object branch ID. |
| TOPdesk.Incident.Object.Branch.Name | String | TOPdesk incident’s object branch name. |
| TOPdesk.Incident.Object.Location.Id | String | TOPdesk incident’s object location ID. |
| TOPdesk.Incident.Object.Location.Name | String | TOPdesk incident’s object location name. |
| TOPdesk.Incident.Object.Specification | String | TOPdesk incident’s object specification. |
| TOPdesk.Incident.Object.SerialNumber | String | TOPdesk incident’s object serial number. |
| TOPdesk.Incident.Asset.Id | String | TOPdesk incident’s asset ID. |
| TOPdesk.Incident.Branch.ClientReferenceNumber | String | TOPdesk incident’s branch client reference number. |
| TOPdesk.Incident.Branch.TimeZone | String | TOPdesk incident’s branch timezone. |
| TOPdesk.Incident.Branch.ExtraA | Unknown | TOPdesk incident’s branch extra A. |
| TOPdesk.Incident.Branch.ExtraB | Unknown | TOPdesk incident’s branch extra B. |
| TOPdesk.Incident.Branch.Id | String | TOPdesk incident’s branch ID. |
| TOPdesk.Incident.Branch.Name | String | TOPdesk incident’s branch name. |
| TOPdesk.Incident.Location.Id | String | TOPdesk incident’s location ID. |
| TOPdesk.Incident.Location.Branch.ClientReferenceNumber | String | TOPdesk incident’s location branch client reference number. |
| TOPdesk.Incident.Location.Branch.TimeZone | String | TOPdesk incident’s location branch timezone. |
| TOPdesk.Incident.Location.Branch.ExtraA | Unknown | TOPdesk incident’s location branch extra A. |
| TOPdesk.Incident.Location.Branch.ExtraB | Unknown | TOPdesk incident’s location branch extra B. |
| TOPdesk.Incident.Location.Branch.Id | String | TOPdesk incident’s location branch ID. |
| TOPdesk.Incident.Location.Branch.Name | String | TOPdesk incident’s location branch name. |
| TOPdesk.Incident.Location.Name | String | TOPdesk incident’s location name. |
| TOPdesk.Incident.Location.Room | String | TOPdesk incident’s location room. |
| TOPdesk.Incident.Impact.Id | String | TOPdesk incident’s impact ID. |
| TOPdesk.Incident.Impact.Name | String | TOPdesk incident’s impact name. |
| TOPdesk.Incident.Urgency.Id | String | TOPdesk incident’s urgency ID. |
| TOPdesk.Incident.Urgency.Name | String | TOPdesk incident’s urgency name. |
| TOPdesk.Incident.Priority.Id | String | TOPdesk incident’s priority ID. |
| TOPdesk.Incident.Priority.Name | String | TOPdesk incident’s priority name. |
| TOPdesk.Incident.Duration.Id | String | TOPdesk incident’s duration ID. |
| TOPdesk.Incident.Duration.Name | String | TOPdesk incident’s duration name. |
| TOPdesk.Incident.TargetDate | Date | TOPdesk incident’s target date. |
| TOPdesk.Incident.Sla.Id | String | TOPdesk incident’s sla ID. |
| TOPdesk.Incident.OnHold | Boolean | TOPdesk incident’s on hold. |
| TOPdesk.Incident.OnHoldDate | Unknown | TOPdesk incident’s on hold date. |
| TOPdesk.Incident.OnHoldDuration | Number | TOPdesk incident’s on hold duration. |
| TOPdesk.Incident.FeedbackMessage | Unknown | TOPdesk incident’s feedback message. |
| TOPdesk.Incident.FeedbackRating | Unknown | TOPdesk incident’s feedback rating. |
| TOPdesk.Incident.Operator.Id | String | TOPdesk incident’s operator ID. |
| TOPdesk.Incident.Operator.Status | String | TOPdesk incident’s operator status. |
| TOPdesk.Incident.Operator.Name | String | TOPdesk incident’s operator name. |
| TOPdesk.Incident.OperatorGroup.Id | String | TOPdesk incident’s operator group ID. |
| TOPdesk.Incident.OperatorGroup.Name | String | TOPdesk incident’s operator group name. |
| TOPdesk.Incident.Supplier.Id | String | TOPdesk incident’s supplier ID. |
| TOPdesk.Incident.Supplier.Name | String | TOPdesk incident’s supplier name. |
| TOPdesk.Incident.Supplier.ForFirstLine | Boolean | TOPdesk incident’s supplier for first line. |
| TOPdesk.Incident.Supplier.ForSecondLine | Boolean | TOPdesk incident’s supplier for second line. |
| TOPdesk.Incident.ProcessingStatus.Id | String | TOPdesk incident’s processing status ID. |
| TOPdesk.Incident.ProcessingStatus.Name | String | TOPdesk incident’s processing status name. |
| TOPdesk.Incident.Completed | Boolean | TOPdesk incident’s completed. |
| TOPdesk.Incident.CompletedDate | Unknown | TOPdesk incident’s completed date. |
| TOPdesk.Incident.Closed | Boolean | TOPdesk incident’s closed. |
| TOPdesk.Incident.ClosedDate | Unknown | TOPdesk incident’s closed date. |
| TOPdesk.Incident.ClosureCode.Id | String | TOPdesk incident’s closure code ID. |
| TOPdesk.Incident.ClosureCode.Name | String | TOPdesk incident’s closure code name. |
| TOPdesk.Incident.TimeSpent | Number | TOPdesk incident’s time spent. |
| TOPdesk.Incident.TimeSpentFirstLine | Number | TOPdesk incident’s time spent first line |
| TOPdesk.Incident.TimeSpentSecondLineAndPartials | Number | TOPdesk incident’s time spent second line and partials. |
| TOPdesk.Incident.Costs | Number | TOPdesk incident’s costs. |
| TOPdesk.Incident.EscalationStatus | String | TOPdesk incident’s escalation status. |
| TOPdesk.Incident.EscalationReason.Id | String | TOPdesk incident’s escalation reason ID. |
| TOPdesk.Incident.EscalationReason.Name | String | TOPdesk incident’s escalation reason name. |
| TOPdesk.Incident.EscalationOperator.Id | String | TOPdesk incident’s escalation operator ID. |
| TOPdesk.Incident.EscalationOperator.Name | String | TOPdesk incident’s escalation operator name. |
| TOPdesk.Incident.CallDate | Date | TOPdesk incident’s call date. |
| TOPdesk.Incident.Creator.Id | String | TOPdesk incident’s creator ID. |
| TOPdesk.Incident.Creator.Name | String | TOPdesk incident’s creator name. |
| TOPdesk.Incident.CreationDate | Date | TOPdesk incident’s creation date. |
| TOPdesk.Incident.Modifier.Id | String | TOPdesk incident’s modifier ID. |
| TOPdesk.Incident.Modifier.Name | String | TOPdesk incident’s modifier name. |
| TOPdesk.Incident.ModificationDate | Date | TOPdesk incident’s modification date. |
| TOPdesk.Incident.MajorCall | Boolean | TOPdesk incident’s major call. |
| TOPdesk.Incident.MajorCallObject.Name | String | TOPdesk incident’s Major call object name. |
| TOPdesk.Incident.MajorCallObject.Id | String | TOPdesk incident’s major call object ID. |
| TOPdesk.Incident.MajorCallObject.Status | Number | TOPdesk incident’s major call object status. |
| TOPdesk.Incident.MajorCallObject.MajorIncident | Boolean | TOPdesk incident’s major call object major incident. |
| TOPdesk.Incident.PublishToSsd | Boolean | TOPdesk incident’s publish to SSD. |
| TOPdesk.Incident.Monitored | Boolean | TOPdesk incident’s monitored. |
| TOPdesk.Incident.ExpectedTimeSpent | Number | TOPdesk incident’s expected time spent. |
| TOPdesk.Incident.MainIncident | Unknown | TOPdesk incident’s main incident. |
| TOPdesk.Incident.PartialIncidents.Link | String | TOPdesk incident’s partial incidents link. |
| TOPdesk.Incident.OptionalFields1.Boolean1 | Boolean | TOPdesk incident’s optional fields1 boolean1. |
| TOPdesk.Incident.OptionalFields1.Boolean2 | Boolean | TOPdesk incident’s optional fields1 boolean2. |
| TOPdesk.Incident.OptionalFields1.Boolean3 | Boolean | TOPdesk incident’s optional fields1 boolean3. |
| TOPdesk.Incident.OptionalFields1.Boolean4 | Boolean | TOPdesk incident’s optional fields1 boolean4. |
| TOPdesk.Incident.OptionalFields1.Boolean5 | Boolean | TOPdesk incident’s optional fields1 boolean5. |
| TOPdesk.Incident.OptionalFields1.Number1 | Number | TOPdesk incident’s optional fields1 number1. |
| TOPdesk.Incident.OptionalFields1.Number2 | Number | TOPdesk incident’s optional fields1 number2. |
| TOPdesk.Incident.OptionalFields1.Number3 | Number | TOPdesk incident’s optional fields1 number3. |
| TOPdesk.Incident.OptionalFields1.Number4 | Number | TOPdesk incident’s optional fields1 number4. |
| TOPdesk.Incident.OptionalFields1.Number5 | Number | TOPdesk incident’s optional fields1 number5. |
| TOPdesk.Incident.OptionalFields1.Date1 | Date | TOPdesk incident’s optional fields1 date1. |
| TOPdesk.Incident.OptionalFields1.Date2 | Date | TOPdesk incident’s optional fields1 date2. |
| TOPdesk.Incident.OptionalFields1.Date3 | Date | TOPdesk incident’s optional fields1 date3. |
| TOPdesk.Incident.OptionalFields1.Date4 | Date | TOPdesk incident’s optional fields1 date4. |
| TOPdesk.Incident.OptionalFields1.Date5 | Date | TOPdesk incident’s optional fields1 date5. |
| TOPdesk.Incident.OptionalFields1.Text1 | String | TOPdesk incident’s optional fields1 text1. |
| TOPdesk.Incident.OptionalFields1.Text2 | String | TOPdesk incident’s optional fields1 text2. |
| TOPdesk.Incident.OptionalFields1.Text3 | String | TOPdesk incident’s optional fields1 text3. |
| TOPdesk.Incident.OptionalFields1.Text4 | String | TOPdesk incident’s optional fields1 text4. |
| TOPdesk.Incident.OptionalFields1.Text5 | String | TOPdesk incident’s optional fields1 text5. |
| TOPdesk.Incident.OptionalFields1.Memo1 | String | TOPdesk incident’s optional fields1 memo1. |
| TOPdesk.Incident.OptionalFields1.Memo2 | String | TOPdesk incident’s optional fields1 memo2. |
| TOPdesk.Incident.OptionalFields1.Memo3 | String | TOPdesk incident’s optional fields1 memo3. |
| TOPdesk.Incident.OptionalFields1.Memo4 | String | TOPdesk incident’s optional fields1 memo4. |
| TOPdesk.Incident.OptionalFields1.Memo5 | String | TOPdesk incident’s optional fields1 memo5. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Id | String | TOPdesk incident’s optional fields1 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Name | String | TOPdesk incident’s optional fields1 searchlist1 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Id | String | TOPdesk incident’s optional fields1 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Name | String | TOPdesk incident’s optional fields1 searchlist2 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Id | String | TOPdesk incident’s optional fields1 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Name | String | TOPdesk incident’s optional fields1 searchlist3 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Id | String | TOPdesk incident’s optional fields1 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Name | String | TOPdesk incident’s optional fields1 searchlist4 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Id | String | TOPdesk incident’s optional fields1 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Name | String | TOPdesk incident’s optional fields1 searchlist5 name. |
| TOPdesk.Incident.OptionalFields2.Boolean1 | Boolean | TOPdesk incident’s optional fields2 boolean1. |
| TOPdesk.Incident.OptionalFields2.Boolean2 | Boolean | TOPdesk incident’s optional fields2 boolean2. |
| TOPdesk.Incident.OptionalFields2.Boolean3 | Boolean | TOPdesk incident’s optional fields2 boolean3. |
| TOPdesk.Incident.OptionalFields2.Boolean4 | Boolean | TOPdesk incident’s optional fields2 boolean4. |
| TOPdesk.Incident.OptionalFields2.Boolean5 | Boolean | TOPdesk incident’s optional fields2 boolean5. |
| TOPdesk.Incident.OptionalFields2.Number1 | Number | TOPdesk incident’s optional fields2 number1. |
| TOPdesk.Incident.OptionalFields2.Number2 | Number | TOPdesk incident’s optional fields2 number2. |
| TOPdesk.Incident.OptionalFields2.Number3 | Number | TOPdesk incident’s optional fields2 number3. |
| TOPdesk.Incident.OptionalFields2.Number4 | Number | TOPdesk incident’s optional fields2 number4. |
| TOPdesk.Incident.OptionalFields2.Number5 | Number | TOPdesk incident’s optional fields2 number5. |
| TOPdesk.Incident.OptionalFields2.Date1 | Date | TOPdesk incident’s optional fields2 date1. |
| TOPdesk.Incident.OptionalFields2.Date2 | Date | TOPdesk incident’s optional fields2 date2. |
| TOPdesk.Incident.OptionalFields2.Date3 | Date | TOPdesk incident’s optional fields2 date3. |
| TOPdesk.Incident.OptionalFields2.Date4 | Date | TOPdesk incident’s optional fields2 date4. |
| TOPdesk.Incident.OptionalFields2.Date5 | Date | TOPdesk incident’s optional fields2 date5. |
| TOPdesk.Incident.OptionalFields2.Text1 | String | TOPdesk incident’s optional fields2 text1. |
| TOPdesk.Incident.OptionalFields2.Text2 | String | TOPdesk incident’s optional fields2 text2. |
| TOPdesk.Incident.OptionalFields2.Text3 | String | TOPdesk incident’s optional fields2.text3. |
| TOPdesk.Incident.OptionalFields2.Text4 | String | TOPdesk incident’s optional fields2 text4. |
| TOPdesk.Incident.OptionalFields2.Text5 | String | TOPdesk incident’s optional fields2 text5. |
| TOPdesk.Incident.OptionalFields2.Memo1 | String | TOPdesk incident’s optional fields2 memo1. |
| TOPdesk.Incident.OptionalFields2.Memo2 | String | TOPdesk incident’s optional fields2 memo2. |
| TOPdesk.Incident.OptionalFields2.Memo3 | String | TOPdesk incident’s optional fields2 memo3. |
| TOPdesk.Incident.OptionalFields2.Memo4 | String | TOPdesk incident’s optional fields2 memo4. |
| TOPdesk.Incident.OptionalFields2.Memo5 | String | TOPdesk incident’s optional fields2 memo5. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Id | String | TOPdesk incident’s optional fields2 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Name | String | TOPdesk incident’s optional fields2 searchlist1 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Id | String | TOPdesk incident’s optional fields2 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Name | String | TOPdesk incident’s optional fields2 searchlist2 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Id | String | TOPdesk incident’s optional fields2 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Name | String | TOPdesk incident’s optional fields2 searchlist3 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Id | String | TOPdesk incident’s optional fields2 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Name | String | TOPdesk incident’s optional fields2 searchlist4 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Id | String | TOPdesk incident’s optional fields2 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Name | String | TOPdesk incident’s optional fields2 searchlist5 name. |
| TOPdesk.Incident.ExternalLinks.Id | String | TOPdesk incident’s external links ID. |
| TOPdesk.Incident.ExternalLinks.Type | String | TOPdesk incident’s external links type. |
| TOPdesk.Incident.ExternalLinks.Date | Date | TOPdesk incident’s external links date. |
Command Example
!topdesk-incident-escalate number=XSOAR-1337 escalate_reason_id=some-escalation-id-1
Context Example
{
"TOPdesk": {
"Incident": [
{
"Action": "/tas/api/incidents/id/some-id/actions",
"Attachments": "/tas/api/incidents/id/some-id/attachments",
"BriefDescription": "some-updated-description",
"CallDate": "2021-03-24T08:15:13.867+0000",
"Caller": {
"DynamicName": "some-caller"
},
"Closed": false,
"Completed": false,
"CreationDate": "2021-03-24T08:15:13.867+0000",
"Creator": {
"Id": "some-id-1",
"Name": "Xsoar - Operator"
},
"ExternalNumber": "",
"Id": "some-id",
"MajorCall": false,
"ModificationDate": "2021-03-24T08:15:13.000+0000",
"Modifier": {
"Id": "some-id-1",
"Name": "Xsoar - Operator"
},
"Monitored": false,
"Number": "XSOAR-1337",
"OnHold": false,
"OptionalFields1": {
"Searchlist1": {
"Id": "some-id-3",
"Name": "Some Search Name"
},
"Searchlist3": {
"Id": "some-id-4",
"Name": "Some Other Search Name"
},
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"OptionalFields2": {
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"ProcessingStatus": {
"Id": "some-processing-status-id",
"Name": "Logged"
},
"PublishToSsd": false,
"Requests": "/tas/api/incidents/id/some-id/requests",
"Responded": false,
"Status": "secondLine"
}
]
}
}
Human Readable Output
TOPdesk incidents
Id Number Line CallerName Status some-id XSOAR-1337 secondLine some-caller Logged
topdesk-incident-deescalate
Deescalate an incident in TOPdesk.
Permissions
Operator: With 1st and 2nd line incident write permission; Category/Branch/Operator filters apply; Feature must be enabled
Person: No access
Base Command
topdesk-incident-deescalate
Input
| Argument Name | Description | Required |
|---|---|---|
| id | The incident ID. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
| number. | The incident number. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
| deescalate_reason_id | The deescalation reason ID. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Incident.Id | String | TOPdesk incident’s ID. |
| TOPdesk.Incident.Status | String | TOPdesk incident’s status. |
| TOPdesk.Incident.Number | String | TOPdesk incident’s number. |
| TOPdesk.Incident.Request | String | TOPdesk incident’s request. |
| TOPdesk.Incident.Requests | String | TOPdesk incident’s requests. |
| TOPdesk.Incident.Action | String | TOPdesk incident’s action. |
| TOPdesk.Incident.Attachments | String | TOPdesk incident’s attachments. |
| TOPdesk.Incident.Caller.Id | String | TOPdesk incident’s caller ID. |
| TOPdesk.Incident.Caller.DynamicName | String | TOPdesk incident’s caller dynamic name. |
| TOPdesk.Incident.Caller.Branch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.Caller.Branch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.Caller.Branch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.Caller.Branch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.Caller.Branch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.Caller.Branch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.CallerBranch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.CallerBranch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.CallerBranch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.CallerBranch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.CallerBranch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.CallerBranch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.BranchExtraFieldA | Unknown | TOPdesk incident’s branch extra field A. |
| TOPdesk.Incident.BranchExtraFieldB | Unknown | TOPdesk incident’s branch extra field B. |
| TOPdesk.Incident.BriefDescription | String | TOPdesk incident’s brief description. |
| TOPdesk.Incident.ExternalNumber | String | TOPdesk incident’s external number. |
| TOPdesk.Incident.Category.Id | String | TOPdesk incident’s category ID. |
| TOPdesk.Incident.Category.Name | String | TOPdesk incident’s category name. |
| TOPdesk.Incident.Subcategory.Id | String | TOPdesk incident’s subcategory ID. |
| TOPdesk.Incident.Subcategory.Name | String | TOPdesk incident’s subcategory name. |
| TOPdesk.Incident.CallType.Id | String | TOPdesk incident’s call type ID. |
| TOPdesk.Incident.CallType.Name | String | TOPdesk incident’s call type name. |
| TOPdesk.Incident.EntryType.Id | String | TOPdesk incident’s entry type ID. |
| TOPdesk.Incident.EntryType.Name | String | TOPdesk incident’s entry type name. |
| TOPdesk.Incident.Object.Id | String | TOPdesk incident’s object ID. |
| TOPdesk.Incident.Object.Name | String | TOPdesk incident’s object name. |
| TOPdesk.Incident.Object.Type.Id | String | TOPdesk incident’s object type ID. |
| TOPdesk.Incident.Object.Type.Name | String | TOPdesk incident’s object type name. |
| TOPdesk.Incident.Object.Make.Id | String | TOPdesk incident’s object make ID. |
| TOPdesk.Incident.Object.Make.Name | String | TOPdesk incident’s object make name. |
| TOPdesk.Incident.Object.Model.Id | String | TOPdesk incident’s object model ID. |
| TOPdesk.Incident.Object.Model.Name | String | TOPdesk incident’s object model name. |
| TOPdesk.Incident.Object.Branch.Id | String | TOPdesk incident’s object branch ID. |
| TOPdesk.Incident.Object.Branch.Name | String | TOPdesk incident’s object branch name. |
| TOPdesk.Incident.Object.Location.Id | String | TOPdesk incident’s object location ID. |
| TOPdesk.Incident.Object.Location.Name | String | TOPdesk incident’s object location name. |
| TOPdesk.Incident.Object.Specification | String | TOPdesk incident’s object specification. |
| TOPdesk.Incident.Object.SerialNumber | String | TOPdesk incident’s object serial number. |
| TOPdesk.Incident.Asset.Id | String | TOPdesk incident’s asset ID. |
| TOPdesk.Incident.Branch.ClientReferenceNumber | String | TOPdesk incident’s branch client reference number. |
| TOPdesk.Incident.Branch.TimeZone | String | TOPdesk incident’s branch timezone. |
| TOPdesk.Incident.Branch.ExtraA | Unknown | TOPdesk incident’s branch extra A. |
| TOPdesk.Incident.Branch.ExtraB | Unknown | TOPdesk incident’s branch extra B. |
| TOPdesk.Incident.Branch.Id | String | TOPdesk incident’s branch ID. |
| TOPdesk.Incident.Branch.Name | String | TOPdesk incident’s branch name. |
| TOPdesk.Incident.Location.Id | String | TOPdesk incident’s location ID. |
| TOPdesk.Incident.Location.Branch.ClientReferenceNumber | String | TOPdesk incident’s location branch client reference number. |
| TOPdesk.Incident.Location.Branch.TimeZone | String | TOPdesk incident’s location branch timezone. |
| TOPdesk.Incident.Location.Branch.ExtraA | Unknown | TOPdesk incident’s location branch extra A. |
| TOPdesk.Incident.Location.Branch.ExtraB | Unknown | TOPdesk incident’s location branch extra B. |
| TOPdesk.Incident.Location.Branch.Id | String | TOPdesk incident’s location branch ID. |
| TOPdesk.Incident.Location.Branch.Name | String | TOPdesk incident’s location branch name. |
| TOPdesk.Incident.Location.Name | String | TOPdesk incident’s location name. |
| TOPdesk.Incident.Location.Room | String | TOPdesk incident’s location room. |
| TOPdesk.Incident.Impact.Id | String | TOPdesk incident’s impact ID. |
| TOPdesk.Incident.Impact.Name | String | TOPdesk incident’s impact name. |
| TOPdesk.Incident.Urgency.Id | String | TOPdesk incident’s urgency ID. |
| TOPdesk.Incident.Urgency.Name | String | TOPdesk incident’s urgency name. |
| TOPdesk.Incident.Priority.Id | String | TOPdesk incident’s priority ID. |
| TOPdesk.Incident.Priority.Name | String | TOPdesk incident’s priority name. |
| TOPdesk.Incident.Duration.Id | String | TOPdesk incident’s duration ID. |
| TOPdesk.Incident.Duration.Name | String | TOPdesk incident’s duration name. |
| TOPdesk.Incident.TargetDate | Date | TOPdesk incident’s target date. |
| TOPdesk.Incident.Sla.Id | String | TOPdesk incident’s sla ID. |
| TOPdesk.Incident.OnHold | Boolean | TOPdesk incident’s on hold. |
| TOPdesk.Incident.OnHoldDate | Unknown | TOPdesk incident’s on hold date. |
| TOPdesk.Incident.OnHoldDuration | Number | TOPdesk incident’s on hold duration. |
| TOPdesk.Incident.FeedbackMessage | Unknown | TOPdesk incident’s feedback message. |
| TOPdesk.Incident.FeedbackRating | Unknown | TOPdesk incident’s feedback rating. |
| TOPdesk.Incident.Operator.Id | String | TOPdesk incident’s operator ID. |
| TOPdesk.Incident.Operator.Status | String | TOPdesk incident’s operator status. |
| TOPdesk.Incident.Operator.Name | String | TOPdesk incident’s operator name. |
| TOPdesk.Incident.OperatorGroup.Id | String | TOPdesk incident’s operator group ID. |
| TOPdesk.Incident.OperatorGroup.Name | String | TOPdesk incident’s operator group name. |
| TOPdesk.Incident.Supplier.Id | String | TOPdesk incident’s supplier ID. |
| TOPdesk.Incident.Supplier.Name | String | TOPdesk incident’s supplier name. |
| TOPdesk.Incident.Supplier.ForFirstLine | Boolean | TOPdesk incident’s supplier for first line. |
| TOPdesk.Incident.Supplier.ForSecondLine | Boolean | TOPdesk incident’s supplier for second line. |
| TOPdesk.Incident.ProcessingStatus.Id | String | TOPdesk incident’s processing status ID. |
| TOPdesk.Incident.ProcessingStatus.Name | String | TOPdesk incident’s processing status name. |
| TOPdesk.Incident.Completed | Boolean | TOPdesk incident’s completed. |
| TOPdesk.Incident.CompletedDate | Unknown | TOPdesk incident’s completed date. |
| TOPdesk.Incident.Closed | Boolean | TOPdesk incident’s closed. |
| TOPdesk.Incident.ClosedDate | Unknown | TOPdesk incident’s closed date. |
| TOPdesk.Incident.ClosureCode.Id | String | TOPdesk incident’s closure code ID. |
| TOPdesk.Incident.ClosureCode.Name | String | TOPdesk incident’s closure code name. |
| TOPdesk.Incident.TimeSpent | Number | TOPdesk incident’s time spent. |
| TOPdesk.Incident.TimeSpentFirstLine | Number | TOPdesk incident’s time spent first line |
| TOPdesk.Incident.TimeSpentSecondLineAndPartials | Number | TOPdesk incident’s time spent second line and partials. |
| TOPdesk.Incident.Costs | Number | TOPdesk incident’s costs. |
| TOPdesk.Incident.EscalationStatus | String | TOPdesk incident’s escalation status. |
| TOPdesk.Incident.EscalationReason.Id | String | TOPdesk incident’s escalation reason ID. |
| TOPdesk.Incident.EscalationReason.Name | String | TOPdesk incident’s escalation reason name. |
| TOPdesk.Incident.EscalationOperator.Id | String | TOPdesk incident’s escalation operator ID. |
| TOPdesk.Incident.EscalationOperator.Name | String | TOPdesk incident’s escalation operator name. |
| TOPdesk.Incident.CallDate | Date | TOPdesk incident’s call date. |
| TOPdesk.Incident.Creator.Id | String | TOPdesk incident’s creator ID. |
| TOPdesk.Incident.Creator.Name | String | TOPdesk incident’s creator name. |
| TOPdesk.Incident.CreationDate | Date | TOPdesk incident’s creation date. |
| TOPdesk.Incident.Modifier.Id | String | TOPdesk incident’s modifier ID. |
| TOPdesk.Incident.Modifier.Name | String | TOPdesk incident’s modifier name. |
| TOPdesk.Incident.ModificationDate | Date | TOPdesk incident’s modification date. |
| TOPdesk.Incident.MajorCall | Boolean | TOPdesk incident’s major call. |
| TOPdesk.Incident.MajorCallObject.Name | String | TOPdesk incident’s Major call object name. |
| TOPdesk.Incident.MajorCallObject.Id | String | TOPdesk incident’s major call object ID. |
| TOPdesk.Incident.MajorCallObject.Status | Number | TOPdesk incident’s major call object status. |
| TOPdesk.Incident.MajorCallObject.MajorIncident | Boolean | TOPdesk incident’s major call object major incident. |
| TOPdesk.Incident.PublishToSsd | Boolean | TOPdesk incident’s publish to SSD. |
| TOPdesk.Incident.Monitored | Boolean | TOPdesk incident’s monitored. |
| TOPdesk.Incident.ExpectedTimeSpent | Number | TOPdesk incident’s expected time spent. |
| TOPdesk.Incident.MainIncident | Unknown | TOPdesk incident’s main incident. |
| TOPdesk.Incident.PartialIncidents.Link | String | TOPdesk incident’s partial incidents link. |
| TOPdesk.Incident.OptionalFields1.Boolean1 | Boolean | TOPdesk incident’s optional fields1 boolean1. |
| TOPdesk.Incident.OptionalFields1.Boolean2 | Boolean | TOPdesk incident’s optional fields1 boolean2. |
| TOPdesk.Incident.OptionalFields1.Boolean3 | Boolean | TOPdesk incident’s optional fields1 boolean3. |
| TOPdesk.Incident.OptionalFields1.Boolean4 | Boolean | TOPdesk incident’s optional fields1 boolean4. |
| TOPdesk.Incident.OptionalFields1.Boolean5 | Boolean | TOPdesk incident’s optional fields1 boolean5. |
| TOPdesk.Incident.OptionalFields1.Number1 | Number | TOPdesk incident’s optional fields1 number1. |
| TOPdesk.Incident.OptionalFields1.Number2 | Number | TOPdesk incident’s optional fields1 number2. |
| TOPdesk.Incident.OptionalFields1.Number3 | Number | TOPdesk incident’s optional fields1 number3. |
| TOPdesk.Incident.OptionalFields1.Number4 | Number | TOPdesk incident’s optional fields1 number4. |
| TOPdesk.Incident.OptionalFields1.Number5 | Number | TOPdesk incident’s optional fields1 number5. |
| TOPdesk.Incident.OptionalFields1.Date1 | Date | TOPdesk incident’s optional fields1 date1. |
| TOPdesk.Incident.OptionalFields1.Date2 | Date | TOPdesk incident’s optional fields1 date2. |
| TOPdesk.Incident.OptionalFields1.Date3 | Date | TOPdesk incident’s optional fields1 date3. |
| TOPdesk.Incident.OptionalFields1.Date4 | Date | TOPdesk incident’s optional fields1 date4. |
| TOPdesk.Incident.OptionalFields1.Date5 | Date | TOPdesk incident’s optional fields1 date5. |
| TOPdesk.Incident.OptionalFields1.Text1 | String | TOPdesk incident’s optional fields1 text1. |
| TOPdesk.Incident.OptionalFields1.Text2 | String | TOPdesk incident’s optional fields1 text2. |
| TOPdesk.Incident.OptionalFields1.Text3 | String | TOPdesk incident’s optional fields1 text3. |
| TOPdesk.Incident.OptionalFields1.Text4 | String | TOPdesk incident’s optional fields1 text4. |
| TOPdesk.Incident.OptionalFields1.Text5 | String | TOPdesk incident’s optional fields1 text5. |
| TOPdesk.Incident.OptionalFields1.Memo1 | String | TOPdesk incident’s optional fields1 memo1. |
| TOPdesk.Incident.OptionalFields1.Memo2 | String | TOPdesk incident’s optional fields1 memo2. |
| TOPdesk.Incident.OptionalFields1.Memo3 | String | TOPdesk incident’s optional fields1 memo3. |
| TOPdesk.Incident.OptionalFields1.Memo4 | String | TOPdesk incident’s optional fields1 memo4. |
| TOPdesk.Incident.OptionalFields1.Memo5 | String | TOPdesk incident’s optional fields1 memo5. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Id | String | TOPdesk incident’s optional fields1 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Name | String | TOPdesk incident’s optional fields1 searchlist1 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Id | String | TOPdesk incident’s optional fields1 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Name | String | TOPdesk incident’s optional fields1 searchlist2 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Id | String | TOPdesk incident’s optional fields1 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Name | String | TOPdesk incident’s optional fields1 searchlist3 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Id | String | TOPdesk incident’s optional fields1 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Name | String | TOPdesk incident’s optional fields1 searchlist4 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Id | String | TOPdesk incident’s optional fields1 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Name | String | TOPdesk incident’s optional fields1 searchlist5 name. |
| TOPdesk.Incident.OptionalFields2.Boolean1 | Boolean | TOPdesk incident’s optional fields2 boolean1. |
| TOPdesk.Incident.OptionalFields2.Boolean2 | Boolean | TOPdesk incident’s optional fields2 boolean2. |
| TOPdesk.Incident.OptionalFields2.Boolean3 | Boolean | TOPdesk incident’s optional fields2 boolean3. |
| TOPdesk.Incident.OptionalFields2.Boolean4 | Boolean | TOPdesk incident’s optional fields2 boolean4. |
| TOPdesk.Incident.OptionalFields2.Boolean5 | Boolean | TOPdesk incident’s optional fields2 boolean5. |
| TOPdesk.Incident.OptionalFields2.Number1 | Number | TOPdesk incident’s optional fields2 number1. |
| TOPdesk.Incident.OptionalFields2.Number2 | Number | TOPdesk incident’s optional fields2 number2. |
| TOPdesk.Incident.OptionalFields2.Number3 | Number | TOPdesk incident’s optional fields2 number3. |
| TOPdesk.Incident.OptionalFields2.Number4 | Number | TOPdesk incident’s optional fields2 number4. |
| TOPdesk.Incident.OptionalFields2.Number5 | Number | TOPdesk incident’s optional fields2 number5. |
| TOPdesk.Incident.OptionalFields2.Date1 | Date | TOPdesk incident’s optional fields2 date1. |
| TOPdesk.Incident.OptionalFields2.Date2 | Date | TOPdesk incident’s optional fields2 date2. |
| TOPdesk.Incident.OptionalFields2.Date3 | Date | TOPdesk incident’s optional fields2 date3. |
| TOPdesk.Incident.OptionalFields2.Date4 | Date | TOPdesk incident’s optional fields2 date4. |
| TOPdesk.Incident.OptionalFields2.Date5 | Date | TOPdesk incident’s optional fields2 date5. |
| TOPdesk.Incident.OptionalFields2.Text1 | String | TOPdesk incident’s optional fields2 text1. |
| TOPdesk.Incident.OptionalFields2.Text2 | String | TOPdesk incident’s optional fields2 text2. |
| TOPdesk.Incident.OptionalFields2.Text3 | String | TOPdesk incident’s optional fields2.text3. |
| TOPdesk.Incident.OptionalFields2.Text4 | String | TOPdesk incident’s optional fields2 text4. |
| TOPdesk.Incident.OptionalFields2.Text5 | String | TOPdesk incident’s optional fields2 text5. |
| TOPdesk.Incident.OptionalFields2.Memo1 | String | TOPdesk incident’s optional fields2 memo1. |
| TOPdesk.Incident.OptionalFields2.Memo2 | String | TOPdesk incident’s optional fields2 memo2. |
| TOPdesk.Incident.OptionalFields2.Memo3 | String | TOPdesk incident’s optional fields2 memo3. |
| TOPdesk.Incident.OptionalFields2.Memo4 | String | TOPdesk incident’s optional fields2 memo4. |
| TOPdesk.Incident.OptionalFields2.Memo5 | String | TOPdesk incident’s optional fields2 memo5. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Id | String | TOPdesk incident’s optional fields2 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Name | String | TOPdesk incident’s optional fields2 searchlist1 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Id | String | TOPdesk incident’s optional fields2 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Name | String | TOPdesk incident’s optional fields2 searchlist2 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Id | String | TOPdesk incident’s optional fields2 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Name | String | TOPdesk incident’s optional fields2 searchlist3 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Id | String | TOPdesk incident’s optional fields2 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Name | String | TOPdesk incident’s optional fields2 searchlist4 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Id | String | TOPdesk incident’s optional fields2 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Name | String | TOPdesk incident’s optional fields2 searchlist5 name. |
| TOPdesk.Incident.ExternalLinks.Id | String | TOPdesk incident’s external links ID. |
| TOPdesk.Incident.ExternalLinks.Type | String | TOPdesk incident’s external links type. |
| TOPdesk.Incident.ExternalLinks.Date | Date | TOPdesk incident’s external links date. |
Command Example
!topdesk-incident-deescalate number=XSOAR-1337 deescalate_reason_id=some-deescalation-id-1
Context Example
{
"TOPdesk": {
"Incident": [
{
"Action": "/tas/api/incidents/id/some-id/actions",
"Attachments": "/tas/api/incidents/id/some-id/attachments",
"BriefDescription": "some-updated-description",
"CallDate": "2021-03-24T08:15:13.867+0000",
"Caller": {
"DynamicName": "some-caller"
},
"Closed": false,
"Completed": false,
"CreationDate": "2021-03-24T08:15:13.867+0000",
"Creator": {
"Id": "some-id-1",
"Name": "Xsoar - Operator"
},
"ExternalNumber": "",
"Id": "some-id",
"MajorCall": false,
"ModificationDate": "2021-03-24T08:15:13.000+0000",
"Modifier": {
"Id": "some-id-1",
"Name": "Xsoar - Operator"
},
"Monitored": false,
"Number": "XSOAR-1337",
"OnHold": false,
"OptionalFields1": {
"Searchlist1": {
"Id": "some-id-3",
"Name": "Some Search Name"
},
"Searchlist3": {
"Id": "some-id-4",
"Name": "Some Other Search Name"
},
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"OptionalFields2": {
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"ProcessingStatus": {
"Id": "some-processing-status-id",
"Name": "Logged"
},
"PublishToSsd": false,
"Requests": "/tas/api/incidents/id/some-id/requests",
"Responded": false,
"Status": "firstLine"
}
]
}
}
Human Readable Output
TOPdesk incidents
Id Number Line CallerName Status some-id XSOAR-1337 firstLine some-caller Logged
topdesk-incident-archive
Archive an incident in TOPdesk.
Permissions
Operator: Incident write permission and archiving permission; Category/Branch/Operator filters apply;
Person: No access
Base Command
topdesk-incident-archive
Input
| Argument Name | Description | Required |
|---|---|---|
| id | The incident ID. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
| number. | The incident number. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
| archive_reason_id | The archiving reason ID. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Incident.Id | String | TOPdesk incident’s ID. |
| TOPdesk.Incident.Status | String | TOPdesk incident’s status. |
| TOPdesk.Incident.Number | String | TOPdesk incident’s number. |
| TOPdesk.Incident.Request | String | TOPdesk incident’s request. |
| TOPdesk.Incident.Requests | String | TOPdesk incident’s requests. |
| TOPdesk.Incident.Action | String | TOPdesk incident’s action. |
| TOPdesk.Incident.Attachments | String | TOPdesk incident’s attachments. |
| TOPdesk.Incident.Caller.Id | String | TOPdesk incident’s caller ID. |
| TOPdesk.Incident.Caller.DynamicName | String | TOPdesk incident’s caller dynamic name. |
| TOPdesk.Incident.Caller.Branch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.Caller.Branch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.Caller.Branch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.Caller.Branch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.Caller.Branch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.Caller.Branch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.CallerBranch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.CallerBranch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.CallerBranch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.CallerBranch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.CallerBranch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.CallerBranch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.BranchExtraFieldA | Unknown | TOPdesk incident’s branch extra field A. |
| TOPdesk.Incident.BranchExtraFieldB | Unknown | TOPdesk incident’s branch extra field B. |
| TOPdesk.Incident.BriefDescription | String | TOPdesk incident’s brief description. |
| TOPdesk.Incident.ExternalNumber | String | TOPdesk incident’s external number. |
| TOPdesk.Incident.Category.Id | String | TOPdesk incident’s category ID. |
| TOPdesk.Incident.Category.Name | String | TOPdesk incident’s category name. |
| TOPdesk.Incident.Subcategory.Id | String | TOPdesk incident’s subcategory ID. |
| TOPdesk.Incident.Subcategory.Name | String | TOPdesk incident’s subcategory name. |
| TOPdesk.Incident.CallType.Id | String | TOPdesk incident’s call type ID. |
| TOPdesk.Incident.CallType.Name | String | TOPdesk incident’s call type name. |
| TOPdesk.Incident.EntryType.Id | String | TOPdesk incident’s entry type ID. |
| TOPdesk.Incident.EntryType.Name | String | TOPdesk incident’s entry type name. |
| TOPdesk.Incident.Object.Id | String | TOPdesk incident’s object ID. |
| TOPdesk.Incident.Object.Name | String | TOPdesk incident’s object name. |
| TOPdesk.Incident.Object.Type.Id | String | TOPdesk incident’s object type ID. |
| TOPdesk.Incident.Object.Type.Name | String | TOPdesk incident’s object type name. |
| TOPdesk.Incident.Object.Make.Id | String | TOPdesk incident’s object make ID. |
| TOPdesk.Incident.Object.Make.Name | String | TOPdesk incident’s object make name. |
| TOPdesk.Incident.Object.Model.Id | String | TOPdesk incident’s object model ID. |
| TOPdesk.Incident.Object.Model.Name | String | TOPdesk incident’s object model name. |
| TOPdesk.Incident.Object.Branch.Id | String | TOPdesk incident’s object branch ID. |
| TOPdesk.Incident.Object.Branch.Name | String | TOPdesk incident’s object branch name. |
| TOPdesk.Incident.Object.Location.Id | String | TOPdesk incident’s object location ID. |
| TOPdesk.Incident.Object.Location.Name | String | TOPdesk incident’s object location name. |
| TOPdesk.Incident.Object.Specification | String | TOPdesk incident’s object specification. |
| TOPdesk.Incident.Object.SerialNumber | String | TOPdesk incident’s object serial number. |
| TOPdesk.Incident.Asset.Id | String | TOPdesk incident’s asset ID. |
| TOPdesk.Incident.Branch.ClientReferenceNumber | String | TOPdesk incident’s branch client reference number. |
| TOPdesk.Incident.Branch.TimeZone | String | TOPdesk incident’s branch timezone. |
| TOPdesk.Incident.Branch.ExtraA | Unknown | TOPdesk incident’s branch extra A. |
| TOPdesk.Incident.Branch.ExtraB | Unknown | TOPdesk incident’s branch extra B. |
| TOPdesk.Incident.Branch.Id | String | TOPdesk incident’s branch ID. |
| TOPdesk.Incident.Branch.Name | String | TOPdesk incident’s branch name. |
| TOPdesk.Incident.Location.Id | String | TOPdesk incident’s location ID. |
| TOPdesk.Incident.Location.Branch.ClientReferenceNumber | String | TOPdesk incident’s location branch client reference number. |
| TOPdesk.Incident.Location.Branch.TimeZone | String | TOPdesk incident’s location branch timezone. |
| TOPdesk.Incident.Location.Branch.ExtraA | Unknown | TOPdesk incident’s location branch extra A. |
| TOPdesk.Incident.Location.Branch.ExtraB | Unknown | TOPdesk incident’s location branch extra B. |
| TOPdesk.Incident.Location.Branch.Id | String | TOPdesk incident’s location branch ID. |
| TOPdesk.Incident.Location.Branch.Name | String | TOPdesk incident’s location branch name. |
| TOPdesk.Incident.Location.Name | String | TOPdesk incident’s location name. |
| TOPdesk.Incident.Location.Room | String | TOPdesk incident’s location room. |
| TOPdesk.Incident.Impact.Id | String | TOPdesk incident’s impact ID. |
| TOPdesk.Incident.Impact.Name | String | TOPdesk incident’s impact name. |
| TOPdesk.Incident.Urgency.Id | String | TOPdesk incident’s urgency ID. |
| TOPdesk.Incident.Urgency.Name | String | TOPdesk incident’s urgency name. |
| TOPdesk.Incident.Priority.Id | String | TOPdesk incident’s priority ID. |
| TOPdesk.Incident.Priority.Name | String | TOPdesk incident’s priority name. |
| TOPdesk.Incident.Duration.Id | String | TOPdesk incident’s duration ID. |
| TOPdesk.Incident.Duration.Name | String | TOPdesk incident’s duration name. |
| TOPdesk.Incident.TargetDate | Date | TOPdesk incident’s target date. |
| TOPdesk.Incident.Sla.Id | String | TOPdesk incident’s sla ID. |
| TOPdesk.Incident.OnHold | Boolean | TOPdesk incident’s on hold. |
| TOPdesk.Incident.OnHoldDate | Unknown | TOPdesk incident’s on hold date. |
| TOPdesk.Incident.OnHoldDuration | Number | TOPdesk incident’s on hold duration. |
| TOPdesk.Incident.FeedbackMessage | Unknown | TOPdesk incident’s feedback message. |
| TOPdesk.Incident.FeedbackRating | Unknown | TOPdesk incident’s feedback rating. |
| TOPdesk.Incident.Operator.Id | String | TOPdesk incident’s operator ID. |
| TOPdesk.Incident.Operator.Status | String | TOPdesk incident’s operator status. |
| TOPdesk.Incident.Operator.Name | String | TOPdesk incident’s operator name. |
| TOPdesk.Incident.OperatorGroup.Id | String | TOPdesk incident’s operator group ID. |
| TOPdesk.Incident.OperatorGroup.Name | String | TOPdesk incident’s operator group name. |
| TOPdesk.Incident.Supplier.Id | String | TOPdesk incident’s supplier ID. |
| TOPdesk.Incident.Supplier.Name | String | TOPdesk incident’s supplier name. |
| TOPdesk.Incident.Supplier.ForFirstLine | Boolean | TOPdesk incident’s supplier for first line. |
| TOPdesk.Incident.Supplier.ForSecondLine | Boolean | TOPdesk incident’s supplier for second line. |
| TOPdesk.Incident.ProcessingStatus.Id | String | TOPdesk incident’s processing status ID. |
| TOPdesk.Incident.ProcessingStatus.Name | String | TOPdesk incident’s processing status name. |
| TOPdesk.Incident.Completed | Boolean | TOPdesk incident’s completed. |
| TOPdesk.Incident.CompletedDate | Unknown | TOPdesk incident’s completed date. |
| TOPdesk.Incident.Closed | Boolean | TOPdesk incident’s closed. |
| TOPdesk.Incident.ClosedDate | Unknown | TOPdesk incident’s closed date. |
| TOPdesk.Incident.ClosureCode.Id | String | TOPdesk incident’s closure code ID. |
| TOPdesk.Incident.ClosureCode.Name | String | TOPdesk incident’s closure code name. |
| TOPdesk.Incident.TimeSpent | Number | TOPdesk incident’s time spent. |
| TOPdesk.Incident.TimeSpentFirstLine | Number | TOPdesk incident’s time spent first line |
| TOPdesk.Incident.TimeSpentSecondLineAndPartials | Number | TOPdesk incident’s time spent second line and partials. |
| TOPdesk.Incident.Costs | Number | TOPdesk incident’s costs. |
| TOPdesk.Incident.EscalationStatus | String | TOPdesk incident’s escalation status. |
| TOPdesk.Incident.EscalationReason.Id | String | TOPdesk incident’s escalation reason ID. |
| TOPdesk.Incident.EscalationReason.Name | String | TOPdesk incident’s escalation reason name. |
| TOPdesk.Incident.EscalationOperator.Id | String | TOPdesk incident’s escalation operator ID. |
| TOPdesk.Incident.EscalationOperator.Name | String | TOPdesk incident’s escalation operator name. |
| TOPdesk.Incident.CallDate | Date | TOPdesk incident’s call date. |
| TOPdesk.Incident.Creator.Id | String | TOPdesk incident’s creator ID. |
| TOPdesk.Incident.Creator.Name | String | TOPdesk incident’s creator name. |
| TOPdesk.Incident.CreationDate | Date | TOPdesk incident’s creation date. |
| TOPdesk.Incident.Modifier.Id | String | TOPdesk incident’s modifier ID. |
| TOPdesk.Incident.Modifier.Name | String | TOPdesk incident’s modifier name. |
| TOPdesk.Incident.ModificationDate | Date | TOPdesk incident’s modification date. |
| TOPdesk.Incident.MajorCall | Boolean | TOPdesk incident’s major call. |
| TOPdesk.Incident.MajorCallObject.Name | String | TOPdesk incident’s Major call object name. |
| TOPdesk.Incident.MajorCallObject.Id | String | TOPdesk incident’s major call object ID. |
| TOPdesk.Incident.MajorCallObject.Status | Number | TOPdesk incident’s major call object status. |
| TOPdesk.Incident.MajorCallObject.MajorIncident | Boolean | TOPdesk incident’s major call object major incident. |
| TOPdesk.Incident.PublishToSsd | Boolean | TOPdesk incident’s publish to SSD. |
| TOPdesk.Incident.Monitored | Boolean | TOPdesk incident’s monitored. |
| TOPdesk.Incident.ExpectedTimeSpent | Number | TOPdesk incident’s expected time spent. |
| TOPdesk.Incident.MainIncident | Unknown | TOPdesk incident’s main incident. |
| TOPdesk.Incident.PartialIncidents.Link | String | TOPdesk incident’s partial incidents link. |
| TOPdesk.Incident.OptionalFields1.Boolean1 | Boolean | TOPdesk incident’s optional fields1 boolean1. |
| TOPdesk.Incident.OptionalFields1.Boolean2 | Boolean | TOPdesk incident’s optional fields1 boolean2. |
| TOPdesk.Incident.OptionalFields1.Boolean3 | Boolean | TOPdesk incident’s optional fields1 boolean3. |
| TOPdesk.Incident.OptionalFields1.Boolean4 | Boolean | TOPdesk incident’s optional fields1 boolean4. |
| TOPdesk.Incident.OptionalFields1.Boolean5 | Boolean | TOPdesk incident’s optional fields1 boolean5. |
| TOPdesk.Incident.OptionalFields1.Number1 | Number | TOPdesk incident’s optional fields1 number1. |
| TOPdesk.Incident.OptionalFields1.Number2 | Number | TOPdesk incident’s optional fields1 number2. |
| TOPdesk.Incident.OptionalFields1.Number3 | Number | TOPdesk incident’s optional fields1 number3. |
| TOPdesk.Incident.OptionalFields1.Number4 | Number | TOPdesk incident’s optional fields1 number4. |
| TOPdesk.Incident.OptionalFields1.Number5 | Number | TOPdesk incident’s optional fields1 number5. |
| TOPdesk.Incident.OptionalFields1.Date1 | Date | TOPdesk incident’s optional fields1 date1. |
| TOPdesk.Incident.OptionalFields1.Date2 | Date | TOPdesk incident’s optional fields1 date2. |
| TOPdesk.Incident.OptionalFields1.Date3 | Date | TOPdesk incident’s optional fields1 date3. |
| TOPdesk.Incident.OptionalFields1.Date4 | Date | TOPdesk incident’s optional fields1 date4. |
| TOPdesk.Incident.OptionalFields1.Date5 | Date | TOPdesk incident’s optional fields1 date5. |
| TOPdesk.Incident.OptionalFields1.Text1 | String | TOPdesk incident’s optional fields1 text1. |
| TOPdesk.Incident.OptionalFields1.Text2 | String | TOPdesk incident’s optional fields1 text2. |
| TOPdesk.Incident.OptionalFields1.Text3 | String | TOPdesk incident’s optional fields1 text3. |
| TOPdesk.Incident.OptionalFields1.Text4 | String | TOPdesk incident’s optional fields1 text4. |
| TOPdesk.Incident.OptionalFields1.Text5 | String | TOPdesk incident’s optional fields1 text5. |
| TOPdesk.Incident.OptionalFields1.Memo1 | String | TOPdesk incident’s optional fields1 memo1. |
| TOPdesk.Incident.OptionalFields1.Memo2 | String | TOPdesk incident’s optional fields1 memo2. |
| TOPdesk.Incident.OptionalFields1.Memo3 | String | TOPdesk incident’s optional fields1 memo3. |
| TOPdesk.Incident.OptionalFields1.Memo4 | String | TOPdesk incident’s optional fields1 memo4. |
| TOPdesk.Incident.OptionalFields1.Memo5 | String | TOPdesk incident’s optional fields1 memo5. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Id | String | TOPdesk incident’s optional fields1 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Name | String | TOPdesk incident’s optional fields1 searchlist1 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Id | String | TOPdesk incident’s optional fields1 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Name | String | TOPdesk incident’s optional fields1 searchlist2 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Id | String | TOPdesk incident’s optional fields1 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Name | String | TOPdesk incident’s optional fields1 searchlist3 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Id | String | TOPdesk incident’s optional fields1 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Name | String | TOPdesk incident’s optional fields1 searchlist4 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Id | String | TOPdesk incident’s optional fields1 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Name | String | TOPdesk incident’s optional fields1 searchlist5 name. |
| TOPdesk.Incident.OptionalFields2.Boolean1 | Boolean | TOPdesk incident’s optional fields2 boolean1. |
| TOPdesk.Incident.OptionalFields2.Boolean2 | Boolean | TOPdesk incident’s optional fields2 boolean2. |
| TOPdesk.Incident.OptionalFields2.Boolean3 | Boolean | TOPdesk incident’s optional fields2 boolean3. |
| TOPdesk.Incident.OptionalFields2.Boolean4 | Boolean | TOPdesk incident’s optional fields2 boolean4. |
| TOPdesk.Incident.OptionalFields2.Boolean5 | Boolean | TOPdesk incident’s optional fields2 boolean5. |
| TOPdesk.Incident.OptionalFields2.Number1 | Number | TOPdesk incident’s optional fields2 number1. |
| TOPdesk.Incident.OptionalFields2.Number2 | Number | TOPdesk incident’s optional fields2 number2. |
| TOPdesk.Incident.OptionalFields2.Number3 | Number | TOPdesk incident’s optional fields2 number3. |
| TOPdesk.Incident.OptionalFields2.Number4 | Number | TOPdesk incident’s optional fields2 number4. |
| TOPdesk.Incident.OptionalFields2.Number5 | Number | TOPdesk incident’s optional fields2 number5. |
| TOPdesk.Incident.OptionalFields2.Date1 | Date | TOPdesk incident’s optional fields2 date1. |
| TOPdesk.Incident.OptionalFields2.Date2 | Date | TOPdesk incident’s optional fields2 date2. |
| TOPdesk.Incident.OptionalFields2.Date3 | Date | TOPdesk incident’s optional fields2 date3. |
| TOPdesk.Incident.OptionalFields2.Date4 | Date | TOPdesk incident’s optional fields2 date4. |
| TOPdesk.Incident.OptionalFields2.Date5 | Date | TOPdesk incident’s optional fields2 date5. |
| TOPdesk.Incident.OptionalFields2.Text1 | String | TOPdesk incident’s optional fields2 text1. |
| TOPdesk.Incident.OptionalFields2.Text2 | String | TOPdesk incident’s optional fields2 text2. |
| TOPdesk.Incident.OptionalFields2.Text3 | String | TOPdesk incident’s optional fields2.text3. |
| TOPdesk.Incident.OptionalFields2.Text4 | String | TOPdesk incident’s optional fields2 text4. |
| TOPdesk.Incident.OptionalFields2.Text5 | String | TOPdesk incident’s optional fields2 text5. |
| TOPdesk.Incident.OptionalFields2.Memo1 | String | TOPdesk incident’s optional fields2 memo1. |
| TOPdesk.Incident.OptionalFields2.Memo2 | String | TOPdesk incident’s optional fields2 memo2. |
| TOPdesk.Incident.OptionalFields2.Memo3 | String | TOPdesk incident’s optional fields2 memo3. |
| TOPdesk.Incident.OptionalFields2.Memo4 | String | TOPdesk incident’s optional fields2 memo4. |
| TOPdesk.Incident.OptionalFields2.Memo5 | String | TOPdesk incident’s optional fields2 memo5. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Id | String | TOPdesk incident’s optional fields2 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Name | String | TOPdesk incident’s optional fields2 searchlist1 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Id | String | TOPdesk incident’s optional fields2 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Name | String | TOPdesk incident’s optional fields2 searchlist2 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Id | String | TOPdesk incident’s optional fields2 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Name | String | TOPdesk incident’s optional fields2 searchlist3 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Id | String | TOPdesk incident’s optional fields2 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Name | String | TOPdesk incident’s optional fields2 searchlist4 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Id | String | TOPdesk incident’s optional fields2 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Name | String | TOPdesk incident’s optional fields2 searchlist5 name. |
| TOPdesk.Incident.ExternalLinks.Id | String | TOPdesk incident’s external links ID. |
| TOPdesk.Incident.ExternalLinks.Type | String | TOPdesk incident’s external links type. |
| TOPdesk.Incident.ExternalLinks.Date | Date | TOPdesk incident’s external links date. |
Command Example
!topdesk-incident-archive archive_reason_id=some-reason-id-1 number=XSOAR-1337
Context Example
{
"TOPdesk": {
"Incident": {
"Action": "/tas/api/incidents/id/some-id/actions",
"ArchivingReason": {
"Id": "some-reason-id-1",
"Name": "No longer valid"
},
"Attachments": "/tas/api/incidents/id/some-id/attachments",
"BriefDescription": "",
"CallDate": "2021-03-21T17:38:03.007+0000",
"Caller": {
"Branch": {
"ClientReferenceNumber": null,
"ExtraA": null,
"ExtraB": null,
"Id": null,
"Name": "",
"TimeZone": null
},
"DynamicName": "xsoar_test"
},
"Closed": false,
"Completed": false,
"CreationDate": "2021-03-21T17:38:03.007+0000",
"Creator": {
"Id": "some-operator-id",
"Name": "Xsoar - Operator"
},
"ExternalNumber": "",
"Id": "some-id",
"MajorCall": false,
"ModificationDate": "2021-03-24T08:15:06.000+0000",
"Modifier": {
"Id": "some-operator-id",
"Name": "Xsoar - Operator"
},
"Monitored": false,
"Number": "XSOAR-1337",
"OnHold": false,
"OptionalFields1": {
"Searchlist1": {
"Id": "some-id-33",
"Name": "Searchlist 1"
},
"Searchlist3": {
"Id": "some-id-34",
"Name": "Searchlist 3"
},
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"OptionalFields2": {
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"ProcessingStatus": {
"Id": "some-processing-id",
"Name": "Logged"
},
"PublishToSsd": false,
"Requests": "/tas/api/incidents/id/some-id/requests",
"Responded": false,
"Status": "firstLineArchived"
}
}
}
Human Readable Output
TOPdesk incidents
Id Number Line CallerName Status some-id XSOAR-1337 firstLineArchived xsoar_test Logged
topdesk-incident-unarchive
Unarchive an incident in TOPdesk.
Permissions
Operator: Incident write permission and archiving permission; Category/Branch/Operator filters apply;
Person: No access
Base Command
topdesk-incident-unarchive
Input
| Argument Name | Description | Required |
|---|---|---|
| id | The incident ID. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
| number. | The incident number. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Incident.Id | String | TOPdesk incident’s ID. |
| TOPdesk.Incident.Status | String | TOPdesk incident’s status. |
| TOPdesk.Incident.Number | String | TOPdesk incident’s number. |
| TOPdesk.Incident.Request | String | TOPdesk incident’s request. |
| TOPdesk.Incident.Requests | String | TOPdesk incident’s requests. |
| TOPdesk.Incident.Action | String | TOPdesk incident’s action. |
| TOPdesk.Incident.Attachments | String | TOPdesk incident’s attachments. |
| TOPdesk.Incident.Caller.Id | String | TOPdesk incident’s caller ID. |
| TOPdesk.Incident.Caller.DynamicName | String | TOPdesk incident’s caller dynamic name. |
| TOPdesk.Incident.Caller.Branch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.Caller.Branch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.Caller.Branch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.Caller.Branch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.Caller.Branch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.Caller.Branch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.CallerBranch.ClientReferenceNumber | String | TOPdesk incident’s caller branch client reference number. |
| TOPdesk.Incident.CallerBranch.TimeZone | String | TOPdesk incident’s caller branch timezone. |
| TOPdesk.Incident.CallerBranch.ExtraA | Unknown | TOPdesk incident’s caller branch extra A. |
| TOPdesk.Incident.CallerBranch.ExtraB | Unknown | TOPdesk incident’s caller branch extra B. |
| TOPdesk.Incident.CallerBranch.Id | String | TOPdesk incident’s caller branch ID. |
| TOPdesk.Incident.CallerBranch.Name | String | TOPdesk incident’s caller branch name. |
| TOPdesk.Incident.BranchExtraFieldA | Unknown | TOPdesk incident’s branch extra field A. |
| TOPdesk.Incident.BranchExtraFieldB | Unknown | TOPdesk incident’s branch extra field B. |
| TOPdesk.Incident.BriefDescription | String | TOPdesk incident’s brief description. |
| TOPdesk.Incident.ExternalNumber | String | TOPdesk incident’s external number. |
| TOPdesk.Incident.Category.Id | String | TOPdesk incident’s category ID. |
| TOPdesk.Incident.Category.Name | String | TOPdesk incident’s category name. |
| TOPdesk.Incident.Subcategory.Id | String | TOPdesk incident’s subcategory ID. |
| TOPdesk.Incident.Subcategory.Name | String | TOPdesk incident’s subcategory name. |
| TOPdesk.Incident.CallType.Id | String | TOPdesk incident’s call type ID. |
| TOPdesk.Incident.CallType.Name | String | TOPdesk incident’s call type name. |
| TOPdesk.Incident.EntryType.Id | String | TOPdesk incident’s entry type ID. |
| TOPdesk.Incident.EntryType.Name | String | TOPdesk incident’s entry type name. |
| TOPdesk.Incident.Object.Id | String | TOPdesk incident’s object ID. |
| TOPdesk.Incident.Object.Name | String | TOPdesk incident’s object name. |
| TOPdesk.Incident.Object.Type.Id | String | TOPdesk incident’s object type ID. |
| TOPdesk.Incident.Object.Type.Name | String | TOPdesk incident’s object type name. |
| TOPdesk.Incident.Object.Make.Id | String | TOPdesk incident’s object make ID. |
| TOPdesk.Incident.Object.Make.Name | String | TOPdesk incident’s object make name. |
| TOPdesk.Incident.Object.Model.Id | String | TOPdesk incident’s object model ID. |
| TOPdesk.Incident.Object.Model.Name | String | TOPdesk incident’s object model name. |
| TOPdesk.Incident.Object.Branch.Id | String | TOPdesk incident’s object branch ID. |
| TOPdesk.Incident.Object.Branch.Name | String | TOPdesk incident’s object branch name. |
| TOPdesk.Incident.Object.Location.Id | String | TOPdesk incident’s object location ID. |
| TOPdesk.Incident.Object.Location.Name | String | TOPdesk incident’s object location name. |
| TOPdesk.Incident.Object.Specification | String | TOPdesk incident’s object specification. |
| TOPdesk.Incident.Object.SerialNumber | String | TOPdesk incident’s object serial number. |
| TOPdesk.Incident.Asset.Id | String | TOPdesk incident’s asset ID. |
| TOPdesk.Incident.Branch.ClientReferenceNumber | String | TOPdesk incident’s branch client reference number. |
| TOPdesk.Incident.Branch.TimeZone | String | TOPdesk incident’s branch timezone. |
| TOPdesk.Incident.Branch.ExtraA | Unknown | TOPdesk incident’s branch extra A. |
| TOPdesk.Incident.Branch.ExtraB | Unknown | TOPdesk incident’s branch extra B. |
| TOPdesk.Incident.Branch.Id | String | TOPdesk incident’s branch ID. |
| TOPdesk.Incident.Branch.Name | String | TOPdesk incident’s branch name. |
| TOPdesk.Incident.Location.Id | String | TOPdesk incident’s location ID. |
| TOPdesk.Incident.Location.Branch.ClientReferenceNumber | String | TOPdesk incident’s location branch client reference number. |
| TOPdesk.Incident.Location.Branch.TimeZone | String | TOPdesk incident’s location branch timezone. |
| TOPdesk.Incident.Location.Branch.ExtraA | Unknown | TOPdesk incident’s location branch extra A. |
| TOPdesk.Incident.Location.Branch.ExtraB | Unknown | TOPdesk incident’s location branch extra B. |
| TOPdesk.Incident.Location.Branch.Id | String | TOPdesk incident’s location branch ID. |
| TOPdesk.Incident.Location.Branch.Name | String | TOPdesk incident’s location branch name. |
| TOPdesk.Incident.Location.Name | String | TOPdesk incident’s location name. |
| TOPdesk.Incident.Location.Room | String | TOPdesk incident’s location room. |
| TOPdesk.Incident.Impact.Id | String | TOPdesk incident’s impact ID. |
| TOPdesk.Incident.Impact.Name | String | TOPdesk incident’s impact name. |
| TOPdesk.Incident.Urgency.Id | String | TOPdesk incident’s urgency ID. |
| TOPdesk.Incident.Urgency.Name | String | TOPdesk incident’s urgency name. |
| TOPdesk.Incident.Priority.Id | String | TOPdesk incident’s priority ID. |
| TOPdesk.Incident.Priority.Name | String | TOPdesk incident’s priority name. |
| TOPdesk.Incident.Duration.Id | String | TOPdesk incident’s duration ID. |
| TOPdesk.Incident.Duration.Name | String | TOPdesk incident’s duration name. |
| TOPdesk.Incident.TargetDate | Date | TOPdesk incident’s target date. |
| TOPdesk.Incident.Sla.Id | String | TOPdesk incident’s sla ID. |
| TOPdesk.Incident.OnHold | Boolean | TOPdesk incident’s on hold. |
| TOPdesk.Incident.OnHoldDate | Unknown | TOPdesk incident’s on hold date. |
| TOPdesk.Incident.OnHoldDuration | Number | TOPdesk incident’s on hold duration. |
| TOPdesk.Incident.FeedbackMessage | Unknown | TOPdesk incident’s feedback message. |
| TOPdesk.Incident.FeedbackRating | Unknown | TOPdesk incident’s feedback rating. |
| TOPdesk.Incident.Operator.Id | String | TOPdesk incident’s operator ID. |
| TOPdesk.Incident.Operator.Status | String | TOPdesk incident’s operator status. |
| TOPdesk.Incident.Operator.Name | String | TOPdesk incident’s operator name. |
| TOPdesk.Incident.OperatorGroup.Id | String | TOPdesk incident’s operator group ID. |
| TOPdesk.Incident.OperatorGroup.Name | String | TOPdesk incident’s operator group name. |
| TOPdesk.Incident.Supplier.Id | String | TOPdesk incident’s supplier ID. |
| TOPdesk.Incident.Supplier.Name | String | TOPdesk incident’s supplier name. |
| TOPdesk.Incident.Supplier.ForFirstLine | Boolean | TOPdesk incident’s supplier for first line. |
| TOPdesk.Incident.Supplier.ForSecondLine | Boolean | TOPdesk incident’s supplier for second line. |
| TOPdesk.Incident.ProcessingStatus.Id | String | TOPdesk incident’s processing status ID. |
| TOPdesk.Incident.ProcessingStatus.Name | String | TOPdesk incident’s processing status name. |
| TOPdesk.Incident.Completed | Boolean | TOPdesk incident’s completed. |
| TOPdesk.Incident.CompletedDate | Unknown | TOPdesk incident’s completed date. |
| TOPdesk.Incident.Closed | Boolean | TOPdesk incident’s closed. |
| TOPdesk.Incident.ClosedDate | Unknown | TOPdesk incident’s closed date. |
| TOPdesk.Incident.ClosureCode.Id | String | TOPdesk incident’s closure code ID. |
| TOPdesk.Incident.ClosureCode.Name | String | TOPdesk incident’s closure code name. |
| TOPdesk.Incident.TimeSpent | Number | TOPdesk incident’s time spent. |
| TOPdesk.Incident.TimeSpentFirstLine | Number | TOPdesk incident’s time spent first line |
| TOPdesk.Incident.TimeSpentSecondLineAndPartials | Number | TOPdesk incident’s time spent second line and partials. |
| TOPdesk.Incident.Costs | Number | TOPdesk incident’s costs. |
| TOPdesk.Incident.EscalationStatus | String | TOPdesk incident’s escalation status. |
| TOPdesk.Incident.EscalationReason.Id | String | TOPdesk incident’s escalation reason ID. |
| TOPdesk.Incident.EscalationReason.Name | String | TOPdesk incident’s escalation reason name. |
| TOPdesk.Incident.EscalationOperator.Id | String | TOPdesk incident’s escalation operator ID. |
| TOPdesk.Incident.EscalationOperator.Name | String | TOPdesk incident’s escalation operator name. |
| TOPdesk.Incident.CallDate | Date | TOPdesk incident’s call date. |
| TOPdesk.Incident.Creator.Id | String | TOPdesk incident’s creator ID. |
| TOPdesk.Incident.Creator.Name | String | TOPdesk incident’s creator name. |
| TOPdesk.Incident.CreationDate | Date | TOPdesk incident’s creation date. |
| TOPdesk.Incident.Modifier.Id | String | TOPdesk incident’s modifier ID. |
| TOPdesk.Incident.Modifier.Name | String | TOPdesk incident’s modifier name. |
| TOPdesk.Incident.ModificationDate | Date | TOPdesk incident’s modification date. |
| TOPdesk.Incident.MajorCall | Boolean | TOPdesk incident’s major call. |
| TOPdesk.Incident.MajorCallObject.Name | String | TOPdesk incident’s Major call object name. |
| TOPdesk.Incident.MajorCallObject.Id | String | TOPdesk incident’s major call object ID. |
| TOPdesk.Incident.MajorCallObject.Status | Number | TOPdesk incident’s major call object status. |
| TOPdesk.Incident.MajorCallObject.MajorIncident | Boolean | TOPdesk incident’s major call object major incident. |
| TOPdesk.Incident.PublishToSsd | Boolean | TOPdesk incident’s publish to SSD. |
| TOPdesk.Incident.Monitored | Boolean | TOPdesk incident’s monitored. |
| TOPdesk.Incident.ExpectedTimeSpent | Number | TOPdesk incident’s expected time spent. |
| TOPdesk.Incident.MainIncident | Unknown | TOPdesk incident’s main incident. |
| TOPdesk.Incident.PartialIncidents.Link | String | TOPdesk incident’s partial incidents link. |
| TOPdesk.Incident.OptionalFields1.Boolean1 | Boolean | TOPdesk incident’s optional fields1 boolean1. |
| TOPdesk.Incident.OptionalFields1.Boolean2 | Boolean | TOPdesk incident’s optional fields1 boolean2. |
| TOPdesk.Incident.OptionalFields1.Boolean3 | Boolean | TOPdesk incident’s optional fields1 boolean3. |
| TOPdesk.Incident.OptionalFields1.Boolean4 | Boolean | TOPdesk incident’s optional fields1 boolean4. |
| TOPdesk.Incident.OptionalFields1.Boolean5 | Boolean | TOPdesk incident’s optional fields1 boolean5. |
| TOPdesk.Incident.OptionalFields1.Number1 | Number | TOPdesk incident’s optional fields1 number1. |
| TOPdesk.Incident.OptionalFields1.Number2 | Number | TOPdesk incident’s optional fields1 number2. |
| TOPdesk.Incident.OptionalFields1.Number3 | Number | TOPdesk incident’s optional fields1 number3. |
| TOPdesk.Incident.OptionalFields1.Number4 | Number | TOPdesk incident’s optional fields1 number4. |
| TOPdesk.Incident.OptionalFields1.Number5 | Number | TOPdesk incident’s optional fields1 number5. |
| TOPdesk.Incident.OptionalFields1.Date1 | Date | TOPdesk incident’s optional fields1 date1. |
| TOPdesk.Incident.OptionalFields1.Date2 | Date | TOPdesk incident’s optional fields1 date2. |
| TOPdesk.Incident.OptionalFields1.Date3 | Date | TOPdesk incident’s optional fields1 date3. |
| TOPdesk.Incident.OptionalFields1.Date4 | Date | TOPdesk incident’s optional fields1 date4. |
| TOPdesk.Incident.OptionalFields1.Date5 | Date | TOPdesk incident’s optional fields1 date5. |
| TOPdesk.Incident.OptionalFields1.Text1 | String | TOPdesk incident’s optional fields1 text1. |
| TOPdesk.Incident.OptionalFields1.Text2 | String | TOPdesk incident’s optional fields1 text2. |
| TOPdesk.Incident.OptionalFields1.Text3 | String | TOPdesk incident’s optional fields1 text3. |
| TOPdesk.Incident.OptionalFields1.Text4 | String | TOPdesk incident’s optional fields1 text4. |
| TOPdesk.Incident.OptionalFields1.Text5 | String | TOPdesk incident’s optional fields1 text5. |
| TOPdesk.Incident.OptionalFields1.Memo1 | String | TOPdesk incident’s optional fields1 memo1. |
| TOPdesk.Incident.OptionalFields1.Memo2 | String | TOPdesk incident’s optional fields1 memo2. |
| TOPdesk.Incident.OptionalFields1.Memo3 | String | TOPdesk incident’s optional fields1 memo3. |
| TOPdesk.Incident.OptionalFields1.Memo4 | String | TOPdesk incident’s optional fields1 memo4. |
| TOPdesk.Incident.OptionalFields1.Memo5 | String | TOPdesk incident’s optional fields1 memo5. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Id | String | TOPdesk incident’s optional fields1 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist1.Name | String | TOPdesk incident’s optional fields1 searchlist1 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Id | String | TOPdesk incident’s optional fields1 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist2.Name | String | TOPdesk incident’s optional fields1 searchlist2 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Id | String | TOPdesk incident’s optional fields1 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist3.Name | String | TOPdesk incident’s optional fields1 searchlist3 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Id | String | TOPdesk incident’s optional fields1 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist4.Name | String | TOPdesk incident’s optional fields1 searchlist4 name. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Id | String | TOPdesk incident’s optional fields1 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields1.Searchlist5.Name | String | TOPdesk incident’s optional fields1 searchlist5 name. |
| TOPdesk.Incident.OptionalFields2.Boolean1 | Boolean | TOPdesk incident’s optional fields2 boolean1. |
| TOPdesk.Incident.OptionalFields2.Boolean2 | Boolean | TOPdesk incident’s optional fields2 boolean2. |
| TOPdesk.Incident.OptionalFields2.Boolean3 | Boolean | TOPdesk incident’s optional fields2 boolean3. |
| TOPdesk.Incident.OptionalFields2.Boolean4 | Boolean | TOPdesk incident’s optional fields2 boolean4. |
| TOPdesk.Incident.OptionalFields2.Boolean5 | Boolean | TOPdesk incident’s optional fields2 boolean5. |
| TOPdesk.Incident.OptionalFields2.Number1 | Number | TOPdesk incident’s optional fields2 number1. |
| TOPdesk.Incident.OptionalFields2.Number2 | Number | TOPdesk incident’s optional fields2 number2. |
| TOPdesk.Incident.OptionalFields2.Number3 | Number | TOPdesk incident’s optional fields2 number3. |
| TOPdesk.Incident.OptionalFields2.Number4 | Number | TOPdesk incident’s optional fields2 number4. |
| TOPdesk.Incident.OptionalFields2.Number5 | Number | TOPdesk incident’s optional fields2 number5. |
| TOPdesk.Incident.OptionalFields2.Date1 | Date | TOPdesk incident’s optional fields2 date1. |
| TOPdesk.Incident.OptionalFields2.Date2 | Date | TOPdesk incident’s optional fields2 date2. |
| TOPdesk.Incident.OptionalFields2.Date3 | Date | TOPdesk incident’s optional fields2 date3. |
| TOPdesk.Incident.OptionalFields2.Date4 | Date | TOPdesk incident’s optional fields2 date4. |
| TOPdesk.Incident.OptionalFields2.Date5 | Date | TOPdesk incident’s optional fields2 date5. |
| TOPdesk.Incident.OptionalFields2.Text1 | String | TOPdesk incident’s optional fields2 text1. |
| TOPdesk.Incident.OptionalFields2.Text2 | String | TOPdesk incident’s optional fields2 text2. |
| TOPdesk.Incident.OptionalFields2.Text3 | String | TOPdesk incident’s optional fields2.text3. |
| TOPdesk.Incident.OptionalFields2.Text4 | String | TOPdesk incident’s optional fields2 text4. |
| TOPdesk.Incident.OptionalFields2.Text5 | String | TOPdesk incident’s optional fields2 text5. |
| TOPdesk.Incident.OptionalFields2.Memo1 | String | TOPdesk incident’s optional fields2 memo1. |
| TOPdesk.Incident.OptionalFields2.Memo2 | String | TOPdesk incident’s optional fields2 memo2. |
| TOPdesk.Incident.OptionalFields2.Memo3 | String | TOPdesk incident’s optional fields2 memo3. |
| TOPdesk.Incident.OptionalFields2.Memo4 | String | TOPdesk incident’s optional fields2 memo4. |
| TOPdesk.Incident.OptionalFields2.Memo5 | String | TOPdesk incident’s optional fields2 memo5. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Id | String | TOPdesk incident’s optional fields2 searchlist1 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist1.Name | String | TOPdesk incident’s optional fields2 searchlist1 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Id | String | TOPdesk incident’s optional fields2 searchlist2 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist2.Name | String | TOPdesk incident’s optional fields2 searchlist2 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Id | String | TOPdesk incident’s optional fields2 searchlist3 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist3.Name | String | TOPdesk incident’s optional fields2 searchlist3 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Id | String | TOPdesk incident’s optional fields2 searchlist4 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist4.Name | String | TOPdesk incident’s optional fields2 searchlist4 name. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Id | String | TOPdesk incident’s optional fields2 searchlist5 ID. |
| TOPdesk.Incident.OptionalFields2.Searchlist5.Name | String | TOPdesk incident’s optional fields2 searchlist5 name. |
| TOPdesk.Incident.ExternalLinks.Id | String | TOPdesk incident’s external links ID. |
| TOPdesk.Incident.ExternalLinks.Type | String | TOPdesk incident’s external links type. |
| TOPdesk.Incident.ExternalLinks.Date | Date | TOPdesk incident’s external links date. |
Command Example
!topdesk-incident-unarchive number=XSOAR-1337
Context Example
{
"TOPdesk": {
"Incident": {
"Action": "/tas/api/incidents/id/some-id/actions",
"Attachments": "/tas/api/incidents/id/some-id/attachments",
"BriefDescription": "",
"CallDate": "2021-03-21T17:38:03.007+0000",
"Caller": {
"Branch": {
"ClientReferenceNumber": null,
"ExtraA": null,
"ExtraB": null,
"Id": null,
"Name": "",
"TimeZone": null
},
"DynamicName": "xsoar_test"
},
"Closed": false,
"Completed": false,
"CreationDate": "2021-03-21T17:38:03.007+0000",
"Creator": {
"Id": "some-operator-id",
"Name": "Xsoar - Operator"
},
"ExternalNumber": "",
"Id": "some-id",
"MajorCall": false,
"ModificationDate": "2021-03-24T08:15:06.000+0000",
"Modifier": {
"Id": "some-operator-id",
"Name": "Xsoar - Operator"
},
"Monitored": false,
"Number": "XSOAR-1337",
"OnHold": false,
"OptionalFields1": {
"Searchlist1": {
"Id": "some-id-33",
"Name": "Searchlist 1"
},
"Searchlist3": {
"Id": "some-id-34",
"Name": "Searchlist 3"
},
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"OptionalFields2": {
"Text1": "",
"Text2": "",
"Text3": "",
"Text4": "",
"Text5": ""
},
"ProcessingStatus": {
"Id": "some-processing-id",
"Name": "Logged"
},
"PublishToSsd": false,
"Requests": "/tas/api/incidents/id/some-id/requests",
"Responded": false,
"Status": "firstLine"
}
}
}
Human Readable Output
TOPdesk incidents
Id Number Line CallerName Status some-id XSOAR-1337 firstLine xsoar_test Logged
topdesk-incident-attachment-upload
Upload an attachment to an incident in TOPdesk.
Permissions
Operator: With edit permission on 1st/2nd line incident; Category/Branch/Operator filters apply
Person: Accessible; Person visibility settings apply.
Base Command
topdesk-incident-attachment-upload
Input
| Argument Name | Description | Required |
|---|---|---|
| id | The incident ID. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
| number. | The incident number. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
| file | Entry ID of the file to upload. | Required |
| file_name | In case specified entry contains more than one file, the given file name will be used. If not specified the first file in the entry will be used. | Optional |
| invisible_for_caller | Whether the uploaded file is invisible for the caller of the incident. Possible values are: true, false. | Optional |
| file_description | The description of the uploaded file. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Attachment.Id | String | Attachment’s ID. |
| TOPdesk.Attachment.FileName | String | Attachment’s file name. |
| TOPdesk.Attachment.DownloadUrl | String | Attachment’s download URL. |
| TOPdesk.Attachment.Size | Number | Attachment’s size. |
| TOPdesk.Attachment.Description | String | Attachment’s description. |
| TOPdesk.Attachment.InvisibleForCaller | Boolean | Attachment’s invisible for caller. |
| TOPdesk.Attachment.EntryDate | Date | Attachment’s entry date. |
| TOPdesk.Attachment.Operator.Id | String | Attachment’s operator ID. |
| TOPdesk.Attachment.Operator.Name | String | Attachment’s operator name. |
| TOPdesk.Attachment.Person | Unknown | Attachment’s person. |
Command Example
!topdesk-incident-attachment-upload number=XSOAR-1337 file=932@some-file-entry
Context Example
{
"TOPdesk": {
"Attachment": {
"DownloadUrl": "/tas/api/incidents/id/some-incident-id/attachments/some-id/download",
"EntryDate": "2021-03-24T13:40:47.000+0000",
"FileName": "tiny_upload_file",
"Id": "some-id",
"InvisibleForCaller": false,
"Operator": {
"Id": "some-operator-id",
"Name": "xsoar operator a"
}
}
}
}
Human Readable Output
TOPdesk Attachments
Id FileName DownloadUrl InvisibleForCaller EntryDate Operator some-id tiny_upload_file /tas/api/incidents/id/some-incident-id/attachments/some-id/download False 2021-03-24T13:40:47.000+0000 xsoar operator a
Base Command
topdesk-incident-attachments-list
Input
| Argument Name | Description | Required |
|---|---|---|
| id | The incident ID. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
| number. | The incident number. An ID or a number must be set. If both are set incident with relevant ID will be updated. | Optional |
| limit | The limit for the amount of attachments to store in the Context Data. -1 stores all categories. Default value is 100. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Attachment.Id | String | Attachment’s ID. |
| TOPdesk.Attachment.FileName | String | Attachment’s file name. |
| TOPdesk.Attachment.DownloadUrl | String | Attachment’s download URL. |
| TOPdesk.Attachment.Size | Number | Attachment’s size. |
| TOPdesk.Attachment.Description | String | Attachment’s description. |
| TOPdesk.Attachment.InvisibleForCaller | Boolean | Attachment’s invisible for caller. |
| TOPdesk.Attachment.EntryDate | Date | Attachment’s entry date. |
| TOPdesk.Attachment.Operator.Id | String | Attachment’s operator ID. |
| TOPdesk.Attachment.Operator.Name | String | Attachment’s operator name. |
| TOPdesk.Attachment.Person | Unknown | Attachment’s person. |
Command Example
!topdesk-incident-attachments-list number=XSOAR-1337
Context Example
{
"TOPdesk": {
"Attachment": {
"DownloadUrl": "/tas/api/incidents/id/some-incident-id/attachments/some-id/download",
"EntryDate": "2021-03-24T13:40:47.000+0000",
"FileName": "tiny_upload_file",
"Id": "some-id",
"InvisibleForCaller": false,
"Operator": {
"Id": "some-operator-id",
"Name": "xsoar operator a"
}
}
}
}
Human Readable Output
TOPdesk Attachments
Id FileName DownloadUrl InvisibleForCaller EntryDate Operator some-id tiny_upload_file /tas/api/incidents/id/some-incident-id/attachments/some-id/download False 2021-03-24T13:40:47.000+0000 xsoar operator a
topdesk-assets-list
Get list of assets.
Base Command
topdesk-assets-list
Input
| Argument Name | Description | Required |
|---|---|---|
| start | The offset at which to start listing the assets at. Must be greater or equal to 0. Default is 0. | Optional |
| page_size | The amount of assets to be returned per request. Must be between 1 and 100 or 0 for all assets. Default is 50. | Optional |
| filter | Supports a set of OData filters which can be combined with ‘and’ and ‘or’ assets. Filter expressions can also be grouped by parentheses. https://developers.topdesk.com/explorer/?page=assets#/Assets/getAssets. | Optional |
| search_term | Search assets by name. | Optional |
| archived | List only Archived or only Active devices. Leave empty for all. | Optional |
| fields | Additional fields to include in the response. | Optional |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Asset.Archived | Boolean | Asset status, archived or not. |
| TOPdesk.Asset.Etag | String | Asset entry date. |
| TOPdesk.Asset.Id | String | Unique ID of the Asset. |
| TOPdesk.Asset.Text | String | Asset freetext field, often the name of the asset. |
Command Example
!topdesk-assets-list page_size=10 fields="archived,etag,id,text,name,mac-address"
Context Example
{
"TOPdesk": {
"Asset": [
{
"Archived": false,
"Etag": "2025-06-18T14:18:59.111 ",
"Id": "4a5ef5e0-41fa-4a25-a5f4-8c4ea2780c69",
"Text": "test.host"
}
]
}
}
Human Readable Output
TOPdesk assets
Archived Etag Id Text false 2025-06-18T14:18:59.111 4a5ef5e0-41fa-4a25-a5f4-8c4ea2780c6 test.host
topdesk-asset-update
Update Asset Fields.
Base Command
topdesk-asset-update
Input
| Argument Name | Description | Required |
|---|---|---|
| asset_id | The Unique ID of the Asset. | Required |
| data | “A json with the fields that you want to configure: {‘asset_name’:’testasset’}.” | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| TOPdesk.Asset | Dict | Dictionary of all Asset Data specific to company |
Command Example
!topdesk-asset-update asset_id="4a5ef5e0-41fa-4a25-a5f4-8c4ea2780c69" data="{\"edr-status\":\"Not OK\"}"
Context Example
{
......
}
Human Readable Output
Sucessfully Updated Asset
Configuration parameters
url— Server URL (e.g., https://topdesk.mydomain/tas/) (required)credentials— Username (required)isFetch— Fetch incidentsmax_fetch— Maximum number of incidents per fetchfirst_fetch— First fetch time (<number> <time unit>, e.g., 12 hours, 7 days, 3 months, 1 year)defaultCallerId— Default Incident Caller IDfetch_query— The query to use when fetching incidentsincidentType— Incident typemirror_direction— Incident Mirroring Directioncomment_tag— Comment Entry Tagwork_notes_tag— Work Note Entry Tagfile_tag— File Entry Tagclose_incident— Close Mirrored Cortex XSOAR Incidentclose_ticket— Close Mirrored TOPdesk Ticketinsecure— Trust any certificate (not secure)proxy— Use system proxy settingsincidentFetchInterval— Incidents Fetch Interval
Commands (26)
-
get-mapping-fieldsReturns the list of fields to map in outgoing mirroring.
-
get-modified-remote-dataGets the list of incidents that were modified since the last update time. This method is used for debugging purposes. The get-modified-remote-data command is used as part of the Mirroring feature that was introduced in Cortex XSOAR version 6.1.
-
get-remote-dataGets remote data from a remote incident. This method does not update the current incident and should be used for debugging purposes only.
-
topdesk-archiving-reasons-listGet list of archiving reasons.
-
topdesk-asset-updateUpdate Asset Fields.
-
topdesk-assets-listGet list of assets.
-
topdesk-branches-listGet list of branches.
-
topdesk-call-types-listGet list of call types.
-
topdesk-categories-listGet list of categories.
-
topdesk-deescalation-reasons-listGet list of deescalation reasons.
-
topdesk-entry-types-listGet list of entry types.
-
topdesk-escalation-reasons-listGet list of escalation reasons.
-
topdesk-incident-actions-listGet list of actions of a certain TOPdesk incident.
-
topdesk-incident-archiveArchive an incident in TOPdesk.
-
topdesk-incident-attachment-uploadUpload an attachment to an incident in TOPdesk.
-
topdesk-incident-attachments-listGet list of attachments of a certain TOPdesk incident.
-
topdesk-incident-createCreate an incident in TOPdesk.
-
topdesk-incident-deescalateDeescalate an incident in TOPdesk.
-
topdesk-incident-escalateEscalate an incident in TOPdesk.
-
topdesk-incident-unarchiveUnarchive an incident in TOPdesk.
-
topdesk-incident-updateUpdate an incident in TOPdesk.
-
topdesk-incidents-listGet list of incidents.
-
topdesk-operators-listGet list of operators.
-
topdesk-persons-listGet list of persons.
-
topdesk-subcategories-listGet list of subcategories.
-
update-remote-systemUpdates the remote incident with local incident changes. This method is only used for debugging purposes and will not update the current incident.
import demistomock as demisto # noqa: F401 import requests from CommonServerPython import * # noqa: F401 """TOPdesk integration for Cortex XSOAR""" import math import os import shutil from collections.abc import Callable from packaging.version import Version from typing import Any import dateparser import urllib3 # Disable insecure warnings urllib3.disable_warnings() """ CONSTANTS """ INTEGRATION_NAME = "TOPdesk" DATE_FORMAT = "%Y-%m-%dT%H:%M:%SZ" DATE_FORMAT_FULL = "%Y-%m-%dT%H:%M:%S.%f%z" MAX_API_PAGE_SIZE = 10000 FIRST_REST_API_VERSION_WITH_NEW_QUERY = "3.3.0" TOPDESK_ARGS = ["processingStatus", "priority", "urgency", "impact"] MIRROR_DIRECTION = {"None": None, "Incoming": "In", "Outgoing": "Out", "Incoming And Outgoing": "Both"} """ CLIENT CLASS """ class Client(BaseClient): """Client class to interact with the TOPdesk service API""" def __init__(self, base_url, verify, auth): super().__init__(base_url=base_url, verify=verify, auth=auth) self._proxies = handle_proxy(proxy_param_name="proxy", checkbox_default_value=False) self.rest_api_new_query = self.rest_api_supports_new_query() self.ticket_type = "incident" def rest_api_supports_new_query(self) -> bool: """Initialize which query type is supported by requesting the TOPdeskRestAPI version. Return True if the version supports new FIQL type query and False otherwise. """ try: rest_api_version = Version(self.get_single_endpoint("/version")["version"]) except DemistoException as e: if "Error 401" in str(e): raise DemistoException("Authorization Error: make sure username and password are correctly set") if "[404] - Not Found" in str(e): raise DemistoException("Page Not Found: make sure the url is correctly set") else: raise e return rest_api_version >= Version(FIRST_REST_API_VERSION_WITH_NEW_QUERY) def get_list_with_query( self, list_type: str, start: int | None = None, page_size: int | None = None, query: str | None = None, modification_date_start: str | None = None, modification_date_end: str | None = None, creation_date_start: str | None = None, creation_date_end: str | None = None, fields: str | None = None, ) -> list[dict[str, Any]]: """Get list of objects that support start, page_size and query arguments. Args: list_type: "persons"/ "operators"/ "branches"/ "incidents" start: The offset at which to start listing the incidents at, default is 0. page_size: The amount of incidents to be returned per request, default is 10. query: Filter the incidents by this FIQL query. modification_date_start: Retrieve only incidents with modification date greater or equal to this day 00:00:00, using time zone of the logged in user or operator. <yyyy-mm-dd> modification_date_end: Retrieve only incidents with modification date smaller or equal to this day 23:59:59, using time zone of the logged in user or operator. <yyyy-mm-dd> creation_date_start: Retrieve only incidents with creation date greater or equal to this day 00:00:00, using time zone of the logged in user or operator. <yyyy-mm-dd> creation_date_end: Retrieve only incidents with creation date smaller or equal to this day 00:00:00, using time zone of the logged in user or operator. <yyyy-mm-dd> fields: Option to select fields for persons, branches and incidents. Return List of requested objects. """ allowed_list_type = ["persons", "operators", "branches", "incidents"] if list_type not in allowed_list_type: raise ValueError(f"Cannot get list of type {list_type}.\n Only {allowed_list_type} are allowed.") url_suffix = f"/{list_type}" inline_parameters = False request_params: dict[str, Any] = {} if start: url_suffix = f"{url_suffix}?start={start}" inline_parameters = True if page_size: if inline_parameters: url_suffix = f"{url_suffix}&page_size={page_size}" else: url_suffix = f"{url_suffix}?page_size={page_size}" inline_parameters = True if list_type == "incidents": new_query = self.rest_api_new_query else: new_query = True if fields: qfield = "fields" if list_type == "persons" or list_type == "branches": qfield = "$" + qfield if inline_parameters: url_suffix = f"{url_suffix}&{qfield}={fields}" else: url_suffix = f"{url_suffix}?{qfield}={fields}" inline_parameters = True query = self.convert_query_types(query, new_query) url_suffix = self.add_query_to_request(query, url_suffix, new_query, inline_parameters) if modification_date_start: request_params["modification_date_start"] = modification_date_start if modification_date_end: request_params["modification_date_end"] = modification_date_end if creation_date_start: request_params["creation_date_start"] = creation_date_start if creation_date_end: request_params["creation_date_end"] = creation_date_end result = [] try: result = self._http_request(method="GET", url_suffix=url_suffix, json_data=request_params) except Exception: demisto.debug("No items found") result = [] return result def get_asset_list_with_query( self, list_type: str, start: int | None = None, page_size: int | None = None, query: str | None = None, fields: str | None = None, search_term: str | None = None, archived: bool | None = None, ) -> dict[str, Any]: """Get list of objects that support start, page_size and query arguments. Args: list_type: "assets" start: The offset at which to start listing the incidents at, default is 0. page_size: The amount of incidents to be returned per request, default is 10. query: Filter the Assets by this odata filter. fields: Option to select fields for persons, branches and incidents. search_term: Optional Search Term to find assets archived: Optional Boolean to filter assets based on whether they are archived or not. Default is None. Return List of requested objects. """ allowed_list_type = ["assets"] if list_type not in allowed_list_type: raise ValueError(f"Cannot get list of type {list_type}.\n Only {allowed_list_type} are allowed.") else: url_suffix = f"assetmgmt/{list_type}" request_params: dict[str, Any] = assign_params( archived=archived, pageStart=start, pageSize=page_size, fields=fields, searchTerm=search_term ) if query: request_params["$filter"] = query try: result = self._http_request(method="GET", url_suffix=url_suffix, params=request_params) except Exception: demisto.debug("No items found") result = {} return result def get_list(self, endpoint: str) -> list[dict[str, Any]]: """Get list of objects using the API endpoint.""" return self._http_request( method="GET", url_suffix=f"{endpoint}", ) def get_single_endpoint(self, endpoint: str) -> dict[str, Any]: """Get an object using the API endpoint.""" return self._http_request( method="GET", url_suffix=f"{endpoint}", ) def create_incident(self, args: dict[str, Any] = {}) -> dict[str, Any]: """Create incident in TOPdesk. Args: args: The args for creating. Caller must be specified to create incident. Return the new incident on success or the API error otherwise. """ if not args.get("caller", None): if not demisto.params().get("defaultCallerId"): raise ValueError("Caller must be specified to create incident.") else: args["caller"] = demisto.params().get("defaultCallerId") request_params = prepare_touch_request_params(args) return self._http_request(method="POST", url_suffix="/incidents/", json_data=request_params) def update_asset(self, args: dict[str, Any] = {}) -> dict[str, Any]: """Update an Asset in Topdesk. Args: args: The args for Updating. Must contain an asset_id and data to be updated. Return success or the API error otherwise on failure. """ asset_id = args.get("asset_id", None) data = args.get("data", None) params = {"excludeActions": "false"} if isinstance(data, str): data = json.loads(data) if asset_id and data: return self._http_request(method="POST", url_suffix=f"/assetmgmt/assets/{asset_id}", json_data=data, params=params) if not asset_id and data: raise DemistoException("Invalid arguments provided.") return self._http_request(method="POST", url_suffix=f"/assetmgmt/assets/{asset_id}", json_data=data, params=params) def update_incident(self, args: dict[str, Any]) -> dict[str, Any]: """Update incident in TOPdesk. Args: args: The args for updating. Either id or number must be specified to update incident. Return the updated incident on success or the API error otherwise. """ if not args.get("id", None) and not args.get("number", None): raise ValueError("Either id or number must be specified to update incident.") if args.get("id", None): endpoint = f"/incidents/id/{args['id']}" else: endpoint = f"/incidents/number/{args['number']}" return self._http_request(method="PUT", url_suffix=endpoint, json_data=prepare_touch_request_params(args)) def incident_do( self, action: str, incident_id: str | None, incident_number: str | None, reason_id: str | None ) -> dict[str, Any]: """Preform action on TOPdesk incident with specified reason_id if needed. This function implements "escalate"/ "deescalate"/ "archive"/ "unarchive" commands. Args: action: "escalate"/ "deescalate"/ "archive"/ "unarchive" incident_id: The incident id to preform the action on. incident_number: The incident number to preform the action on. If both id and number are specified, id will be used. reason_id: The reason id for the specified action. Return the updated incident on success or the API error otherwise. """ allowed_actions = ["escalate", "deescalate", "archive", "unarchive"] request_params: dict[str, Any] = {} if action not in allowed_actions: raise ValueError(f"Endpoint {action} not in allowed endpoint list: {allowed_actions}") if not incident_id and not incident_number: raise ValueError("Either id or number must be specified to update incident.") if incident_id: endpoint = f"/incidents/id/{incident_id}" else: endpoint = f"/incidents/number/{incident_number}" if reason_id: request_params["id"] = reason_id return self._http_request(method="PUT", url_suffix=f"{endpoint}/{action}", json_data=request_params) def attachment_upload( self, incident_id: str | None, incident_number: str | None, file_entry: str, file_name: str, invisible_for_caller: bool, file_description: str | None, ): """Upload an attachment from file_entry to TOPdesk incident. Args: incident_id: The incident id to upload attachment to. incident_number: The incident number to upload attachment to. If both id and number are specified, id will be used. file_entry: The file entry id indicating the attachment to upload file_name: The file name to upload. invisible_for_caller: Whether the attachment will be visible for the caller or not. file_description: Description of the file to upload. Will be uploaded alongside. Return attachment response from API. """ if not incident_id and not incident_number: raise ValueError("Either id or number must be specified to update incident.") if incident_id: endpoint = f"/incidents/id/{incident_id}" else: endpoint = f"/incidents/number/{incident_number}" request_params: dict[str, Any] = {} request_params["invisibleForCaller"] = invisible_for_caller if file_description: request_params["description"] = file_description shutil.copyfile(demisto.getFilePath(file_entry)["path"], file_name) try: with open(file_name, "rb") as file_obj: files = {"file": file_obj} response = self._http_request( method="POST", url_suffix=f"{endpoint}/attachments", files=files, data=request_params ) except Exception as e: os.remove(file_name) raise e os.remove(file_name) return response def list_attachments(self, incident_id: str | None, incident_number: str | None) -> list[dict[str, Any]]: """List attachments of a given incident. Args: incident_id: The incident id to list attachments of. incident_number: The incident number to list attachments of. If both id and number are specified, id will be used. Return list of attachments of the incident. """ if not incident_id and not incident_number: raise ValueError("Either id or number must be specified to update incident.") if incident_id: attachments = self.get_list(f"/incidents/id/{incident_id}/attachments") else: attachments = self.get_list(f"/incidents/number/{incident_number}/attachments") return attachments def list_actions(self, incident_id: str | None, incident_number: str | None) -> list[dict[str, Any]]: """List actions of a given incident. Args: incident_id: The incident id to list actions of. incident_number: The incident number to list actions of. If both id and number are specified, id will be used. Return list of actions of the incident. """ if not incident_id and not incident_number: raise ValueError("Either id or number must be specified to update incident.") if incident_id: actions = self.get_list(f"/incidents/id/{incident_id}/actions") else: actions = self.get_list(f"/incidents/number/{incident_number}/actions") return actions @staticmethod def add_filter_to_query(query: str | None, filter_name: str, filter_arg: str, use_new_query: bool = True) -> str | None: """Enhance query to include filter argument. Consider the supported query type. Args: query: The current query in use. (e.g. id==some-id) filter_name: The filter name to add (e.g. email) filter_arg: The filter argument to add (e.g. my@email.com) use_new_query: Whether to use FIQL query or not. Return the joined query with the argument (e.g. id==some-id&email==my@email.com) """ if filter_name and filter_arg: if query: query = f"{query}&" else: query = "" if use_new_query: query = f"{query}{filter_name}=={filter_arg}" else: query = f"{query}{filter_name}={filter_arg}" return query @staticmethod def add_query_to_request(query: str | None, url_suffix: str, new_query: bool, inline_parameters: bool) -> str: """Add the inline query parameter to the url suffix of a request. Consider the supported query type. Args: query: The query argument to add to the url suffix (e.g. id==3) url_suffix: The existing url suffix (e.g. /persons?start=2) new_query: Whether to use FIQL query or add parameters inline. inline_parameters: Whether there are already other inline parameters in the url. Return the reconstructed url_suffix containing the query. """ if query: if new_query: query = f"query={query}" if inline_parameters: url_suffix = f"{url_suffix}&{query}" else: url_suffix = f"{url_suffix}?{query}" return url_suffix @staticmethod def convert_query_types(current_query: str | None, to_new_query: bool) -> str | None: """Convert inline params to FIQL query and otherwise Args: current_query: The current query, must be in the for. to_new_query: Wether to convert to FIQL query or inline parameters. Return the new reconstructed query. """ if not current_query: return None query_args = re.split("&", current_query) new_query_args = [] for query_arg in query_args: query_arg_list = re.split("=", query_arg) if "" in query_arg_list: query_arg_list.remove("") if len(query_arg_list) > 3: raise ValueError("Invalid query, make sure it is in the right format") if not to_new_query and len(query_arg_list) != 2: raise ValueError(f"Invalid query, older {INTEGRATION_NAME} versions only support filtering with =") if to_new_query and len(query_arg_list) == 2 and query_arg_list[0][-1] != "!": new_query_args.append("==".join(query_arg_list)) else: new_query_args.append("=".join(query_arg_list)) return "&".join(new_query_args) """ HELPER FUNCTIONS """ def trim_results_by_limit(results: list[Any], limit: int | str = 100) -> list[Any]: """Trim list of results so only a limited number is returned. Args: results: The list of results. limit: The upper limit of the results to return. If limit is set to -1 all results will be returned. Return the trimmed results. """ if int(limit) == -1: return results return results[: int(limit)] def attachments_to_command_results( client: Client, attachments: list[dict[str, Any]], incident_id: str | None, incident_number: str | None ) -> CommandResults: """Transform raw attachments to CommandResults. Args: client: The client from which to take the base_url for clickable links. attachments: The raw attachments list from the API incident_id: The incident id of the attachments. incident_number: The incident number of the attachments. Return CommandResults of attachments. """ headers = ["Id", "FileName", "DownloadUrl", "Size", "Description", "InvisibleForCaller", "EntryDate", "Operator"] capitalized_attachments = capitalize_for_outputs(attachments) for capitalized_attachment in capitalized_attachments: full_url = "/api".join([client._base_url.split("/api")[0], capitalized_attachment["DownloadUrl"].split("/api")[1]]) capitalized_attachment["DownloadUrl"] = full_url incident_identifier = incident_number if incident_number else incident_id readable_output = tableToMarkdown( f"{INTEGRATION_NAME} attachment of incident {incident_identifier}", capitalized_attachments, headers=headers, removeNull=True, ) return CommandResults( readable_output=readable_output, outputs_prefix=f"{INTEGRATION_NAME}.Attachment", outputs_key_field="Id", outputs=capitalized_attachments, raw_response=attachments, ) def actions_to_command_results( client: Client, actions: list[dict[str, Any]], incident_id: str | None, incident_number: str | None ) -> CommandResults: """Transform raw actions to CommandResults. Args: client: The client from which to take the base_url for clickable links. actions: The raw actions list from the API incident_id: The incident id of the actions. incident_number: The incident number of the actions. Return CommandResults of actions. """ headers = ["Id", "Memotext", "Flag", "InvisibleForCaller", "EntryDate", "Operator", "Person"] capitalized_actions = capitalize_for_outputs(actions) incident_identifier = incident_number if incident_number else incident_id readable_output = tableToMarkdown( f"{INTEGRATION_NAME} action of incident {incident_identifier}", capitalized_actions, headers=headers, removeNull=True ) return CommandResults( readable_output=readable_output, outputs_prefix=f"{INTEGRATION_NAME}.Action", outputs_key_field="Id", outputs=capitalized_actions, raw_response=actions, ) def prepare_touch_request_params(args: dict[str, Any]) -> dict[str, Any]: """Prepare request parameters for incident-create and incident-update commands. Convert snake_case and specific names of command to halfCamelizedCase and API names. Args should contain arguments as specified in the documentation: https://developers.topdesk.com/documentation/index.html#api-Incident-CreateIncident Return a request body dictionary ready for sending. """ request_params: dict[str, Any] = {} if args.get("entry_type", None): request_params["entryType"] = {"name": args["entry_type"]} optional_params = [ "caller", "status", "description", "request", "action", "action_invisible_for_caller", "call_type", "category", "subcategory", "external_number", "main_incident", "priority", "urgency", "impact", "processingStatus", ] optional_named_params = ["call_type", "category", "subcategory", "priority", "urgency", "impact", "processingStatus"] if args: for optional_param in optional_params: if args.get(optional_param, None): if optional_param == "description": request_params["briefDescription"] = args.get(optional_param, None) elif optional_param == "caller": if args.get("registered_caller", False): request_params["callerLookup"] = {"id": args[optional_param]} else: request_params["caller"] = {"dynamicName": args[optional_param]} elif optional_param in optional_named_params: request_params[half_camelize(optional_param)] = {"name": args[optional_param]} else: request_params[half_camelize(optional_param)] = args.get(optional_param, None) if args.get("additional_params", None): request_params.update(json.loads(args["additional_params"])) return request_params def half_camelize(s: str, delimiter: str = "_") -> str: """Convert an underscore separated string to camel case with first word not capitalized. hello_world -> helloWorld Args: s: The string to convert delimiter: The delimiter of the snake_case (e.g. snake-case => delimiter == '-') Return the converted halfCamelized string. """ components = s.split(delimiter) return f"{components[0]}{''.join(x.title() for x in components[1:])}" def capitalize(word: str): """Capitalize the first letter of the word while keeping the rest as it is.""" return word[:1].upper() + word[1:] def capitalize_for_outputs(outputs: list[dict[str, Any]]) -> list[dict[str, Any]]: """Capitalize for XSOAR readable outputs. Args: outputs: XSOAR raw_outputs object. Return same object with capitalized field names. """ capitalized_outputs: list[dict[str, Any]] = [] for output in outputs: capitalized_output: dict[str, Any] = {} for field, value in output.items(): if isinstance(value, str | bool): capitalized_output[capitalize(field)] = value elif isinstance(value, dict): capitalized_output[capitalize(field)] = {} for sub_field, sub_value in value.items(): if isinstance(sub_value, str) or isinstance(value, bool): capitalized_output[capitalize(field)][capitalize(sub_field)] = sub_value elif isinstance(sub_value, dict): capitalized_output[capitalize(field)][capitalize(sub_field)] = {} for sub_sub_field, sub_sub_value in sub_value.items(): capitalized_output[capitalize(field)][capitalize(sub_field)][capitalize(sub_sub_field)] = ( sub_sub_value # Support up to dict[x: dict[y: dict]] ) capitalized_outputs.append(capitalized_output) return capitalized_outputs def command_with_all_fields_readable_list( results: list[dict[str, Any]], result_name: str, output_prefix: str, outputs_key_field: str = "id" ) -> CommandResults: """Return CommandResults with all the fields. Args: results: The command results extracted from the API response. result_name: Result table name. (e.g. Archiving Reasons) output_prefix: The output_prefix used in context data (e.g. ArchiveReason) outputs_key_field: Key field for the CommandResults (e.g. id) Return CommandResults with all fields in results and readable_output. """ if len(results) == 0: return CommandResults(readable_output=f"No {result_name} found") readable_output = tableToMarkdown(f"{INTEGRATION_NAME} {result_name}", capitalize_for_outputs(results), removeNull=True) return CommandResults( readable_output=readable_output, outputs_prefix=f"{INTEGRATION_NAME}.{output_prefix}", outputs_key_field=outputs_key_field, outputs=capitalize_for_outputs(results), raw_response=results, ) def get_incidents_with_pagination( client: Client, max_fetch: int, query: str, modification_date_start: str | None = None, modification_date_end: str | None = None, creation_date_start: str | None = None, creation_date_end: str | None = None, fields: str | None = None, ) -> list[dict[str, Any]]: """Implement pagination for fetching incidents. Args: client: The client from which to make the requests. max_fetch: Maximum number of incidents to fetch. query: A filter query for the incidents to fetch. modification_date_start: The start modification date from which to fetch. modification_date_end: The end modification date from which to fetch. creation_date_start: The start creation date from which to fetch. creation_date_end: The end creation date from which to fetch. fields: Option to select fields for persons, branches and incidents. Return all incidents fetched. """ incidents = [] max_incidents = int(max_fetch) number_of_requests = math.ceil(max_incidents / MAX_API_PAGE_SIZE) if max_incidents < MAX_API_PAGE_SIZE: page_size = max_incidents else: page_size = MAX_API_PAGE_SIZE start = 0 for _index in range(number_of_requests): incidents += client.get_list_with_query( list_type="incidents", start=start, page_size=page_size, query=query, modification_date_start=modification_date_start, modification_date_end=modification_date_end, creation_date_start=creation_date_start, creation_date_end=creation_date_end, fields=fields, ) start += page_size return incidents def get_incidents_list( client: Client, modification_date_start: str = None, modification_date_end: str = None, args: dict[str, Any] = {} ) -> list[dict[str, Any]]: """Get list of incidents from TOPdesk. Args: client: The client from which to make the requests. modification_date_start: The start date from which to fetch. modification_date_end: The end date from which to fetch. args: might contain new style query or other old style arguments. Return list of incidents got from the API. """ if args.get("incident_id", None): incidents = [client.get_single_endpoint(f"/incidents/id/{args.get('incident_id')}")] elif args.get("incident_number", None): incidents = [client.get_single_endpoint(f"/incidents/number/{args.get('incident_number')}")] else: allowed_statuses = [None, "firstLine", "secondLine", "partial"] if args.get("status", None) not in allowed_statuses: raise (ValueError(f"status {args.get('status', None)} id not in the allowed statuses list: {allowed_statuses}")) else: filter_arguments: dict[str, Any] = { "status": "status", "caller_id": "caller", "branch_id": "branch", "category": "category", "subcategory": "subcategory", "call_type": "callType", "entry_type": "entryType", } old_query_not_allowed_filters = ["category", "subcategory", "call_type", "entry_type"] query = args.get("query", None) for filter_arg in filter_arguments: if not client.rest_api_new_query and (args.get(filter_arg, None) and filter_arg in old_query_not_allowed_filters): raise KeyError(f"Filtering via {filter_arg} is not supported in older TOPdeskRestApi versions.") query = client.add_filter_to_query( query=query, filter_name=filter_arguments.get(filter_arg, None), filter_arg=args.get(filter_arg, None), use_new_query=client.rest_api_new_query, ) incidents = client.get_list_with_query( list_type="incidents", start=args.get("start", None), page_size=args.get("page_size", None), query=query, modification_date_start=modification_date_start, modification_date_end=modification_date_end, fields=args.get("fields", None), ) return incidents def get_assets_list( client: Client, args: dict[str, Any] = {}, ) -> list[dict[str, Any]]: """Get list of Assets from TOPdesk. Args: client: The client from which to make the requests. args: might contain new style query or other old style arguments. Return list of incidents got from the API. """ page_size = arg_to_number(args.get("page_size", 50)) or 50 start = arg_to_number(args.get("start", 0)) or 0 query = args.get("filter", None) search_term = args.get("search_term", None) archived = args.get("archived", None) fields = args.get("fields", None) # If the page size is 0, we will fetch all data if page_size == 0: pagination = True page_size = 1000 else: pagination = False assets_list = [] while True: assets = client.get_asset_list_with_query( list_type="assets", start=start, page_size=page_size, query=query, search_term=search_term, archived=archived, fields=fields, ) assets_list.extend(assets["dataSet"]) start += page_size if not pagination or len(assets["dataSet"]) < 1: break return assets_list def incidents_to_command_results(client: Client, incidents: list[dict[str, Any]]) -> CommandResults: """Receive incidents from api and convert to CommandResults. Args: client: The client from which to take the base_url for clickable links. incidents: The raw incidents list from the API Return CommandResults of Incidents. """ if len(incidents) == 0: return CommandResults(readable_output="No incidents found") headers = ["Id", "Number", "Request", "Line", "Actions", "CallerName", "Status", "Operator", "Priority", "LinkToTOPdesk"] readable_incidents = [] for incident in incidents: readable_incident = { "Id": incident.get("id", None), "Number": incident.get("number", None), "Request": incident.get("request", None), "Line": incident.get("status", None), "CallerName": incident.get("caller", {}).get("dynamicName", None) if incident.get("caller") else None, "Status": incident.get("processingStatus", {}).get("name", None) if incident.get("processingStatus") else None, "Operator": incident.get("operator", {}).get("name", None) if incident.get("operator") else None, "Priority": incident.get("priority", None), "LinkToTOPdesk": f"[Open Incident in TOPdesk]({client._base_url.split('/api')[0]}" f"/public/ssp/content/detail/incident?unid={incident.get('id', None)})", } readable_incidents.append(readable_incident) readable_output = tableToMarkdown(f"{INTEGRATION_NAME} incidents", readable_incidents, headers=headers, removeNull=True) return CommandResults( readable_output=readable_output, outputs_prefix=f"{INTEGRATION_NAME}.Incident", outputs_key_field="Id", outputs=capitalize_for_outputs(incidents), raw_response=incidents, ) def assets_to_command_results(assets: list[dict[str, Any]]) -> CommandResults: """Receive assets from api and convert to CommandResults. Args: assets: The raw assets list from the API Return CommandResults of Assets. """ if len(assets) == 0: return CommandResults(readable_output="No assets found") # Remove '@' prefix from keys in each asset assets = [{k.replace("@", ""): v for k, v in asset.items()} for asset in assets] readable_output = tableToMarkdown(f"{INTEGRATION_NAME} assets", capitalize_for_outputs(assets), removeNull=True) return CommandResults( readable_output=readable_output, outputs_prefix=f"{INTEGRATION_NAME}.Asset", outputs_key_field="", outputs=capitalize_for_outputs(assets), raw_response=assets, ) def incident_func_command(client: Client, args: dict[str, Any], client_func: Callable, action: str) -> CommandResults: """Abstract class for executing client_func and returning TOPdesk incident as a result. Args: client: The client from which to take the base_url for clickable links. args: the arguments to send to the client_func. client_func: The client function to be called to execute the command. action: Readable string of the command to indicate the errors better. Return CommandResults of list of single incident response. """ response = client_func(args) if not response.get("id", None): raise Exception(f"Recieved Error when {action} incident in TOPdesk:\n{response}") return incidents_to_command_results(client, [response]) """ COMMAND FUNCTIONS """ """ List Commands """ def list_persons_command(client: Client, args: dict[str, Any]) -> CommandResults: """Get persons list from TOPdesk. Args: client: The client to preform command on. args: The arguments of the persons command. Return CommadResults of list of persons. """ persons = client.get_list_with_query( list_type="persons", start=args.get("start", None), page_size=args.get("page_size", None), query=args.get("query", None), fields=args.get("fields", None), ) if len(persons) == 0: return CommandResults(readable_output="No persons found") headers = ["Id", "Name", "Telephone", "JobTitle", "Department", "City", "BranchName", "Room"] readable_persons = [] for person in persons: readable_person = { "Id": person.get("id", None), "Name": person.get("dynamicName", None), "Telephone": person.get("phoneNumber", None), "JobTitle": person.get("jobTitle", None), "Department": person.get("department", None), "City": person.get("city", None), "BranchName": person.get("branch", {}).get("name", None) if person.get("branch") else None, "Room": person.get("location", {}).get("room", None) if person.get("location") else None, } readable_persons.append(readable_person) readable_output = tableToMarkdown(f"{INTEGRATION_NAME} persons", readable_persons, headers=headers, removeNull=True) return CommandResults( readable_output=readable_output, outputs_prefix=f"{INTEGRATION_NAME}.Person", outputs_key_field="Id", outputs=capitalize_for_outputs(persons), raw_response=persons, ) def list_operators_command(client: Client, args: dict[str, Any]) -> CommandResults: """Get operators list from TOPdesk. Args: client: The client to preform command on. args: The arguments of the operators command. Return CommandResults of list of operators. """ operators = client.get_list_with_query( list_type="operators", start=args.get("start", None), page_size=args.get("page_size", None), query=args.get("query", None) ) if len(operators) == 0: return CommandResults(readable_output="No operators found") headers = ["Id", "Name", "Telephone", "JobTitle", "Department", "City", "BranchName", "LoginName"] readable_operators = [] for operator in operators: readable_operators.append( { "Id": operator.get("id", None), "Name": operator.get("dynamicName", None), "Telephone": operator.get("phoneNumber", None), "JobTitle": operator.get("jobTitle", None), "Department": operator.get("department", None), "City": operator.get("city", None), "BranchName": operator.get("branch", {}).get("name", None) if operator.get("branch") else None, "LoginName": operator.get("tasLoginName", None), } ) readable_output = tableToMarkdown(f"{INTEGRATION_NAME} operators", readable_operators, headers=headers, removeNull=True) return CommandResults( readable_output=readable_output, outputs_prefix=f"{INTEGRATION_NAME}.Operator", outputs_key_field="Id", outputs=capitalize_for_outputs(operators), raw_response=operators, ) def entry_types_command(client: Client, args: dict[str, Any]) -> CommandResults: """Get entry types list from TOPdesk. Args: client: The client to preform command on. args: The arguments of the command, specifically 'limit' will be used. Return CommadResults of list of EntryType.""" entry_types = client.get_list("/incidents/entry_types") entry_types = trim_results_by_limit(entry_types, args.get("limit", 100)) return command_with_all_fields_readable_list( results=entry_types, result_name="entry types", output_prefix="EntryType", outputs_key_field="Id" ) def call_types_command(client: Client, args: dict[str, Any]) -> CommandResults: """Get call types list from TOPdesk. Args: client: The client to preform command on. args: The arguments of the command, specifically 'limit' will be used. Return CommadResults of list of CallType.""" call_types = client.get_list("/incidents/call_types") call_types = trim_results_by_limit(call_types, args.get("limit", 100)) return command_with_all_fields_readable_list( results=call_types, result_name="call types", output_prefix="CallType", outputs_key_field="Id" ) def categories_command(client: Client, args: dict[str, Any]) -> CommandResults: """Get categories list from TOPdesk Args: client: The client to preform command on. args: The arguments of the command, specifically 'limit' will be used. Return CommadResults of list of Category.""" categories = client.get_list("/incidents/categories") categories = trim_results_by_limit(categories, args.get("limit", 100)) return command_with_all_fields_readable_list( results=categories, result_name="categories", output_prefix="Category", outputs_key_field="Id" ) def escalation_reasons_command(client: Client, args: dict[str, Any]) -> CommandResults: """Get escalation reasons list from TOPdesk. Args: client: The client to preform command on. args: The arguments of the command, specifically 'limit' will be used. Return CommadResults of list of EscalationReason.""" escalation_reasons = client.get_list("/incidents/escalation-reasons") escalation_reasons = trim_results_by_limit(escalation_reasons, args.get("limit", 100)) return command_with_all_fields_readable_list( results=escalation_reasons, result_name="escalation reasons", output_prefix="EscalationReason", outputs_key_field="Id" ) def deescalation_reasons_command(client: Client, args: dict[str, Any]) -> CommandResults | str: """Get deescalation reasons list from TOPdesk. Args: client: The client to preform command on. args: The arguments of the command, specifically 'limit' will be used. Return CommadResults of list of DeescalationReason.""" try: deescalation_reasons = client.get_list("/incidents/deescalation-reasons") deescalation_reasons = trim_results_by_limit(deescalation_reasons, args.get("limit", 100)) except DemistoException as e: if "[404] - Not Found" in str(e): return "Page Not Found: make sure deescalation feature is enabled in TOPdesk." return command_with_all_fields_readable_list( results=deescalation_reasons, result_name="deescalation reasons", output_prefix="DeescalationReason", outputs_key_field="Id", ) def archiving_reasons_command(client: Client, args: dict[str, Any]) -> CommandResults: """Get archiving reasons list from TOPdesk. Args: client: The client to preform command on. args: The arguments of the command, specifically 'limit' will be used. Return CommadResults of list of ArchiveReason.""" archiving_reasons = client.get_list("/archiving-reasons") archiving_reasons = trim_results_by_limit(archiving_reasons, args.get("limit", 100)) return command_with_all_fields_readable_list( results=archiving_reasons, result_name="archiving reasons", output_prefix="ArchiveReason", outputs_key_field="Id" ) def subcategories_command(client: Client, args: dict[str, Any]) -> CommandResults: """Get subcategories list from TOPdesk. Args: client: The client to preform command on. args: The arguments of the command, specifically 'limit' will be used. Return CommadResults of list of subcategories.""" subcategories = client.get_list("/incidents/subcategories") if len(subcategories) == 0: return CommandResults(readable_output="No subcategories found") subcategories = trim_results_by_limit(subcategories, args.get("limit", 100)) subcategories_with_categories = [] for subcategory in subcategories: subcategory_with_category = { "Id": subcategory.get("id", None), "Name": subcategory.get("name", None), "CategoryId": None, "CategoryName": None, } if subcategory.get("category", None): subcategory_with_category["CategoryId"] = subcategory.get("category", None).get("id", None) subcategory_with_category["CategoryName"] = subcategory.get("category", None).get("name", None) subcategories_with_categories.append(subcategory_with_category) headers = ["Id", "Name", "CategoryId", "CategoryName"] readable_output = tableToMarkdown( f"{INTEGRATION_NAME} subcategories", subcategories_with_categories, headers=headers, removeNull=True ) return CommandResults( readable_output=readable_output, outputs_prefix=f"{INTEGRATION_NAME}.Subcategory", outputs_key_field="Id", outputs=capitalize_for_outputs(subcategories), raw_response=subcategories, ) def list_attachments_command(client: Client, args: dict[str, Any]) -> CommandResults: """Get attachments list from TOPdesk incident. Args: client: The client to preform command on. args: The arguments of the command, specifically 'limit' will be used. Return CommadResults of list of attachments.""" attachments = client.list_attachments( incident_id=args.get("incident_id", None), incident_number=args.get("incident_number", None) ) if len(attachments) == 0: return CommandResults(readable_output="No attachments found") attachments = trim_results_by_limit(attachments, args.get("limit", 100)) return attachments_to_command_results(client, attachments, args.get("incident_id", None), args.get("incident_number", None)) def list_actions_command(client: Client, args: dict[str, Any]) -> CommandResults: """Get actions list from TOPdesk incident. Args: client: The client to preform command on. args: The arguments of the command, specifically 'limit' will be used. Return CommadResults of list of attachments.""" actions = client.list_actions(incident_id=args.get("incident_id", None), incident_number=args.get("incident_number", None)) if len(actions) == 0: return CommandResults(readable_output="No actions found") actions = trim_results_by_limit(actions, args.get("limit", 100)) return actions_to_command_results(client, actions, args.get("incident_id", None), args.get("incident_number", None)) def branches_command(client: Client, args: dict[str, Any]) -> CommandResults: """Get branches list from TOPdesk. Args: client: The client to preform command on. args: The arguments of the branches command. Return CommadResults of list of branches. """ branches = client.get_list_with_query( list_type="branches", start=args.get("start", None), page_size=args.get("page_size", None), query=args.get("query", None), fields=args.get("fields", None), ) if len(branches) == 0: return CommandResults(readable_output="No branches found") headers = ["Id", "Status", "Name", "Phone", "Website", "Address"] readable_branches = [] for branch in branches: readable_branch = { "Id": branch.get("id", None), "Status": branch.get("status", None), "Name": branch.get("name", None), "Phone": branch.get("phone", None), "Website": branch.get("website", None), "Address": branch.get("address", {}).get("addressMemo", None), } readable_branches.append(readable_branch) readable_output = tableToMarkdown(f"{INTEGRATION_NAME} branches", readable_branches, headers=headers, removeNull=True) return CommandResults( readable_output=readable_output, outputs_prefix=f"{INTEGRATION_NAME}.Branch", outputs_key_field="Id", outputs=capitalize_for_outputs(branches), raw_response=branches, ) def get_incidents_list_command(client: Client, args: dict[str, Any]) -> CommandResults | str: """Parse arguments and return incidents list as CommandResults. Args: client: The client to preform command on. args: The arguments of the incidents_list command. Return CommadResults of list of incidents. """ try: command_results = incidents_to_command_results(client, get_incidents_list(client=client, args=args)) return command_results except Exception as e: if "Error parsing query" in str(e): return "Error parsing query: make sure you are using the right query type." else: raise e def get_assets_list_command(client: Client, args: dict[str, Any]) -> CommandResults | str: """Parse arguments and return asset list as CommandResults. Args: client: The client to preform command on. args: The arguments of the asset_list command. Return CommandResults of list of assets. """ try: command_results = assets_to_command_results(get_assets_list(client=client, args=args)) return command_results except Exception as e: if "Error parsing query" in str(e): return "Error parsing query: make sure you are using the right query type." else: raise e def update_asset_command(client: Client, args: dict[str, Any]) -> CommandResults | str: """Parse arguments and Update Asset. Args: client: The client to preform command on. args: The arguments of the asset_list command. Return CommandResults of list of assets. """ try: response = client.update_asset(args) return CommandResults( outputs_prefix=f"{INTEGRATION_NAME}.Asset", outputs=response, readable_output="Sucessfully Updated Asset", ) except Exception as e: if "Error parsing query" in str(e): return "Error parsing query: make sure you are using the right query type." else: raise e def incident_touch_command(client: Client, args: dict[str, Any], client_func: Callable, action: str) -> CommandResults: """This function implements incident_create and incident_update commands. Try setting caller as a reqistered caller. If caller is not registered, set the caller argument as caller name. A registered caller is one that has a TOPdesk account that can be linked to the call. Args: client: The client from which to take the base_url for clickable links. args: The arguments of the command. client_func: The client function to be called. action: Readable string for better errors (e.g. 'update') Return CommandResults with the renewed/new incident. """ try: args["registered_caller"] = True # Try to link a caller id to the incident. return incident_func_command(client=client, args=args, client_func=client_func, action=action) except Exception as e: if "'callerLookup.id' cannot be parsed" in str(e): # If couldn't find a caller with the provided id. args["registered_caller"] = False # Create incident with an unregistered caller name. return incident_func_command(client=client, args=args, client_func=client_func, action=action) else: raise e def incident_do_command(client: Client, args: dict[str, Any], action: str) -> CommandResults: """Preform an action on an incident and return it as CommandResults. Args: client: The client to preform command on. args: The arguments of the incidents_list command. action: The action to preform on the incident: "escalate"/"deescalate"/"archive"/"unarchive" Return the incident as CommandResult. """ return incidents_to_command_results( client, [ client.incident_do( action=action, incident_id=args.get("id", None), incident_number=args.get("number", None), reason_id=args.get(f"{action}_reason_id", None), ) ], ) def attachment_upload_command(client: Client, args: dict[str, Any]) -> CommandResults: """Upload attachment to certain incident in TOPdesk. Args: client: The client to preform command on. args: The arguments of the attachment upload command. Should contain either id or number indicating the incident and a file entry id indicating the attachment to upload. Return the uploaded attachment as CommandResults. """ file_entry = args.get("file") file_name = demisto.dt(demisto.context(), f"File(val.EntryID=='{file_entry}').Name") if not file_name: # in case of info file file_name = demisto.dt(demisto.context(), f"InfoFile(val.EntryID=='{file_entry}').Name") if not file_name: raise ValueError(f"Could not fine file in entry with entry_id: {file_entry}") if isinstance(file_name, list): # If few files if args.get("file_name", None) and args.get("file_name") in file_name: file_name = args.get("file_name") else: file_name = file_name[0] invisible_for_caller = bool(args.get("invisible_for_caller", False)) response = client.attachment_upload( incident_id=args.get("id", None), incident_number=args.get("number", None), file_entry=str(file_entry), file_name=str(file_name), invisible_for_caller=invisible_for_caller, file_description=args.get("file_description", None), ) if not response.get("downloadUrl", None): raise Exception(f"Failed uploading file: {response}") return attachments_to_command_results(client, [response], args.get("incident_id", None), args.get("incident_number", None)) """ FETCH & MIRRORING COMMANDS""" def fetch_incidents( client: Client, last_run: dict[str, Any], demisto_params: dict[str, Any] ) -> tuple[dict[str, Any], list[dict[str, Any]]]: """Fetches incidents from TOPdesk. Args: client: The client to preform command on. last_run: Dict indicating the last fetch time (e.g. {'last_fetch': 2020-03-10T06:32:36.000000+0000}) demisto_params: Demisto configuration of fetch_incidents. Return (updated dict indicating the last fetch time, incidents) """ first_fetch_datetime = dateparser.parse(demisto_params.get("first_fetch", "3 days")) last_fetch = last_run.get("last_fetch", None) if not last_fetch: if first_fetch_datetime: last_fetch_datetime = first_fetch_datetime else: raise Exception("Could not find last fetch time.") else: last_fetch_datetime = dateparser.parse(last_fetch) # type: ignore assert last_fetch_datetime is not None latest_created_time = last_fetch_datetime incidents: list[dict[str, Any]] = [] creation_date_start = last_fetch_datetime.strftime("<%Y-%m-%d>") topdesk_incidents = get_incidents_with_pagination( client=client, max_fetch=int(demisto_params.get("max_fetch", 10)), query=demisto_params.get("fetch_query", None), creation_date_start=creation_date_start, ) for topdesk_incident in topdesk_incidents: if topdesk_incident.get("creationDate", None): creation_datetime = dateparser.parse(topdesk_incident["creationDate"]) incident_created_time = creation_datetime else: incident_created_time = last_fetch_datetime assert incident_created_time is not None topdesk_incident["mirror_direction"] = MIRROR_DIRECTION.get(str(demisto_params.get("mirror_direction"))) topdesk_incident["mirror_tags"] = [ demisto_params.get("comment_tag", "comments"), demisto_params.get("file_tag", "ForTOPdesk"), demisto_params.get("work_notes_tag", "work_notes"), ] topdesk_incident["mirror_instance"] = demisto.integrationInstance() if float(last_fetch_datetime.timestamp()) < float(incident_created_time.timestamp()): labels = [] try: actions = client.list_actions(incident_id=topdesk_incident["id"], incident_number=None) except DemistoException as error: demisto.debug(f"{error=}") # make sure we catch only JSONDecodeError errors, in case it is a different exception, should be raised. if isinstance(error.exception, json.decoder.JSONDecodeError | requests.exceptions.JSONDecodeError): actions = [] else: raise error for action in actions: entry_date = dateparser.parse(action["entryDate"], settings={"TIMEZONE": "UTC"}) # type: ignore if action["operator"]: name = action["operator"]["name"] elif action["person"]: name = action["person"]["name"] else: name = "Unknown" if entry_date: date_time = entry_date.strftime(DATE_FORMAT) else: date_time = incident_created_time.strftime(DATE_FORMAT) labels.append({"type": "comments", "value": f'[{date_time}] {name}:<br><br>{action["memoText"]}'}) incident = { "name": f"{topdesk_incident['briefDescription']}", "labels": labels, "details": json.dumps(topdesk_incident), "occurred": incident_created_time.strftime(DATE_FORMAT), "rawJSON": json.dumps(topdesk_incident), } if incident not in incidents: # Do not fetch duplicates incidents.append(incident) if float(latest_created_time.timestamp()) < float(incident_created_time.timestamp()): latest_created_time = incident_created_time return {"last_fetch": latest_created_time.strftime(DATE_FORMAT_FULL)}, incidents def get_remote_data_command(client: Client, args: dict[str, Any], params: dict) -> GetRemoteDataResponse: """ get-remote-data command: Returns an updated incident and entries Args: client: XSOAR client to use args: id: incident id to retrieve lastUpdate: when was the last time we retrieved data Returns: GetRemoteDataResponse object, which contain the incident or detection data to update. """ ticket_id = args.get("id", "") last_update = dateparser.parse(str(args.get("lastUpdate")), settings={"TIMEZONE": "UTC"}) # type: ignore assert last_update is not None try: demisto.debug( f"Performing get-remote-data command with incident or detection id: {ticket_id} and last_update: {last_update}" ) _args = {} _args["incident_id"] = ticket_id result = get_incidents_list(client=client, args=_args) if not result: demisto.debug("Ticket was not found!") mirrored_data = {"id": ticket_id, "in_mirror_error": "Ticket was not found"} return GetRemoteDataResponse(mirrored_object=mirrored_data, entries=[]) else: demisto.debug("Ticket was found!") ticket = result[0] ticket_last_update = dateparser.parse(str(ticket["modificationDate"]), settings={"TIMEZONE": "UTC"}) # type: ignore assert ticket_last_update is not None if last_update > ticket_last_update: demisto.debug("Nothing new in the ticket") else: demisto.debug("ticket is updated") entries = [] # Get actions # - could be optimized if list_actions would apply filter with last_update timestamp actions = client.list_actions(incident_id=ticket_id, incident_number=None) # Filter actions for action in actions: if "Mirrored from Cortex XSOAR" not in action["memoText"]: entry_date = dateparser.parse(action["entryDate"], settings={"TIMEZONE": "UTC"}) # type: ignore assert entry_date is not None if last_update > entry_date: demisto.debug("skip entry") else: demisto.debug("mirror entry to xsoar") if action["operator"]: name = action["operator"]["name"] elif action["person"]: name = action["person"]["name"] else: name = "Unknown" date_time = entry_date.strftime(DATE_FORMAT) entries.append( { "Type": EntryType.NOTE, "Contents": f'[{date_time}] {name}:\n\n{action["memoText"]}', "ContentsFormat": EntryFormat.TEXT, "Tags": ["mirrored"], # the list of tags to add to the entry "Note": True, # boolean, True for Note, False otherwise } ) if ticket.get("closed") and params.get("close_incident"): demisto.debug(f"ticket is closed: {ticket}") entries.append( { "Type": EntryType.NOTE, "Contents": {"dbotIncidentClose": True, "closeReason": "Closed by TOPdesk"}, "ContentsFormat": EntryFormat.JSON, } ) demisto.debug(f"Pull result is {ticket}") return GetRemoteDataResponse(mirrored_object=ticket, entries=entries) except Exception as e: demisto.debug(f"Error in TOPdesk incoming mirror for incident or detection: {ticket_id}\nError message: {e!s}") if not ticket: ticket = {"incident_id": ticket_id} ticket["in_mirror_error"] = str(e) return GetRemoteDataResponse(mirrored_object=ticket, entries=[]) def get_modified_remote_data_command(client: Client, args: dict[str, Any], params: dict) -> GetModifiedRemoteDataResponse: remote_args = GetModifiedRemoteDataArgs(args) query_date = dateparser.parse(remote_args.last_update, settings={"TIMEZONE": "UTC"}).strftime(DATE_FORMAT) # type: ignore assert query_date is not None demisto.debug(f"Running get-modified-remote-data command. Last update is: {query_date}") topdesk_incidents = get_incidents_with_pagination( client=client, max_fetch=int(params.get("max_fetch", 20)), query=f"modificationDate=gt={query_date}" ) modified_records_ids = [] if topdesk_incidents: modified_records_ids = [topdesk_incident["id"] for topdesk_incident in topdesk_incidents if "id" in topdesk_incident] return GetModifiedRemoteDataResponse(modified_records_ids) def update_remote_system_command(client: Client, args: dict[str, Any], params: dict[str, Any]) -> str: """ This command pushes local changes to the remote system. Args: client: XSOAR Client to use. args: args['data']: the data to send to the remote system args['entries']: the entries to send to the remote system args['incident_changed']: boolean telling us if the local incident indeed changed or not args['remote_incident_id']: the remote incident id params: entry_tags: the tags to pass to the entries (to separate between comments and work_notes) Returns: The remote incident id - ticket_id """ parsed_args = UpdateRemoteSystemArgs(args) if parsed_args.delta: demisto.debug(f"Got the following delta keys {list(parsed_args.delta.keys())!s}") try: # ticket_type = client.ticket_type ticket_id = parsed_args.remote_incident_id if parsed_args.incident_changed: demisto.debug(f"Incident changed: {parsed_args.incident_changed}") # Close ticket if needed update_args = {"id": ticket_id} for key in parsed_args.delta: if key in TOPDESK_ARGS: update_args[key] = parsed_args.delta[key] if parsed_args.inc_status == IncidentStatus.DONE and params.get("close_ticket"): # Set status TOPdesk ticket to Closed demisto.debug("Close TOPdesk ticket") update_args["processingStatus"] = "Closed" client.update_incident(update_args) entries = parsed_args.entries if entries: demisto.debug(f"New entries {entries}") for entry in entries: demisto.debug(f'Sending entry {entry.get("id")}, type: {entry.get("type")}') # Mirroring files as entries if entry.get("type") == EntryType.FILE: path_res = demisto.getFilePath(entry.get("id")) full_file_name = path_res.get("name") file_name, file_extension = os.path.splitext(full_file_name) if not file_extension: file_extension = "" client.attachment_upload( incident_id=ticket_id, incident_number=None, file_entry=entry.get("id"), file_name=file_name + "_mirrored_from_xsoar" + file_extension, invisible_for_caller=False, file_description=f"Upload from xsoar: {file_name}.{file_extension}", ) else: # Mirroring comment and work notes as entries xargs = { "id": ticket_id, "action": "", "action_invisible_for_caller": False, } tags = entry.get("tags", []) if params.get("work_notes_tag") in tags: xargs["action_invisible_for_caller"] = True # Sometimes user is an empty str, not None, therefore nothing is displayed user = entry.get("user", "dbot") if user: duser = demisto.findUser(username=user) name = duser["name"] else: name = "Xsoar dbot" text = ( f"<i><u>Update from {name}:</u></i><br><br>{entry.get('contents', '')!s}" + "<br><br><i>Mirrored from Cortex XSOAR</i>" ) xargs["action"] = text client.update_incident(xargs) except Exception as e: demisto.error(f"Error in TOPdesk outgoing mirror for incident or detection {ticket_id}. Error message: {e!s}") return ticket_id def get_mapping_fields_command(client: Client) -> GetMappingFieldsResponse: """ Returns the list of fields for an incident type. Args: client: Xsoar client to use returns: Dictionairy with keys as field names """ incident_type_scheme = SchemeTypeMapping(type_name="TOPdesk Incident") demisto.debug('Collecting incident mapping for incident type - "TOPdesk Incident"') for field in TOPDESK_ARGS: incident_type_scheme.add_field(field) mapping_response = GetMappingFieldsResponse() mapping_response.add_scheme_type(incident_type_scheme) return mapping_response def test_module(client: Client, demisto_last_run: dict[str, Any], demisto_params: dict[str, Any]) -> str: """Test API connectivity and authentication. Use fetch incidents for testing if the integration supports it. Args: client: The client to try to connect to. demisto_last_run: Last run of fetch_incidents. demisto_params: Demisto configuration, will be used in case of fetching incidents. Returns 'ok' on success and an error message otherwise. """ try: if demisto_params.get("isFetch"): fetch_incidents(client=client, last_run=demisto_last_run, demisto_params=demisto_params) else: client.get_list("/incidents/call_types") except DemistoException as e: if "Error 401" in str(e): return "Authorization Error: make sure username and password are correctly set" if "[404] - Not Found" in str(e): return "Page Not Found: make sure the url is correctly set" else: raise e return "ok" """ MAIN FUNCTION """ def main() -> None: """Main function, parses params and runs command functions.""" # get the service API url demisto_params = demisto.params() base_url = urljoin(demisto_params.get("url"), "/api") verify_certificate = not demisto_params.get("insecure", False) credentials = demisto_params.get("credentials") demisto.debug(f"Command being called is {demisto.command()}") try: client = Client( base_url=base_url, verify=verify_certificate, auth=(credentials.get("identifier"), credentials.get("password")) ) if demisto.command() == "test-module": result = test_module(client, demisto.getLastRun(), demisto_params) return_results(result) elif demisto.command() == "topdesk-persons-list": return_results(list_persons_command(client, demisto.args())) elif demisto.command() == "topdesk-operators-list": return_results(list_operators_command(client, demisto.args())) elif demisto.command() == "topdesk-entry-types-list": return_results(entry_types_command(client, demisto.args())) elif demisto.command() == "topdesk-call-types-list": return_results(call_types_command(client, demisto.args())) elif demisto.command() == "topdesk-categories-list": return_results(categories_command(client, demisto.args())) elif demisto.command() == "topdesk-escalation-reasons-list": return_results(escalation_reasons_command(client, demisto.args())) elif demisto.command() == "topdesk-deescalation-reasons-list": return_results(deescalation_reasons_command(client, demisto.args())) elif demisto.command() == "topdesk-archiving-reasons-list": return_results(archiving_reasons_command(client, demisto.args())) elif demisto.command() == "topdesk-subcategories-list": return_results(subcategories_command(client, demisto.args())) elif demisto.command() == "topdesk-branches-list": return_results(branches_command(client, demisto.args())) elif demisto.command() == "topdesk-incidents-list": return_results(get_incidents_list_command(client, demisto.args())) elif demisto.command() == "topdesk-assets-list": return_results(get_assets_list_command(client, demisto.args())) elif demisto.command() == "topdesk-asset-update": return_results(update_asset_command(client, demisto.args())) elif demisto.command() == "topdesk-incident-attachments-list": return_results(list_attachments_command(client, demisto.args())) elif demisto.command() == "topdesk-incident-create": return_results( incident_touch_command(client=client, args=demisto.args(), client_func=client.create_incident, action="creating") ) elif demisto.command() == "topdesk-incident-update": return_results( incident_touch_command(client=client, args=demisto.args(), client_func=client.update_incident, action="updating") ) elif demisto.command() == "topdesk-incident-escalate": return_results(incident_do_command(client, demisto.args(), "escalate")) elif demisto.command() == "topdesk-incident-deescalate": return_results(incident_do_command(client, demisto.args(), "deescalate")) elif demisto.command() == "topdesk-incident-archive": return_results(incident_do_command(client, demisto.args(), "archive")) elif demisto.command() == "topdesk-incident-unarchive": return_results(incident_do_command(client, demisto.args(), "unarchive")) elif demisto.command() == "topdesk-incident-attachment-upload": return_results(attachment_upload_command(client, demisto.args())) elif demisto.command() == "topdesk-incident-actions-list": return_results(list_actions_command(client, demisto.args())) elif demisto.command() == "fetch-incidents": last_fetch, incidents = fetch_incidents(client=client, last_run=demisto.getLastRun(), demisto_params=demisto_params) demisto.setLastRun(last_fetch) demisto.incidents(incidents) elif demisto.command() == "get-remote-data": return_results(get_remote_data_command(client, demisto.args(), demisto_params)) elif demisto.command() == "update-remote-system": return_results(update_remote_system_command(client, demisto.args(), demisto_params)) elif demisto.command() == "get-mapping-fields": return_results(get_mapping_fields_command(client)) elif demisto.command() == "get-modified-remote-data": return_results(get_modified_remote_data_command(client, demisto.args(), demisto_params)) else: raise NotImplementedError(f"command {demisto.command()} does not exist in {INTEGRATION_NAME} integration") # Log exceptions and return errors except Exception as e: return_error(f"Failed to execute {demisto.command()} command.\nError:\n{e!s}") """ ENTRY POINT """ if __name__ in ("__main__", "__builtin__", "builtins"): main()