JSON API

Downloads: 126

Addon version: 6.36.3

Radiant System

  • €0.00


Use Cases | Key features | Description of methods | Package installation | ConfigurationSystem requirementsRoadmap


    Use Cases

     

     


    Key features

      Extended JSON API for OTRS allows you to integrate any third-party systems (for example, Android or iOS mobile applications) with OTRS. HTTP GET requests or HTTP POST requests in JSON format are used as interaction mechanisms.

         


        Description of methods

        Methods description for RS4OTRS_API package (OTRS 6) v6.36.2
        ============================================================
        
        Authentication on OTRS
        ======================
        
        -------------------
        Login (/auth/login)
        -------------------
        
        Required parameters:
        
        * User     - user login.
        * Password - user password.
        
        Successful answer:
        
        {
          "Response": "OK",                  # answer state
          "Message": "Successful login",     # detailed message about answer success
        
          "ChallengeToken": "8TuwMme0pnTzelSEbx81yhb6gK8O076L",      # additional token
          "OTRSAgentInterface": "KWhkYIZhLWOu9ptvPF1zpMYN9W4CuWQD"   # main token for requests to API
        
          "Me": {
            "UserLogin": "root@localhost",   # user login
            "Email": "root@localhost",       # user email
            "FirstName": "Admin",            # user first name
            "LastName": "OTRS",              # user last name
            "FullName": "Admin OTRS",        # user full name
            "ID": 1,                         # user id in OTRS
            "Avatar": "string"               # url of user image
          },
          "Settings": {                      # settings
            "Language": "string"             # selected language in OTRS
          }
        }
        
        Unsuccessful answer:
        
        {
            "Message"  : "Login failed! Your user name or password was entered incorrectly.",
            "Response" : "ERROR"
        }
        
        ---------------------
        Logout (/auth/logout)
        ---------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token
        * ChallengeToken     - additional token
        
        Successful answer:
        
        {
            "Message": "Logout successful.",
            "Response": "OK"
        }
        
        Unsuccessful answer:
        
        {
            "Message": "Session invalid. Please log in again.",
            "Response": "ERROR"
        }
        
        -----------------------------------
        Reset password (/auth/lostPassword)
        -----------------------------------
        
        Required parameters:
        
        * User  - user login.
        * Token - token from an email when we click on the link "Lost password" on the
                  login page in OTRS.
        
        Successful answer:
        
        {
            "Message": "Sent password reset instructions. Please check your email.",
            "Response" : "OK"
        }
        
        Unsuccessful answer:
        
        {
            "Message": "Feature not active.",
            "Response": "ERROR"
        }
        
        Customers and customer users (Customers, CustomerUsers)
        =======================================================
        
        ----------------------------------------------
        Get customer list (/customers/getCustomerList)
        ----------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        
        Successful answer:
        
        {
            "CustomerCompanies": [{
                "CustomerID": "ABC",
                "Name": "ABC Company"
            }, {
                "CustomerID": "RS",
                "Name": "RS Company"
            }],
            "Response": "OK"
        }
        
        -------------------------------------------------------
        Get customer user list (/customers/getCustomerUserList)
        -------------------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        
        Successful answer:
        
        {
            "CustomerUsers": [{
                "CustomerUser": "RS",
                "Lastname": "bbb",
                "Firstname": "aaa",
                "Avatar": "http://www.sg-webs.com/wp-content/uploads/2014/12/Robert-Morris-Circle.png",
                "Login": "zzbbb",
                "Email": "zzbvvvf@qqqzzz.com"
            }, {
                "CustomerUser": "ABC",
                "Lastname": "Тест",
                "Firstname": "Тестов",
                "Avatar": "http://www.sg-webs.com/wp-content/uploads/2014/12/Robert-Morris-Circle.png",
                "Login": "test",
                "Email": "testtest@teststadsasdf.com"
            },
            "Response": "OK"
        }
        
        Avatar - url stub by default.
        
        ----------------------------------------------
        Get customer user (/customers/getCustomerUser)
        ----------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * CustomerUser       - customer login.
        
        Successful answer:
        
        {
            "ValidID": 1,
            "UserEmail": "cl@rs.ngi",
            "UserComment": "",
            "UserCustomerID": "RS",
            "UserFirstname": "Ivan",
            "UserFax": "",
            "UserTitle": "RS",
            "UserLastname": "Testoviy",
            "UserZip": "",
            "UserStreet": "",
            "UserLogin": "client_001",
            "Response": "OK",
            "UserPhone": "",
            "UserMobile": "",
            "UserCity": "",
            "UserCountry": ""
        }
        
        ----------------------------------------------------
        Create customer user (/customers/createCustomerUser)
        ----------------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * Firstname          - first name.
        * Lastname           - last name.
        * CustomerID         - CustomerID.
        * Login              - login.
        * Email              - email.
        
        Unrequired parameters:
        
        * Password - password.
        * Country  - country.
        * City     - city.
        * Street   - street.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        Unsuccessful answer:
        
        {
            "Message": "Required fields is not defined: Firstname, Lastname, CustomerID, Login, Email",
            "Response": "ERROR"
        }
        
        Filters (views)
        ===============
        
        -------------------------------------------------------------------
        Get ticket parameters value fot filtering (/fitlers/getTicketViews)
        -------------------------------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        
        Unrequired parameters:
        
        * QueueID - queue id.
        
        Successful answer:
        {
            "Groups": [{
                "Items": [{
                    "ID": -1,
                    "Default": 1,
                    "Name": "Assigned to me"
                }, {
                    "ID": -2,
                    "Name": "My Queues"
                }, {
                    "ID": -3,
                    "Name": "Open"
                }, {
                    "ID": -4,
                    "Name": "Closed"
                }, {
                    "ID": -5,
                    "Name": "New notes"
                }, {
                    "ID": -6,
                    "Name": "My locked"
                }, {
                    "ID": -7,
                    "Name": "My watched"
                }],
                "Exclusive": 1,
                "Name": "View"
            }, {
                "Items": [{
                    "ID": 1,
                    "Default": 0,
                    "Name": "1 very low",
                    "Color": "#1e0000"
                }, {
                    "ID": 2,
                    "Default": 0,
                    "Name": "2 low",
                    "Color": "#b7b7b7"
                }, {
                    "ID": 3,
                    "Default": 1,
                    "Name": "3 normal",
                    "Color": "#5bb8a5"
                }, {
                    "ID": 4,
                    "Default": 0,
                    "Name": "4 high",
                    "Color": "#f9a46c"
                }, {
                    "ID": 5,
                    "Default": 0,
                    "Name": "5 very high",
                    "Color": "#f86868"
                }],
                "Name": "Priority"
            }, {
                "Items": [{
                    "ID": 6,
                    "BackgroundColor": "#b3b3b3",
                    "Abbr": "RFC",
                    "Name": "RfC",
                    "Color": "#b3b3b3"
                }, {
                    "ID": 1,
                    "BackgroundColor": "#b3b3b3",
                    "Abbr": "UNC",
                    "Name": "Unclassified",
                    "Color": "#b3b3b3"
                }, {
                    "ID": 4,
                    "BackgroundColor": "#b3b3b3",
                    "Abbr": "SER",
                    "Name": "ServiceRequest",
                    "Color": "#b3b3b3"
                }, {
                    "ID": 3,
                    "BackgroundColor": "#b3b3b3",
                    "Abbr": "INC",
                    "Name": "Incident::Major",
                    "Color": "#b3b3b3"
                }, {
                    "ID": 2,
                    "BackgroundColor": "#889988",
                    "Abbr": "INC",
                    "Name": "Incident",
                    "Color": "#5bb8a5"
                }, {
                    "ID": 5,
                    "BackgroundColor": "#eeeeee",
                    "Abbr": "PRB",
                    "Name": "Problem",
                    "Color": "#ffffff"
                }],
                "Name": "Type"
            }, {
                "Items": [{
                    "ID": 2,
                    "BackgroundColor": "#ffffff",
                    "Default": 0,
                    "OnTicketCreateScreen": 0,
                    "Name": "closed successful",
                    "Color": "#b3b3b3"
                }, {
                    "ID": 3,
                    "BackgroundColor": "#ffffff",
                    "Default": 0,
                    "OnTicketCreateScreen": 0,
                    "Name": "closed unsuccessful",
                    "Color": "#b3b3b3"
                }, {
                    "ID": 10,
                    "BackgroundColor": "#ffffff",
                    "Default": 0,
                    "OnTicketCreateScreen": 0,
                    "Name": "closed with workaround",
                    "Color": "#b3b3b3"
                }, {
                    "ID": 9,
                    "BackgroundColor": "#ffffff",
                    "Default": 0,
                    "OnTicketCreateScreen": 0,
                    "Name": "merged",
                    "Color": "#b3b3b3"
                }, {
                    "ID": 1,
                    "BackgroundColor": "#5bb8a5",
                    "Default": 0,
                    "OnTicketCreateScreen": 0,
                    "Name": "new",
                    "Color": "#ffffff"
                }, {
                    "ID": 4,
                    "BackgroundColor": "#ffffff",
                    "Default": 0,
                    "OnTicketCreateScreen": 0,
                    "Name": "open",
                    "Color": "#5bb8a5"
                }, {
                    "ID": 7,
                    "BackgroundColor": "#ffffff",
                    "Default": 0,
                    "OnTicketCreateScreen": 0,
                    "Name": "pending auto close+",
                    "Color": "#b3b3b3"
                }, {
                    "ID": 8,
                    "BackgroundColor": "#ffffff",
                    "Default": 0,
                    "OnTicketCreateScreen": 0,
                    "Name": "pending auto close-",
                    "Color": "#b3b3b3"
                }, {
                    "ID": 6,
                    "BackgroundColor": "#ffffff",
                    "Default": 0,
                    "OnTicketCreateScreen": 0,
                    "Name": "pending reminder",
                    "Color": "#b3b3b3"
                }, {
                    "ID": 5,
                    "BackgroundColor": "#ffffff",
                    "Default": 0,
                    "OnTicketCreateScreen": 0,
                    "Name": "removed",
                    "Color": "#b3b3b3"
                }],
                "Name": "State"
            }, {
                "Items": [{
                    "Value": "EscalationSolutionTime",
                    "Name": "By time to done"
                }, {
                    "Value": "Age",
                    "Name": "By creating date"
                }, {
                    "Value": "Priority",
                    "Name": "By priority"
                }, {
                    "Value": "Changed",
                    "Name": "By last update"
                }],
                "Exclusive": 1,
                "Name": "Sort"
            }],
            "Response": "OK"
        }
        
        Queues
        ======
        
        -------------------------------------
        Get queue list (/queues/getQueueList)
        -------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        
        Successful answer:
        
        {
            "Queues": [{
                "ID": 1,
                "Title": "Postmaster"
            }, {
                "ID": 4,
                "Title": "Misc"
            }, {
                "ID": 3,
                "Title": "Junk"
            }, {
                "ID": 2,
                "Title": "Raw"
            }],
            "QueueTree": [{
                "FullTitle": "Postmaster",
                "ID": 1,
                "Childs": [],
                "Title": "Postmaster"
            }, {
                "FullTitle": "Raw",
                "ID": 2,
                "Childs": [],
                "Title": "Raw"
            }, {
                "FullTitle": "Junk",
                "ID": 3,
                "Childs": [],
                "Title": "Junk"
            }, {
                "FullTitle": "Misc",
                "ID": 4,
                "Childs": [],
                "Title": "Misc"
            }],
            "Response": "OK"
        }
        
        Services
        ========
        
        -------------------------------------------
        Get service list (/services/getServiceList)
        -------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        
        Unrequired parameters:
        
        * CustomerUserLogin - customer user login.
        
        Successful answer:
        
        {
            "Services": [{
                "ID": 1,
                "Title": "FooBar"
            }],
            "Response": "OK"
        }
        
        Settings
        ========
        
        ---------------------------------------------
        Get language list (/settings/getLanguageList)
        ---------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        
        Successful answer:
        
        {
            "Languages": [{
                "ID": "hi",
                "Name": "हिन्दी - Хинди"
            }, {
                "ID": "es_MX",
                "Name": "Español (México) - Испанский (Мексика)"
            }, {
                "ID": "tr",
                "Name": "Türkçe - Турецкий"
            }, {
                "ID": "es",
                "Name": "Español - Испанский"
            }, {
                "ID": "pt_BR",
                "Name": "Português Brasileiro - Португальский (Бразилия)"
            }
            ...
            ],
            "Response": "OK"
        }
        
        -----------------------------------------------------------------------------
        Set token for Android push notifications (/settings/setPushNotificationToken)
        -----------------------------------------------------------------------------
        
        It doesn't work without a package for android notifications! 
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * Token              - token from Android notification library.
        
        {
            "Response": "OK"
        }
        
        SLA
        ===
        
        ------------------------------
        Get SLA list (/sla/getSLAList)
        ------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * ServiceID          - service id.
        
        Successful answer:
        
        {
            "SLAList": [{
                "ID": 1,
                "Title": "BarFoo"
            }],
            "Response": "OK"
        }
        
        Ticket and articles
        ===================
        
        ----------------------------------------
        Get ticket list (/tickets/getTicketList)
        ----------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        
        Unrequired parameters:
        
        * Count             - just to get ticket count (1|0)
        * ViewID            - view ID (for filtering).
        * SortBy            - field list for sorting (array of names)
        * OrderBy           - field list for sorting order (array of names)
        * FullTextSearch    - string for searching in Subject, Body, From, To, Cc.
        * TicketID          - ticket id.
        * TicketNumber      - ticket number.
        * Title             - title.
        * Queues            - queue list (array of names).
        * QueueIDs          - queue list (array of numbers).
        * Types             - type list (array of names).
        * TypeIDs           - type list (array of numbers).
        * States            - state list (array of names).
        * StateIDs          - state list (array of numbers).
        * StateType         - state type: "Open", “Closed”.
        * Priorities        - priority list (array of names).
        * PriorityIDs       - priority list (array of numbers).
        * Services          - service list (array of names).
        * ServiceIDs        - service list (array of numbers).
        * SLAs              - SLA list (array of names).
        * SLAIDs            - SLA list (array of numbers).
        * Locks             - lock list (array of names).
        * LockIDs           - lock list (array of numbers).
        * OwnerIDs          - owner list (array of numbers).
        * ResponsibleIDs    - responsible list (array of numbers).
        * WatchUserIDs      - watch user list (array of number).
        * CustomerID        - customer id.
        * CustomerUserLogin - customer user login.
        * From              - from.
        * To                - to.
        * Cc                - copy.
        * Subject           - subject.
        * Body              - body. 
        * Limit             - limit.
        * Offset            - offset.
        
        Successful answer:
        
        {
            "NeedTokenUpdate": 1,     # Need to set a new token for android push
                                      # notification.
            "Response": "OK",
            "Tickets": [{
                "Seen": 1,
                "Age": 6624195,
                "PriorityID": 3,
                "ServiceID": null,
                "Type": "Incident",
                "CreatedServer": "2019-06-16 00:23:53",
                "Responsible": "root@localhost",
                "StateID": 4,
                "ResponsibleID": 1,
                "ChangeBy": 1,
                "EscalationTime": 0,
                "HasWatch": 0,
                "UntilTimeDateUnix": 0,
                "Changed": "2019-06-16 04:23:59 (Europe/Moscow)",
                "OwnerID": 1,
                "RealTillTimeNotUsed": 0,
                "GroupID": 1,
                "Owner": "root@localhost",
                "CustomerID": null,
                "TypeID": 2,
                "Created": "2019-06-16 04:23:53 (Europe/Moscow)",
                "UntilTimeDate": 0,
                "Priority": "3 normal",
                "UntilTime": 0,
                "EscalationUpdateTime": 0,
                "CustomerUserLastname": null,
                "Queue": "Raw",
                "QueueID": 2,
                "State": "open",
                "Title": "vxcvzv",
                "ChangedServer": "2019-06-16 00:23:59",
                "CreateBy": 1,
                "LinkCount": 0,
                "TicketID": 266,
                "CustomerUserFirstname": null,
                "StateType": "open",
                "EscalationResponseTime": 0,
                "UnlockTimeout": 0,
                "EscalationSolutionTime": 0,
                "LockID": 1,
                "TicketNumber": 2019061665000017,
                "ArchiveFlag": "n",
                "CreateTimeUnix": 1560633833,
                "Lock": "unlock",
                "SLAID": null,
                "WatcherCount": 0,
                "CustomerUserID": null
            }]
        }
        
        ------------------------------------------
        Update ticket title (/tickets/updateTitle)
        ------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * Title              - ticket title. 
        * TicketID           - ticket id.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        ------------------------------------------
        Update ticket queue (/tickets/updateQueue)
        ------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * Queue              - queue or
        * QueueID            - queue id.
        * TicketID           - ticket id.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        -----------------------------------------
        Update ticket type (/tickets/updateType)
        -----------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * Type               - type or
        * TypeID             - type id.
        * TicketID           - ticket id.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        ----------------------------------------------
        Update ticket service (/tickets/updateService)
        ----------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * Service            - service or
        * ServiceID          - service id.
        * TicketID           - ticket id.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        --------------------------------------
        Update ticket SLA (/tickets/updateSLA)
        --------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * SLA                - SLA or
        * SLAID              - SLA ID.
        * TicketID           - ticket id.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        ------------------------------------------------
        Update ticket customer (/tickets/updateCustomer)
        ------------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * CustomerID         - customer.
        * CustomerUserID     - customer user login.
        * TicketID           - ticket id.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        -------------------------------------------------------
        Update ticket pending time (/tickets/updatePendingTime)
        -------------------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * UntilTimeDateUnix  - unix time or
        * Year               - year.
        * Month              - month.
        * Day                - day.
        * Hour               - hour.
        * Minute             - minute.
        * TicketID           - ticket id.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        ----------------------------------------
        Lock/unlock ticket (/tickets/updateLock)
        ----------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * Lock               - lock or
        * LockID             - lock id.
        * TicketID           - ticket id.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        -------------------------------------------------------
        Update ticket archive flag (/tickets/updateArchiveFlag)
        -------------------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * ArchiveFlag        - archive flag.
        * TicketID           - ticket id.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        ------------------------------------------
        Update ticket state (/tickets/updateState)
        ------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * State              - state or
        * StateID            - state id.
        * TicketID           - ticket id.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        ------------------------------------------
        Update ticket owner (/tickets/updateOwner)
        ------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * NewUser            - new owner login or
        * NewUserID          - new owner login ID.
        * TicketID           - ticket id.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        -----------------------------------------------------------
        Update ticket responsible user (/tickets/updateResponsible)
        -----------------------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * NewUser            - new responsible user login or
        * NewUserID          - new responsible user ID.
        * TicketID           - ticket id.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        ------------------------------------------------
        Update ticket priority (/tickets/updatePriority)
        ------------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * Priority           - priority or
        * PriorityID         - priority id.
        * TicketID           - ticket id.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        -----------------------------------------------
        Mark ticket as seen (/tickets/markTicketAsSeen)
        -----------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * Seen               - is ticket seen.
        * TicketID           - ticket id
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        -------------------------------------------------
        Mark article as seen (/tickets/markArticleAsSeen)
        -------------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * Seen               - is article seen.
        * ArticleID          - article id.
        
        Unrequired parameters:
        
        * TicketID           - ticket id
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        ----------------------------------------------
        Get ticket article list (/tickets/getArticles)
        ----------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * TicketID           - ticket id.
        * Count              - just article count.
        
        Unrequired parameters:
        
        * Order - ASC | DESC
        * Limit - limit.
        * Page  - page of article result set.
        
        Successful answer (article count):
        
        {
            "Response": "OK",
            "Count": 5
        }
        
        Successful answer:
        
        {
            "Articles": [{
                "Seen": 1,
                "Age": 6627369,
                "PriorityID": 3,
                "ContentType": "text/plain; charset=utf-8",
                "ServiceID": "",
                "StateID": 4,
                "Body": "asdfasdf",
                "EscalationTime": 0,
                "CreateTime": "2019-06-16 04:23:53 (Europe/Moscow)",
                "Changed": "2019-06-16 00:23:59",
                "OwnerID": 1,
                "CommunicationChannelID": 2,
                "Owner": "root@localhost",
                "Created": "2019-06-16 04:23:53 (Europe/Moscow)",
                "ArticleID": 341,
                "QueueID": 2,
                "ReplyTo": "",
                "HTMLBody": {
                    "ContentAlternative": "",
                    "ContentID": "",
                    "Disposition": "inline",
                    "ContentType": "text/html; charset=\"utf-8\"",
                    "Filename": "file-2",
                    "FilesizeRaw": 202,
                    "FileID": 1
                },
                "CreateBy": 1,
                "TicketID": 266,
                "CreateTimeServer": "2019-06-16 00:23:53",
                "ChangeTime": "2019-06-16 04:23:53 (Europe/Moscow)",
                "Cc": "",
                "EscalationResponseTime": 0,
                "UnlockTimeout": 0,
                "IncomingTime": 1560644633,
                "Charset": "utf-8",
                "ArchiveFlag": "n",
                "Bcc": "",
                "CustomerUserID": null,
                "Attachments": [],
                "Type": "Incident",
                "ContentCharset": "utf-8",
                "Responsible": "root@localhost",
                "SenderType": "customer",
                "ChangeTimeServer": "2019-06-16 00:23:53",
                "ResponsibleID": 1,
                "ChangeBy": 1,
                "MimeType": "text/plain",
                "Subject": "vxcvzv",
                "InReplyTo": "",
                "RealTillTimeNotUsed": 0,
                "GroupID": 1,
                "CustomerID": null,
                "MessageID": "",
                "TypeID": 2,
                "To": "Raw",
                "Priority": "3 normal",
                "Avatar": "https://www.shareicon.net/data/128x128/2015/09/18/103160_man_512x512.png",
                "UntilTime": 0,
                "EscalationUpdateTime": 0,
                "Queue": "Raw",
                "SenderTypeID": 3,
                "ToRealname": "Raw",
                "State": "open",
                "Title": "vxcvzv",
                "CreatedTimeUnix": 1560633833,
                "References": "",
                "ArticleType": "phone",
                "StateType": "open",
                "IsVisibleForCustomer": 1,
                "FromRealname": "Иван Тестовый",
                "EscalationSolutionTime": 0,
                "LockID": 1,
                "TicketNumber": 2019061665000017,
                "ArticleNumber": 1,
                "Lock": "unlock",
                "SLAID": "",
                "From": "\"Иван Тестовый\" <iv@test.com>",
                "Direction": "Internal"
            }],
            "Response": "OK"
        }
        
        Direction:
        
        * Internal for internal messages.
        * Incoming for customer messages.
        * Outgoing for others (agent, system).
        
        -------------------------------------
        Create ticket (/tickets/createTicket)
        -------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token
        * Title              - title.
        * QueueID            - queue id.
        * PriorityID         - priority id.
        * Body               - body.
        
        Unrequired parameters:
        
        * TypeID            - type id.
        * ServiceID         - service id.
        * SLAID             - SLA id.
        * ArticleType       - article type (Phone by default, Email, Chat, Internal).
        * SenderType        - sender type (agent, system, customer by default).
        * OwnerID           - owner agent id.
        * Lock              - lock.
        * To                - to.
        * Cc                - copy.
        * ReplyTo           - in reply to.
        * ContentType       - text/plain; charset=utf-8
        * CustomerID        - customer.
        * CustomerUserID    - customer user id.
        * StateID           - state id.
        * UntilTimeDateUnix - pending time in unix-format.
        * Year              - pending year.
        * Month             - pending month.
        * Day               - pending day.
        * Hour              - pending hour.
        * Minute            - pending minute.
        * Estimated         - spent time.
        * LockByOwner       - lock by owner (1|0).
        
        Successful answer:
        
        {
            "Response": "OK",
            "TicketID": 238
        }
        
        ---------------------------------------
        Create article (/tickets/createArticle)
        ---------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token
        * TicketID           - ticket id.
        * Subject            - subject.
        * Body               - body.
        
        Unrequired parameters:
        
        * ArticleType       - article type (Phone by default, Email, Chat, Internal).
        * SenderType        - sender type (agent, system, customer by default).
        * OwnerID           - owner agent id.
        * Lock              - lock.
        * To                - to.
        * Cc                - cc.
        * ReplyTo           - in reply to.
        * ContentType       - text/plain; charset=utf-8
        * Estimated         - spent time.
        * State             - state.
        * StateID           - state id.
        * UntilTimeDateUnix - pending time in unix-format.
        * Year              - pending year.
        * Month             - pending month.
        * Day               - pending day.
        * Hour              - pending hour.
        * Minute            - pending minute.
        
        Successful answer:
        
        {
            "Response": "OK",
            "ArticleID": 9382
        }
        
        ------------------------------------------------------------------
        Create attachment of ticket or article (/tickets/createAttachment)
        ------------------------------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token
        * TicketID           - ticket id or
        * ArticleID          - article id.
        * Content            - content in base64 format.
        * ContentType        - content type.
        * Filename           - file name.
        
        Successful answer:
        
        {
            "Response": "OK",
            "ContentAlternative": "",
            "ContentID": "",
            "Filesize": "4.6 KB",
            "ContentType" : "application/pdf",
            "FilesizeRaw" : 4722,
            "Disposition  : "attachment",
            "FileID": 3
            
        }
        
        -----------------------------------
        Watch ticket (/tickets/watchTicket)
        -----------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token.
        * TicketID           - ticket id.
        * Subscribe          - 1|0.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        -------------------------------------
        Update ticket (/tickets/updateTicket)
        -------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token
        * TicketID           - ticket id.
        
        Unrequired parameters:
        
        * Title              - title.
        * Queue              - queue or
        * QueueID            - queue id.
        * Type               - type or
        * TypeID             - type id.
        * Service            - service or
        * ServiceID          - service id.
        * SLA                - SLA or
        * SLAID              - SLA ID.
        * CustomerID         - customer.
        * CustomerUserID     - customer user login.
        * Lock               - lock.
        * LockID             - lock id. 
        * ArchiveFlag        - archive flag.
        * State              - state or
        * StateID            - state id.
        * NewOwner           - new owner or
        * NewOwnerID         - new owner id.
        * NewResponsibleUser - new responsible user or
        * NewResponsibleUserID - new responsible user id.
        * Priority           - priority or
        * PriorityID         - priority id.
        * UntilTimeDateUnix - pending time in unix-format.
        * Year              - pending year.
        * Month             - pending month.
        * Day               - pending day.
        * Hour              - pending hour.
        * Minute            - pending minute.
        
        Successful answer:
        
        {
            "Response": "OK"
        }
        
        Unsuccessful answer:
        
        {
            "Response": "ERROR",
            "Message": "The follow parameters wasn't updated: Title, SLA ..."
        }
        
        In case of failed update some fields then the list of them will be returned.
        The method udateTicket is a wrapper for corresponded method such as
        updateTicket, updateQueue etc. 
        
        Agents
        ======
        
        ----------------------------------
        Get user list (/users/getUserList)
        ----------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token
        
        Unrequired parameters:
        
        * QueueID - queue id.
        
        Successful answer:
        
        {
            "Users": [{
                "UserTicketOverviewSmallPageShown": 25,
                "UserFAQJournalOverviewSmallPageShown": 25,
                "UserStoredFilterColumns-AgentTicketStatusView": "{}",
                "UserTitle": null,
                "UserFAQOverviewSmallPageShown": 25,
                "UserLastname": "OTRS",
                "UserTicketOverviewMediumPageShown": 20,
                "UserTicketOverviewPreviewPageShown": 15,
                "CreateTime": "2018-02-27 09:05:43",
                "UserLogin": "root@localhost",
                "UserLanguage": "ru",
                "UserSurveyOverviewSmallPageShown": 25,
                "UserSystemConfigurationCategory": "",
                "UserFullname": "Admin OTRS",
                "UserLastLoginTimestamp": "2019-09-02 11:22:56",
                "UserLastLogin": 1567423376,
                "UserChangeOverviewSmallPageShown": 25,
                "AdminDynamicFieldsOverviewPageShown": 25,
                "ValidID": 1,
                "UserEmail": "root@localhost",
                "UserRefreshTime": 0,
                "UserID": 1,
                "UserStoredFilterColumns-AgentTicketEscalationView": "{}",
                "UserCreateNextMask": "",
                "UserFirstname": "Admin",
                "UserPw": "9334e4ad11f971db5b922cabb1646e8bc9610a363fe2985634d52af7c7da6040",
                "ChangeTime": "2018-02-27 09:05:43",
                "AdminCommunicationLogPageShown": 25,
                "UserTicketOverviewAgentCustomerSearch": "Small",
                "UserConfigItemOverviewSmallPageShown": 25,
                "UserTicketOverviewAgentTicketEscalationView": "Small",
                "UserAuthBackend": "",
                "UserTicketOverviewAgentTicketStatusView": "Small",
                "UserLoginFailed": 0,
                "UserTimeZone": "Europe/Moscow"
            }],
            "Count": 1,
            "Response": "OK"
        }
        
        ------------------------------------------------------------------
        Get user groups and queues permissions (/users/getUserPermissions)
        ------------------------------------------------------------------
        
        Required parameters:
        
        * OTRSAgentInterface - main token
        
        {
            "Groups": {
                "admin": {
                    "ID": 2,
                    "Permissions": ["rw"],
                    "Name": "admin",
                    "Group": {
                        "ID": 2,
                        "Name": "Raw"
                    }
                },
                "users": {
                    "ID": 1,
                    "Permissions": ["rw"],
                    "Name": "users",
                    "Group": {
                        "ID": 1,
                        "Name": "Postmaster"
                    }
                },
                ...
            },
            "Response": "OK"
        }

         


        Package installation

        Please use the following URL to install the package utilizing the Admin Interface (please note that you need to be in the "admin" group).

        http://your-server/otrs/index.pl?Action=AdminPackageManager 

        The steps for installing the package are described in the official OTRS instructions for the Administrator.

         

        For install completion in the file zzz_otrs.conf inside section <Location /otrs> you should write:

        RewriteEngine on
        RewriteRule "/api/(\w+)/(\w+)" "/otrs/json.pl?Action=$1&Subaction=$2" [QSA,L]

        and restart Apache.

        Most Apache installations have a conf.d directory included. On Linux systems you can usually find this directory under /etc/apache or /etc/apache2. Log in as root, change to the conf.d directory and link the appropriate template in /opt/otrs/scripts/apache2-httpd.include.conf to a file called zzz_otrs.conf in the Apache configuration directory (to make sure it is loaded after the other configurations). https://doc.otrs.com/doc/manual/admin/6.0/en/html/manual-installation-of-otrs.html

         


        Configuration

         

         


        System requirements

        Minimal requirements to hardware for OTRS:

        • Processor 3 GHz Xeon or comparable
        • RAM 8 GB RAM
        • Disk space 256 GB

        Software requirements:

        • OTRS Community Edition 6.0
        • Apache module "mod_perl"
        • OTRS over https


          Roadmap

          # 6.36.3 2020-03-23
            - (error) fixed error showing of invalid ChallengeToken for /logout from OTRS.
            - (error) fixed errors while addressing to Android application functionality.

          # 6.36.2 2020-03-18
            - (new) taken away mobile application settings.

          # 6.36.1 2020-03-17
            - (edit) take into account ticket lock while queue update.
            - (edit) license updated.

          # 6.36.0 2020-03-14
            - (new) added LockByOwner for /tickets/createTicket.
            - (new) added /users/getUserPermissions.
            - removed notifications for Android.
            - (new) update ticket queue can only owner.

          # 6.35.208 2020-03-11
            - (new) show user groups (Groups) for /auth/login response.

          # 6.35.207 2020-03-10
            - (new) added Direction field for messages of /getArticles.

          # 6.35.206 2020-03-04
            - (new) added field IsVisible for State in response of /getTicketViews,
                which can be Open, Closed for StateType for /getTicketList.
            - (new) added field StateType.