Overview: Wavity Open API
Wavity's Open APIs follow theREpresentational State Transfer (REST) architecture, enabling you to perform standard operations such as reading, updating, adding, or deleting data from your helpdesk system.
What can I do with the Wavity Open API?
With Open APIs, you can do the following:
· View and explore tickets and its details.
· Create new tickets and update the details of existing ones.
· Apply Filters and get only the data that you want.
· Add or view comments for a given ticket.
API Endpoints and SSL:
API endpoints are mapped to your account domain:
https://{tenant}.wavity.domain/openapi
Authentication:
How does it work? Who can access my helpdesk? Can everybody see my data?
Authentication is required to access our Open APIs. Before you can set the priority of a ticket or create a new ticket or use any of the APIs listed above, you need to "authenticate your ID" or "login" in the same way as you login into your helpdesk's web portal.
Wavity supports four types of authentication mechanisms for APIs: Bearer, OAuth 2.0 Grant Types authentication (including Authorization Code, Client Credentials & Password Credentials).
How to create a Bearer Token in Wavity?
Creating a Bearer Token in Wavity
1. Log into Wavity application
2. Click on the profile picture
3. Choose Integrations
4. Navigate to token section and click on create.
5. Enter title, Select user and expiration and click on create button.
6. Token will be generated in the token field. You can copy the bearer token by clicking on the ‘Copy’ symbol as shown in below image.
How do I access the information? What are the resources available via the API?
Every piece of information or data—such as a customer's ID or the priority of a specific ticket—is assigned a unique identifier, or "URI." To access this data from your helpdesk, whether through your smartphone app or a third-party service, you will need this unique identifier.
All URIs follow a specific format and that format is:
http://your_helpdesk_domain_name/openapi
For example: If you are Rob Anderson and you are managing tickets via your Wavity portal "techie.wavity.com",
For tickets, it would be: techie.wavity.com/openapi/tickets
Note:
We have shortened API resource URL throughout this document. Prefix your support domain name to the resource handle.
Example: /tickets is actually ---> http://{tenant}.wavity.{domain}/openapi/Tickets
What API commands are used by Wavity?
Wavity APIs have been implemented as plain XML or JSON over HTTP and use the following REST Commands:
Will everyone have the same access rights?
No, everyone will not have the same access rights. Your ability to access data depends on the permissions available for your Wavity profile. If your Wavity Agent Role is "Newbie Agent" who is not allowed to answer to tickets, but is only allowed to view them, then the APIs will restrict you from answering and you'll only be able to view the tickets.
Pagination:
Responses for API that return a list, like ticket listing are paginated. To scroll through the responses, add GET request parameter page=[number] to your request. Page number starts with 1.
Ticket:
This section lists all API that can be used to create, edit or otherwise manipulate tickets. If you wish to create Tags to better identify tickets, this section also lists the APIs for creating and manipulating those tags.
Create a Ticket:
This API helps you to create a new ticket in your help desk.
post: /tickets
Request
{
"subject": "Issue with my laptop",
"description": "Not booting",
"status": "New",
"priority": "High",
"Tags": "Issue"
}
Response
{
"id": "TKT101",
"subject": "Issue with my laptop",
"description": "Not booting",
"status": "New",
"requester": "John",
"createDate": 1711090628526,
"priority": "High",
"resolution": "Resolved",
"eta": 1711090628526,
"agent": "Taylor",
"closeDate": 1711090628526,
"tags": "tkt",
"category": "Incident"
}
View a Ticket
This API lets you retrieve to view a specific ticket and all conversations related to it in your helpdesk.
get : /tickets/{ticketID}
Response
{
"id": "TKT101",
"subject": "Issue with my laptop",
"description": "Not booting",
"status": "New",
"requester": "John",
"createDate": 1711090628526,
"priority": "High",
"resolution": "Resolved",
"eta": 1711090628526,
"agent": "Taylor",
"closeDate": 1711090628526,
"tags": "tkt",
"category": "Incident"
}
Update a Ticket
This API lets you make changes to the parameters of a ticket from updating statuses to changing ticket type.
put: /tickets/{ticketId}
Request
{
"subject": "Issue with my laptop",
"description": "Not booting",
"status": "New",
"priority": "High",
"tags": "Issue"
}
Response
{
"id": "TKT101",
"subject": "Issue with my laptop",
"description": "Not booting",
"status": "New",
"requester": "John",
"createDate": 1711090628526,
"priority": "High",
"resolution": "Resolved",
"eta": 1711090628526,
"agent": "Taylor",
"closeDate": 1711090628526,
"tags": "tkt",
"category": "Incident"
}
Add a New Comment
This API lets you add a new comment for a given ticket
post:/tickets/{ticketId}
Request
{
"ID":"commentID101",
"comment": "This is my first comment"
}
Response
{
"id": "TKT101",
"subject": "Issue with my laptop",
"description": "Not booting",
"status": "New",
"requester": "John",
"createDate": 1711090628526,
"priority": "High",
"resolution": "Resolved",
"eta": 1711090628526,
"agent": "Taylor",
"closeDate": 1711090628526,
"tags": [
"urgent",
"backend",
"issue"
],
"category": "Incident",
"ext_properties": {
"resolved_date": 1711090628526,
"requester_email": "john@xyz.com",
"requester_name": "john",
"channel": "email",
"resolution_notes": "ticket has been resolved",
"attachments": "Base64 format of the attachment",
"sub_category": "Ticket",
"assigned_date": 1711090628526,
"close_notes": "Ticket has closed in shorttime",
"count": 5,
"manager": "Jackson",
"manager_approved_date": 1711090628526,
"manager_status": "Approved",
"sla": "3 Hours",
"kb_article": "Link to the article",
"resolution_interval": 45,
"close_interval": 50,
"interval": 20,
"submission_date": 1711090628526,
"resolution": "ticket closed",
"due_date": 1711090628526,
"phone_num": "+919999999999"
}
}
Get all Comments
This API lets you gets all comments for a given ticket
Get: /tickets/{ticketId}
Response
{
"start": 0,
"row": 0,
"numfound": 0,
"response": [
{
"ID": "commentID101",
"comment": "This is my first comment"
}
]
}
Update Tags
This API lets you update tags by ID
put: /tickets/{ticketId}
Request
{
"tags": [
"urgent",
"follow-up"
],
"action": "update"
}
Response
{
"id": "TKT101",
"subject": "Issue with my laptop",
"description": "Not booting",
"status": "New",
"requester": "John",
"createDate": 1711090628526,
"priority": "High",
"resolution": "Resolved",
"eta": 1711090628526,
"agent": "Taylor",
"closeDate": 1711090628526,
"tags": [
"urgent",
"backend",
"issue"
],
"category": "Incident",
"ext_properties": {
"resolved_date": 1711090628526,
"requester_email": "john@xyz.com",
"requester_name": "john",
"channel": "email",
"resolution_notes": "ticket has been resolved",
"attachments": "Base64 format of the attachment",
"sub_category": "Ticket",
"assigned_date": 1711090628526,
"close_notes": "Ticket has closed in shorttime",
"count": 5,
"manager": "Jackson",
"manager_approved_date": 1711090628526,
"manager_status": "Approved",
"sla": "3 Hours",
"kb_article": "Link to the article",
"resolution_interval": 45,
"close_interval": 50,
"interval": 20,
"submission_date": 1711090628526,
"resolution": "ticket closed",
"due_date": 1711090628526,
"phone_num": "+919999999999"
}
}