I was consulted by a customer concerning a collaboration between Zendesk and Questetra, and investigated how to achieve it.
In this case, the customer has already been using Zendesk Support, and he wanted to measure the processing time and monitor the load status by passing data to Questetra when a ticket is created on Zendesk Support or the ticket status is changed to “Resolved”.
* Although there is also a mechanism to measure time in Zendesk Support, they claimed it did not satisfy their requirements.
Questetra is capable of starting a business flow by receiving an HTTP request or an email. Therefore, I checked out whether Zendesk Support is able to send HTTP requests that fit Questetra’s specifications.
2. Details of settings for starting Workflow on Questetra
3. The remaining settings
1. Method of sending HTTP requests to Questetra from Zendesk
As a result of my research I found that sending data is possible by setting a “target” which you have specified with a URL, and setting a “trigger” to be launched when a certain event occurs beforehand.
Using this mechanism it seems possible to start a Questetra Workflow (invoking Questetra’s API) when a new ticket is created or a ticket status is changed.
2. Details of settings for Starting Workflow on Questetra
First, prepare a Questetra App (hereafter “App A”) in which a [Message Start Event (HTTP)] is set. Then release App A and confirm the receiving URL and request parameters.
* See the following page for details of ]Message Start Event (HTTP)]M221: Auto Starting Triggered by HTTP Request
* In the Latest version of the App (not Developing) when you open “URL/Parameter Details” in the property screen of the [Message Start Event (HTTP)], information such as the URL will be displayed.
* Please note that in the default settings receiving HTTP requests from external systems in a [Message Start Event (HTTP)] is disabled, so you need to enable it in System Settings.
* Please note that unlike before, the key will be different for each event.
Next, configure the Targets in Zendesk as follows.
Configure the Triggers as follows
Using these settings, when a new ticket is created in Zendesk, data is sent to Questetra and a Workflow is started.
* In this example, Field names are set for Data Items in Questetra. Without those settings you need to set parameter names in the format “data.input”. Concerning Field names, see the section “c. Field Name” in “1. Add Data Items One by One” in the following web document.
M205: Business Data Items
* Set them up so that data which is necessary for binding with Questetra side will be passed from Zendesk, e.g. ticket ID, etc.
3. The remaining settings
When measuring the processing time, configurations as the following will be required.
Althoguh there will be a lot more settings to be required, I omit the details of them and leave it to another occasion since my theme on this post is the part of sending data to Questetra from Zendesk.
- Prepare another App on Questetra (hereafter “App B”) in which a [Message Start Event (HTTP)] is set. Then release App B and confirm the receiving URL and so on.
- On Zendesk, add a target that aims at Questetra, add a trigger to be launched when the status is changed to “Resolved”, and configure so that the ID of the ticket is passed to Questetra upon the creation of a new ticket.
- Configure App A on Questetra as follows:
Store the ticket ID received from Zendesk in a Data Item at the start.
Prepare a [Service Task (Data assignment)] to store the start date and time of the flow (DateTime 1).
Prepare a [Catching Message intermediate Event (HTTP)] to receive an HTTP request when a ticket is resolved.
Prepare a [Service Task (Data assignment)] to store the date and time of receiving the HTTP request (DateTime 2).
Find the difference between DateTime 1 and DateTime 2 using an Add-on for calculating time elapsed.
- Configure App B on Questetra as follows.
Identify the ID of the corresponding Process by retrieving data in App A based on the Zendesk ticket ID (specifically, to retrieve and identify the data in App A by invoking “ProcessInstance” of Questetra’s Workflow API).
Send an HTTP request to the [Catching Message Intermediate Event (HTTP)] in App A using the Process ID.
- Add-on for calculating time (in minutes)
- Automate Processing by Accessing Questetra’s Own API (Currently preparing for migration)
- API manual: “ProcessInstance” in Workflow API (Open the API Manuals on the left menu of your Questetra environment when logged in)
- XML: Criteria for Process Instance Search
* Regarding the [Script Task], see the following web page for the details:
M230: Auto Executing Complicated Data Processing (ECMAScript)
Thus, we have achieved a collaboration between Zendesk and Questetra by exchanging data.
I have been looking at the connectivity settings of various cloud services, but this was the first time that I could configure an HTTP request with such flexibility.
* Incidentally, Questetra also has a flexibility comparable to that!
In addition, even though I only discussed data transmission from Zendesk to Questetra in this post, we could also realize the following collaborations using the APIs that Zendesk provides. I will describe the details of those in another post.
- When a ticket is created on Zendesk, send the data to Questetra and start a Workflow.
- Proceed with work according to the Workflow on Questetra.
- When the work is finished on Questetra, send the data back to Zendesk to change the ticket status to resolved.
In other ticket management mechanisms as well as Zendesk you cannot stipulate the order that tickets will be processed, or measures to avoid omission. However, you can manage this by combining it with Questetra.
If you have any questions please feel free to Contact us.
Apply for a Free trial (Starter Plan) of Questetra
When you apply from this web form, you can create a free account for Questetra. All functions including the above are available, so please try it.