×

Integration and API

 
tiHelpdesk provides API for integration with external applications. This includes integration with Zapier to provide the ability to trigger events and share data with over 5000 applications.
 
Integrated applications are authenticated using a token.
 

Configure Token Exchange

Request URL to exchange the credentials supplied to generate a session token.
POST: https://tikit.pro/api/me

Request Body
  • email
  • password
  • subdomain - valid subdomain for the tiHelpdesk instance.  Defined / Assigned during sign-up.
 

 

Triggers:

 
Individual triggers can be subscribed to by making a subscription request.
POST: https://tikit.pro/api/subscribe
 
URL Parameters:
  • email
 
Request Body
  • hookUrl - The url where the API notification event should be sent.
  • trigger - The name of the trigger that the subscription request is for from the list of available triggers marked in (italics) from the available triggers listed below.
  • subdomain - valid subdomain for the tiHelpdesk instance.  Defined / Assigned during sign-up.
     

 
New Ticket - (ticket_new) Occurs when a task or issue's has been created and the user credentials  for the active session has access to the task or issue.
 
Sample Output:
{
  "subject": "Sample subject of sample ticket",
  "description": "<p>Sample description of sample ticket</p>",
  "created_by": {
    "first_name": "John",
    "last_name": "Lee",
    "email": "john.lee@my.sample",
    "company_name": "Best Company"
  },
  "updated_by": null,
  "status": "Open",
  "created_at": "2021-08-31T13:54:23.000000Z",
  "updated_at": null,
  "type": "Question",
  "deleted": false,
  "ticket_number": 1,
  "assigned_to": {
    "first_name": "Sarah",
    "last_name": "Jordan",
    "email": "sarah.jordan@my.sample"
  },
  "due_date": "2022-10-15",
  "priority": "Medium",
  "product": "iFruit"
}
 

 
New reply - (reply_new) Occurs when a new reply is added to a task or issue and the task or issue has visibility to the user credentials for the active session
 
Sample Output:
{
  "ticket_subject": "Sample subject of sample ticket",
  "ticket_created_by": {
    "first_name": "John",
    "last_name": "Lee",
    "email": "john.lee@my.sample",
    "company_name": "Super Company"
  },
  "ticket_number": 4664,
  "ticket_assigned_to": {
    "first_name": "Sarah",
    "last_name": "Jordan",
    "email": "sarah.jordan@my.sample"
  },
  "reply_type": "reply",
  "reply_created_by": {
    "first_name": "Alex",
    "last_name": "Smith",
    "email": "alex.smith@my.sample"
  },
  "reply_data": "<p>Sample description of sample reply</p>",
  "reply_created_at": "2022-09-13T17:24:34.000000Z"
}
 

 
Ticket Status Changed - (ticket_status_changed) Occurs when a task or issue's status has changed and the user credentials  for the active session has access to the task or issue.
 
Sample data:
{
  "ticket_subject": "Sample subject of sample ticket",
  "ticket_created_by": {
    "first_name": "John",
    "last_name": "Lee",
    "email": "john.lee@my.sample"
  },
  "ticket_number": 4664,
  "ticket_status": "Resolving"
}
 

 
Ticket Assignment Changed - (ticket_assignment_changed) Occurs when a task or issue's staff assignment has changed and the user credentials  for the active session has access to the task or issue.
 
Sample Output:
{
  "ticket_subject": "Sample subject of sample ticket",
  "ticket_created_by": {
    "first_name": "John",
    "last_name": "Lee",
    "email": "john.lee@my.sample"
  },
  "ticket_number": 4656,
  "assigned_to": {
    "first_name": "Samuel",
    "last_name": "Gordon",
    "email": "samuel.gordon@my.sample"
  }
}
 


Actions:

 
All actions are performed by an HTTP POST to API URL endpoint and contain Authorization Bearer Token (Bearer {{authData.token}}) in the HTTP header. 
 


Create Ticket - Allows an issue or task to be created in the help desk.
POST: https://tikit.pro/api/actions/create-ticket
 
Request Body:
contact
subject
product
assigned_to
priority
body
type
created_at
due_date
status
 
Returns:
{
  "success": true,
  "ticket_number": 1234,
  "messages": {
    "ticket": "ticket created successfully"
  }
}
 


Change Ticket Assignment - Allows an issue or task staff assignment to be changed in the help desk.
POST: https://tikit.pro/api/actions/change-ticket-assignment

Request Body:
ticket_number
assign_to
 
Returns:
{
  "success": true,
  "ticket_number": 1234,
  "messages": {
    "assignment": "assignment changed successfully"
  }
}
 


Change Ticket Status - Allows an issue or task's status to be changed in the help desk.
POST: https://tikit.pro/api/actions/change-status
 
Request Body:
ticket_number
ticket_status
 
Returns:
{
  "success": true,
  "ticket_number": 1234,
  "messages": {
    "status": "status changed successfully"
  }
}
 


Create Reply - Allows a reply to be added to an  issue or task in the help desk.
POST: https://tikit.pro/api/actions/create-reply
 
Request Body:
ticket_number
reply_type
reply_created_by
reply_created_at
 
Returns:
{
  "success": true,
  "ticket_number": 1234,
  "messages": {
    "reply": "reply created successfully"
  }
}
 

 
Add Ticket Tags - Allows an array of multiple tags to be assigned to a task or issue in the help desk.
POST: https://tikit.pro/api/actions/add-tags
 
Request Body:
ticket_number
ticket_tags [array]
 
Returns:
{
  "success": true,
  "ticket_number": 1234,
  "messages": {
    "tags": "tags added successfully"
  }
}
 

 
Add Ticket Tag - Allows a single tag to be assigned to a task or issue in the help desk.
POST: https://tikit.pro/api/actions/add-tag
 
Request Body:
ticket_number
ticket_tag (string)
 
Returns:
{
  "success": true,
  "ticket_number": 1234,
  "messages": {
    "tag": "tag added successfully"
  }
}

 
Get Ticket Details - Returns the task or issues details for a specific ticket in the help desk.
GET: https://tikit.pro/api/actions/get-ticket-details
 
Request Body:
ticket_number
subdomain
 
Returns:
{
  "success": true,
  "subject": "Sample subject of sample ticket",
  "description": "<p>Sample description of sample ticket</p>",
  "created_by": {
    "first_name": "Robert",
    "last_name": "Robertson",
    "email": "robert.robertson@my.sample",
    "company_name": "super company"
  },
  "updated_by": {
    "first_name": "Robert",
    "last_name": "Robertson",
    "email": "robert.robertson@my.sample",
    "company_name": "super company"
  },
  "status": "Open",
  "created_at": "2022-07-27T13:59:06.000000Z",
  "updated_at": "2022-10-05T16:43:52.000000Z",
  "type": "Question",
  "deleted": false,
  "ticket_number": 4664,
  "assigned_to": {
    "first_name": "Alex",
    "last_name": "Smith",
    "email": "alex.smith@my.sample"
  },
  "due_date": "2022-10-25",
  "priority": "Medium",
  "ticket_tags": [
    "First Tag",
    "Second Tag"
  ],
  "product": "Super Product"
}
 

 
Get Billable Time - Returns time entries for a task or issue that are marked as "Billable." Does not return all time entries for a task or issue.
GET: https://tikit.pro/api/actions/get-billable-time
 
Request Body:
ticket_number
subdomain
 
Returns:
{
  "success": true,
  "subject": "Sample subject of sample ticket",
  "description": "<p>Sample description of sample ticket</p>",
  "accounting_number": "robert.robertson@my.sample",
  "created_by": {
    "first_name": "Robert",
    "last_name": "Rrobertson",
    "email": "robert.robertson@my.sample",
    "company_name": "super company"
  },
  "updated_by": {
    "first_name": "Robert",
    "last_name": "Rrobertson",
    "email": "robert.robertson@my.sample",
    "company_name": "super company"
  },
  "status": "Pending",
  "created_at": "2022-07-27T13:59:06.000000Z",
  "updated_at": "2022-10-05T16:43:52.000000Z",
  "type": "Question",
  "deleted": false,
  "ticket_number": 4664,
  "assigned_to": {
    "first_name": "Paul",
    "last_name": "Sampler",
    "email": "paul.sampler@my.sample"
  },
  "due_date": "2022-10-25",
  "priority": "Medium",
  "product": "Super Product",
  "ticket_tags": [
    "First Tag",
    "Second Tag"
  ],
  "billable_items_count": 1,
  "billable_items": [
    {
      "billable": true,
      "bill_code": null,
      "creator": {
        "first_name": "Robert",
        "last_name": "Robertson",
        "email": "robert.robertson@my.sample"
      },
      "minutes_logged": 240,
      "invoiced": false,
      "description": "logged time",
      "updater": {
        "first_name": "Robert",
        "last_name": "Robertson",
        "email": "robert.robertson@my.sample"
      }
    }
  ]
}