OTRS is a modern, flexible ticket and process management system.
Connect OTRS with Devo SOAR
Navigate to Automations > Integrations.
Search for OTRS.
Click Details, then the + icon. Enter the required information in the following fields.
Label: Enter a connection name.
Reference Values: Define variables here to templatize integration connections and actions. For example, you can use https://www.{{hostname}}.com where, hostname is a variable defined in this input. For more information on how to add data, see 'Add Data' Input Type for Integrations.
Verify SSL: Select option to verify connecting server's SSL certificate (Default is Verify SSL Certificate).
Remote Agent: Run this integration using the Devo SOAR Remote Agent.
Server URL: The Server URL to connect to the OTRS.
Server Time Zone (Optional): The Server time zone to connect to the OTRS. Example: -04:00.If provided, This time will be added to created after/before input parameter of ticket get action.
Username: The Username to connect to the OTRS.
Password: The Password to connect to the OTRS.
After you've entered all the details, click Connect.
Actions for OTRS
Ticket Create
Create a ticket and return the created ticket id.
Input Field
Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.
Input Name | Description | Required |
---|---|---|
Title | Jinja-templated text containing title for ticket. | Required |
Queue | Jinja-templated text containing queue for ticket. | Required |
Customer User | Jinja-templated text containing value for Customer User. | Required |
State | Jinja-templated text containing State to lookup. (Default is NEW) | Optional |
Priority | Jinja-templated text containing priority to lookup. (Default is NORMAL) | Optional |
Type | Jinja-templated text containing type for ticket. | Optional |
Article Subject | Jinja-templated text containing article subject for ticket. | Optional |
Article Body | Jinja-templated text containing article body for ticket. | Optional |
Article Content Type | Jinja-templated text containing article content type for ticket (Default is | Optional |
Attachment Details | Jinja-templated text containing File names and File IDs in JSON format (file_name key is optional). Example: [{"file_name": "{{file_name_1}"}, "file_id": "{{file_id_1}}"}, {"file_id": "{{file_id_2}}"}] | Optional |
Dynamic Field | Jinja-templated text containing the Dynamic Field parameter of Ticket. Example: {{otrs_dynamic_field}} | Optional |
Number of retries required | Number of retries required (Default is 2) | Optional |
Output
JSON containing the following items:
``` {json}{ "ticket_id": "606028", "error": null, "has_error": false }
## Ticket Create (Deprecated) Create a ticket and return the created ticket ID. ### Input Field Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection. | Input Name | Description | Required | | :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- | | Title | [Jinja-templated](doc:jinja-template) text containing title for a ticket. | Required | | Queue | [Jinja-templated](doc:jinja-template) text containing queue for a ticket. | | | Customer User | Column name from the parent table to lookup value for Customer User. | | | State | Select a value for State to lookup. (Default is NEW). | | | Priority | Select a value for priority to lookup. (Default is NORMAL). | | | Type | [Jinja-templated](doc:jinja-template) text containing type for a ticket. | Optional | | Article Subject | [Jinja-templated](doc:jinja-template) text containing article subject for a ticket. | Optional | | Article Body | [Jinja-templated](doc:jinja-template) text containing article body for a ticket. | Optional | | Attachment Details | [Jinja-templated](doc:jinja-template) text containing File names and File IDs in JSON format (file_name key is optional). Example: [{"file_name": "{{file_name_1}"}, "file_id": "{{file_id_1}}"}, {"file_id": "{{file_id_2}}"}]. | Optional | | Dynamic Field | [Jinja-templated](doc:jinja-template) text containing the Dynamic Field parameter of Ticket. Example: {{otrs_dynamic_field}} | Optional | | Number of retries required | Number of retries required to create a ticket. | Optional | ### Output A JSON object containing multiple rows of result: - has_error: True/False - error: message/null - result: Ticket ID. ``` {json}{ "ticket_id": "606028", "error": null, "has_error": false }
Ticket Update
Update a ticket and return the updated ticket id.
Input Field
Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.
Input Name | Description | Required |
---|---|---|
Ticket ID | Jinja-templated text containing coma separated Ticket ID. | Required |
Title | Jinja-templated text containing title for ticket. | Optional |
Queue | Jinja-templated text containing queue for ticket. | Optional |
State | Jinja-templated text containing State to lookup. | Optional |
Priority | Jinja-templated text containing priority to lookup. | Optional |
Service | Jinja-templated text containing service to lookup. | Optional |
Type | Jinja-templated text containing type for ticket. | Optional |
Article Subject | Jinja-templated text containing article subject for ticket. | Optional |
Article Body | Jinja-templated text containing article body for ticket. | Optional |
Article Content Type | Jinja-templated text containing article content type for ticket (Default is | Optional |
Attachment Details | Jinja-templated text containing File names and File IDs in JSON format (file_name key is optional). Example: [{"file_name": "{{file_name_1}"}, "file_id": "{{file_id_1}}"}, {"file_id": "{{file_id_2}}"}] | Optional |
Dynamic Field | Jinja-templated text containing the Dynamic Field parameter of Ticket. Example: {{otrs_dynamic_field}} | Optional |
Number of retries required | Number of retries required (Default is 2) | Optional |
Output
JSON containing the following items:
``` {json}{ "ticket_id": "606028", "error": null, "has_error": false }
## Ticket Update (Deprecated) Update a ticket and return the updated ticket ID. ### Input Field Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection. | Input Name | Description | Required | | :------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------- | | Ticket ID | [Jinja-templated](doc:jinja-template) text containing comma-separated Ticket ID. | Required | | Title | [Jinja-templated](doc:jinja-template) text containing title for a ticket. | Required | | Queue | [Jinja-templated](doc:jinja-template) text containing queue for a ticket. | Required | | State | Select a value for State to lookup. (Default is NEW). | Optional | | Priority | Select a value for priority to lookup. (Default is NORMAL). | Optional | | Type | [Jinja-templated](doc:jinja-template) text containing type for a ticket. | Optional | | Article Subject | [Jinja-templated](doc:jinja-template) text containing article subject for a ticket. | Optional | | Article Body | [Jinja-templated](doc:jinja-template) text containing article body for a ticket. | Optional | | Attachment Details | [Jinja-templated](doc:jinja-template) text containing File names and File IDs in JSON format (file_name key is optional). Example: [{"file_name": "{{file_name_1}"}, "file_id": "{{file_id_1}}"}, {"file_id": "{{file_id_2}}"}]. | Optional | | Dynamic Field | [Jinja-templated](doc:jinja-template) text containing the Dynamic Field parameter of Ticket. Example: {{otrs_dynamic_field}} | Optional | | Number of retries required | Number of retries required to update a ticket. | Optional | ### Output A JSON object containing multiple rows of result: - has_error: True/False - error: message/null - result: Ticket ID. ``` {json}{ "ticket_id": "606028", "error": null, "has_error": false }
Ticket Get
Return ticket entries by ID.
Input Field
Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection.
Input Name | Description | Required |
---|---|---|
Ticket ID | Jinja-templated text containing Ticket ID. | |
Include Articals | Select option to request OTRS to include all Articles (Default is 'True'). | Optional |
Include Attachments | Select option to request OTRS to include all Attachments (Default is 'True'). | Optional |
HTML Body As Attachment | Select option to request OTRS for 'HTML body as attachment' , If enabled the HTML body version of each article is added to the attachments (Default is 'True'). | Optional |
Download Attachments | Automatically download attachments.Doing so may significantly increase processing time (Default is 'True' to get attachment). | Optional |
Article Sender Type | Jinja-templated text containing article sender type. Example: {{article_sender_type_column}}. | Optional |
Article Order | Jinja-templated text containing order of the articles. Example: {{article_order_column}}. | Optional |
Article Limit | Maximum numbers of the articles to return per row. | Optional |
Number of retries required | Number of retries required to get a ticket. | Optional |
Output
A JSON object containing multiple rows of result:
has_error: True/False
error: message/null
result: Ticket Details.
``` {json}{ "result": { "py/object": "pyotrs.lib.Ticket", "fields": { "Age": 25586, "PriorityID": "1", "ServiceID": "", "Type": "100 - ****", "Responsible": "root@localhost", "StateID": "4", "ResponsibleID": "1", "ChangeBy": "402", "EscalationTime": "0", "OwnerID": "402", "Changed": "2021-01-04 07:23:08", "TimeUnit": 0, "RealTillTimeNotUsed": "0", "GroupID": "26", "Owner": "abc_abc", "CustomerID": "CID", "TypeID": "12", "Created": "2021-01-04 04:19:47", "Priority": "1 very low", "UntilTime": 0, "EscalationUpdateTime": "0", "Queue": "Q_CUOL_Srbvbte", "QueueID": "21", "State": "open", "Title": "title", "CreateBy": "402", "TicketID": "605361", "StateType": "open", "UnlockTimeout": "1609759169", "EscalationResponseTime": "0", "EscalationSolutionTime": "0", "LockID": "1", "TicketNumber": "7605358", "ArchiveFlag": "n", "Lock": "unlock", "SLAID": "", "CustomerUserID": "someone@some.com" }, "tid": 605361, "articles": [], "dynamic_fields": [ { "py/object": "pyotrs.lib.DynamicField", "name": "01a", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "02caa", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "0ctos", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "0on", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "uiid", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "hgjg", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "hghjg", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "786hgg", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "hggjh", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "hggvbhj", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "ghjg", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "fyuffj", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "gfgghfh", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "dfhgfcgjvj", "value": null, "search_patterns": [ null ], "search_operator": "Equals" }, { "py/object": "pyotrs.lib.DynamicField", "name": "dfh", "value": null, "search_patterns": [ null ], "search_operator": "Equals" } ] }, "error": null, "has_error": false }
## Ticket Search Return a list of ticket ids. ### Input Field Choose a connection that you have previously created and then fill in the necessary information in the following input fields to complete the connection. | Input Name | Description | Required | | :---------------------------- | :--------------------------------------------------------------------------------------------------------------------- | :------- | | Title | [Jinja-templated](doc:jinja-template) text containing title for ticket. | Optional | | Queue | [Jinja-templated](doc:jinja-template) text containing comma separated list of queues for tickets to search. | Optional | | Queue ID | [Jinja-templated](doc:jinja-template) text containing comma separated list of queue ids for tickets to search. | Optional | | Type | JJinja-templated text containing comma separated list of types for tickets to search. | Optional | | Type ID | Jinja-templated text containing comma separated list of type ids for tickets to search. | Optional | | State | Jinja-templated text containing comma separated list of states for tickets to search. | Optional | | State ID | Jinja-templated text containing comma separated list of state ids for tickets to search. | Optional | | State Type | Jinja-templated text containing comma separated list of state types for tickets to search. | Optional | | State Type ID | Jinja-templated text containing comma separated list of state type ids for tickets to search. | Optional | | Created After | Jinja-templated text containing datetime to search tickets created after specified time. Example: 2016-01-09 00:00:01 | Optional | | Created Before | Jinja-templated text containing datetime to search tickets created before specified time. Example: 2021-02-08 00:00:01 | Optional | | Created Within Past X Minutes | Number of minutes to search tickets created less than X minutes ago. Example: 120 | Optional | | Number of retries required | Number of retries required to search tickets. | Optional | ### Output A JSON object containing multiple rows of result: - has_error: True/False - error: message/null - result: List Of Ticket IDs. ``` {json}{ "error": null, "has_error": false, "result": "123456" }
Release Notes
v2.0.0
- Updated architecture to support IO via filesystemv1.3.1
-Deprecated old version of
Ticket Create
andTicket Update
actions.Change
Customer User
,State
andPriority
fields to Jinja-templated fields inTicket Create
andTicket Update
actions.Added optional field
Service
inTicket Update
action.v1.2.9
- Fixed timeout bug.v1.2.8
- Bug Fix - Resolved the default value error in dynamic field.v1.2.7
- Added dynamic field parameter inTicket Create
andTicket Update
actions.