General - Ticketing

Created: 2022-01-30 05:14:09 || Updated: 2023-01-02 06:53:44
  • Easily track service requests and issues for your clients.

There are currently two main views for tickets:

  • All tickets - tickets from all clients are shown here


  • Client-specific tickets - accessed via a client's view/page


Ticket Fields

  • Client & Contact
  • Priority (low/med/high)
  • Subject
  • Related asset
  • Description


Ticket Features

  • Agent Assignment/Re-assignment


  • Custom ticket prefix


  • Different ticket states - Open, Working, Hold, Closed


  • Time tracking


  • Public updates emailed to the client


  • Private notes


  • Merging


  • Scheduled Tickets (can only be added from a client view)


  • Invoicing - Create/update invoices with ticket references to bill for work


Email ticketing

Registered client contacts can create/update tickets via e-mail.

  • Configure at: Settings > Mail:
    • IMAP Host
    • IMAP Port
    • IMAP Encryption

  • Turn on: Settings > Ticket > Email-to-ticket parsing

  • Add a cron job to run email_parser_cron.php every few mins


Notes

  • Only supports basic authentication (no oAuth) for now - a "nice to have" in the future
  • The IMAP connection uses the same SMTP Username/Password configured for sending emails - should be configurable in future
  • Emails from unregistered contacts without a ticket reference are ignored - we plan to auto-create contacts based on a client domain in future


    API

    /api/v1/tickets

    Read - Retrieve ticket information (/read.php) (GET)

    • Default / No params - Returns all tickets
    • ticket_id - Specific ticket ID from the ITFlow database (may, but usually shouldn't, differ from ticket number)


    Invoke-RestMethod -Uri "http://127.0.0.1/itflow/api/v1/tickets/read.php?api_key=3iVeTipINS9eDGpm&ticket_id=3" | ConvertTo-Json
    {
        "success":  "True",
        "count":  1,
        "data":  [
                     {
                         "0":  "3",
                         "ticket_id":  "3",
                         "1":  "TCK-",
                         "ticket_prefix":  "TCK-",
                         "2":  "3",
                         "ticket_number":  "3",
                         "3":  null,
                         "ticket_category":  null,
                         "4":  "Computer broken",
                         "ticket_subject":  "Computer broken",

    [...]