Can Backlog and Cloud BPM Cooperate?

How to check whether Questetra can cooperate with other services

 

Hi, there!

 

Since I was consulted by a certain customer about Questetra’s interoperability with Backlog which Nulab Inc. is providing, I came up with how to do it.
This time, I tried to summarize how to find out whether or not it is possible to connect Questetra to other services, not only to Backlog.

* I will take a step back since there may be some people who are thinking that both Questetra and Backlog are for managing tasks. Questetra is suited for work which flow has been decided, while Backlog is suitable for flexible workflow. Therefore, they are often used depending on the characteristics of the target work. This is another example here

In this case, what the customer wanted was to start a Process on Questetra when adding an Issue on Backlog.

 

Not limited to Backlog, the points to be considered on the side of the service calling Questetra are the following:
Is there a means to send data, and is it sending an HTTP request or an email?

In the case of Backlog, it has a mechanism for sending an HTTP request called webhook, and one for sending an email notification, so it is capable of sending data when various events occur, not just adding Issues.
Below, I summarized each method.

You can initiate a Process by receiving an HTTP request from Backlog at Questetra’s “Message Start Event (HTTP)”.

* Click here for details on “Message start event (HTTP)”
M221 AUTO START Auto Starting Triggered by HTTP Request
* Although we are not using it this time, you can receive an HTTP request in the middle of a Questetra Process. Click here for details of “Catching Message Intermediate Event (HTTP)” to receive it.
M226 AUTO EVENT Standing by HTTP Request


In Backlog’s webhook, you can specify the destination URL (it is possible to add request parameters if it is GET). And detailed data for each event (detailed information on Issue if in case of addition event of Issue) will be sent as body part in JSON format.
However, Questetra’s API at the present time is not capable of receiving data for the body…(It may be improved in the future, but I do not know for now.)

 

So, it will be dealt with one of the following methods.

  • Interposing an intermediate server, and let it process the data into a format that is accepted by Questetra and then send it as an HTTP request.
    It is the as collaborating with LINE in an article introduced earlier.
  • Call Backlog APIs from a Process on Questetra which has been started by receiving a webhook.
    Acquire a list of Issues after receiving an Issue addition webhook, etc. However, we need to consider that there is the possibility that multiple Issues can be registered in a webhook for Issue registration therefore having to acquire a list of Issues.

You can start a Process by receiving an email from Backlog with “Message Start Event (Email)” in Questetra. Also, you can parse the email body with “Script Task” in order to extract the necessary information from the email body.

* Click here for details on “Message start event (Email)”
M218 AUTO START Auto Starting Triggered by Incoming Email
* Click here for details on “Script Task”
M230 AUTOMATED STEP Auto Executing Complicated Data Processing (ECMAScript)
Please refer to this sample etc. for the email body parsing script.


Since email notification from Backlog is sent to the specified user, it is necessary to prepare a user to receive notification using an email address in Questetra’s “Message Start Event (Email)”.

 

Even though some ingenuity is needed depending on each method, it is now confirmed that cooperation with each other is possible.

Next, let’s see the cases of calling Backlog APIs from Questetra.

 

Questetra is capable of sending HTTP requests from “Throwing Message Intermediate Event (HTTP)” or “Script Task”.

* Click here for details on “Throwing Message Intermediate Event (HTTP)”
M225 AUTO EVENT Auto Sending of HTTP Request with Business data Inserted
* Click here for details on “Script Task”
M230 AUTOMATED STEP Auto Executing Complicated Data Processing (ECMAScript)
* Although we are not using this time, you can collaborate by sending email. Click here for details of “Throwing Message Intermediate Event (Email)” to send it.
M224 AUTO EVENT Auto Sending of Email with Business data Inserted


Points to check with the APIs of the service you call to, not only for Backlog, are as follows.

Check whether or not there is a REST API. If there is, find out the authentication method it uses.

 

For Backlog, there is an API reference here, and authentication is explained in here.
In case of REST API. API Key or OAuth2 can be used for authentication.
Below, I summarize the check points for each method.

It depends on how the API Key must be sent.

  • Specified by request parameter / body
    It can be specified in Questetra without any problems.
  • Specified by HTTP header
    In Questetra, there is a restriction on the name of header that can be specified.
    (Currently available are: beginning with “X-“, “BoxApi”, “Dropbox-API-Arg”)

It depends on the corresponding grant_type.

  • Authorization Code
    Questetra can deal with cases where an indefinite lifetime access token can be issued.
    Although backlog uses Authorization Code, since indefinite lifetime tokens can not be issued, this time it can not be used…
  • Client Credentials, Password
    You can correspond by Script Task.
  • Other than those above
    Since I do not have tried them yet, it is necessary to investigate whether or not we can handle them.
* For details of the setting method for each grant_type, please refer to this article

 

In this article, we confirmed that OAuth2 could not be used, but API call can, via API Key.

From the strategies above, although there are cases in which some ingenuity is necessary depending on what you want to do, we found that we can in fact make possible a Questetra – Backlog collaboration.
And I hope you now understand roughly about how to check whether or not cooperation between Questetra and other services are possible.

 

I also want to discuss cooperation with Typetalk which is also being offered by Nurabo. But that’S for another article.

 

About Kusaka Tsuyoshi

営業をやってますが、もともとエンジニアなので、プログラミングもやります。
View all posts by Kusaka Tsuyoshi

Recommendations
Prev article - 50. Questetra Tips Automate Processing by Accessing its Own API
Another article - Kusaka Tsuyoshi Check Digest of Business with Internal Chat Service “slack”

Archive

 RSS