はじめに
kintoneのレコードを特定のステータスにすると、Zapierを経由してJiraにチケットを作成する方法を試しました。
Jiraのプランが足らなかったためZapierを経由して作成しています。
どのような背景があって作成したのか?
kintoneで特定業務を管理しておりレコードを特定のステータスにした際、他チームへタスクが発生するフローになっています。これまでは手動でJiraチケットを起票していましたが、起票が漏れたり遅れたりすることで他チームに業務のしわ寄せが発生していました。
これらを解消する目的で作成したものです。
コード
kintoneに設定しているscriptです。どなたかの参考になれば。。。🙇♂
素人が書いているscriptなので書き方がイマイチな箇所があると思いますが、何かあればコメントいただけますと幸いです。
test.js
(function() {
'use strict';
// レコード詳細画面で、プロセス管理のアクションが実行された時
kintone.events.on('app.record.detail.process.proceed', function(event) {
// 実行後のステータスを格納
const nextStatus = event.nextStatus.value;
const rec = event.record;
// 使用するZapierのWebhookのURLを格納
const webhookUrl = "";
// チケット担当者のJiraアカウントIDを格納
const assignedAccountId = "";
// 諸々条件によって以下の変数に文章を入れる
// Jiraチケットの要約に記入する文章を格納
let payloadSummary = "";
// Jiraチケットの詳細に記入する文章を格納
let payloadDescription = "";
// POSTするデータを生成
const postData = {
"summary" : payloadSummary,
"description" : payloadDescription,
"assignee" : assignedAccountId
};
return new kintone.Promise(function(resolve, reject) {
kintone.proxy(webhookUrl, "POST", {}, postData, function(body, status, headers) {
console.log(status, body);
resolve(event);
});
});
return event;
});
})();
Zapier上での設定
- 「Post in Webhooks by Zapier when catch hook」を使用しています。
- kintone側で 1 のwebhookを叩いてZapierがリクエストを受け取り、
- 「Create Issue in Jira Software Cloud」でリクエストの内容(担当者、内容、期限 等)を使ってJiraにタスクを起票しています。
説明
JiraプランがEnterpriseとかであれば、Zapierを経由せずにkintoneから直接APIを叩けば問題ないと思います。
(プランが足りていないので検証できていないですが、、、)
何ら難しいことはしていません🙇♂️
条件によってJiraに記載する文章や担当者は異なるかと思いますので、条件分岐で設定すればokです。