見出し画像

QAエンジニアがn8nでClickUp→Jiraのチケット連携を自動化した話

※本記事で利用しておりますn8nのClickUp/ClickUp Triggerのノードは、執筆時点ではBeta版ですのでご認識ください

こんにちは、ディップDX事業本部プロダクト開発部クオリティマネジメント課の妹川です。
私は昨年の9月にディップへジョインし、早くも10か月が経ちました。

本日はタイトルにあります通りn8nというサービスを利用して、ClickUpに登録された不具合をJiraへ自動で登録/更新出来るようにしました(まだ一つのプロダクトのみにはなりますが)。実は開発の都合上、ClickUpとJiraで管理する必要があり、それまでは手動でステータスの更新を行っておりました。

ネット上で同様のことをやられている方が中々おられなかったので、詰まった箇所や困ったところ等をご紹介出来ればと存じます。

①やりたいこと

まず、やりたいことのイメージとしては以下になります。

  1. ClickUpにタスク作成/タスクのアップデートがあった際に、n8nのClickUp TriggerノードのWebhookをCallしてもらう

  2. n8nのClickUpノードで詳細なタスク情報を取得する

  3. タスク作成の場合はn8nのJira Softwareノードでissueを作成、アップデートの場合は現在Jiraに登録されているissueを取得して、同じ内容のissueを特定してアップデートする

②簡単に実現出来そう???

n8nというサービスを初めて使ったのですが、ノーコードで利用出来るということで認証情報を入力すると自動で設定がされたり自動で選択肢が表示されたり、それを選択していくことである程度のフローは実現出来ました。

大雑把な流れとしましては、以下になります。

準備:ClickUpにて、自分のアカウントのAppsメニューからAPI Tokenを取得
準備:自分のAtlassian アカウント → セキュリティ → APIトークンの作成と管理 → 「APIトークンを作成する」ボタンから作成したAPIトークン

n8n側の操作

  1. ワークフローにClickUp Triggerノードを作成する→ WebhookのURL(TestとProduction)が払い出される

  2. ClickUp TriggerのCredential for ClickUp APIから「-Create New-」を選択し、Access Tokenの項目に準備したClickUpのAPI Tokenを入力する

  3. 選択肢の中からTeamとEventsを選択する

ClickUp側の操作

  1. 管理するClickUpのタスクが存在するリストに、下記のAutomateを作成

    1. When = Task created/Status changed

    2. Then = Call webhook

※設定するWebhookのURLは手順1で払い出されたURLになります

n8n側の操作

  1. ワークフローにClickUpノードを作成し、ClickUp Triggerノード(Webhook)で受け取った情報を基に詳細情報を取得

  2. ワークフローにFunctionノードを作成し、取得した詳細情報をJiraに登録する用のデータに変換

  3. ワークフローにJira Softwareノードを作成して下記情報を設定、変換したデータをセットしてJiraのissueを操作(登録/更新)する

    1. Email → Jiraへログインする際のメールアドレス

    2. API Token → 準備したAtlassianのAPIトークン

    3. Domain → 運用中のJiraのURL

③JQLでシンプルにデータの操作

Jiraへの新規登録だけならスムーズに実装出来たのですが、Jiraのissueを更新する為には今Jiraに登録されているissueを全て取得して、同じ内容のものがあったら更新処理をする必要がありました(当たり前)。
こちらはn8nのJira Softwareノードの中でissueを全て取得(Get All)し、JQLで更新対象のissueを特定することでシンプルに実現出来ました。

④原因不明の事象

 n8nの実装中、原因不明の事象がいくつも発生しました。その都度n8nのコミュニティ等を調査しましたが、時間が解決してくれた事象も何件かありました。
※数週間事象が変わらなかった為、問い合わせをする為にその時点での動作確認をしようとしたところ、再現しなくなっていました(あるある)

  • Automateを設定していないはずのClickUpのSpaceから、Webhookが呼ばれる

  • ClickUpにタスクを新規登録すると、Task created/Status changedのイベントが二つ同時に届く

  • ClickUpにタスクを新規登録してもStatus changedの方のWebhookが呼ばれてしまう

⑤503 Service Temporarily Unavailable・・・

自動化して一か月程度触らずに放置後、本記事を書こうとしてワークフローにアクセスしにいったところ・・・503となってしまっていました。。。
スペシャリストのTS課に調査/対応をお願いしたところn8nのアップデートがあり、ユーザー認証が必要になった為とのことでした。すぐにご対応いただき、復旧することが出来ました。
※復旧出来なかったらバックアップしておいたjsonデータから復旧するはめになっていました

今回の事象を踏まえ、n8nは日々アップデートされて挙動が大きく変わることが想定されるので、自動アップデートは止めておくか、SaaS版への移行を検討するのも有りなのでは無いかと考えております。

まとめ

最後まで御覧いただき、ありがとうございました。
今回初めてノーコードのワークフロー自動化ツールを利用したのですが、開発エンジニアでなくてもある程度の自動化を進めることが出来ました。
対象としたプロダクトはタスクの動きが少ないプロダクトの為、他のプロダクトに適用するともっと色々考える必要はありますが、どのように実現すれば良いかイメージがつきやすく、今後も自動化を進めていく自信になりました。
今後もn8nの色々なノードを利用してみて知見を貯め、n8nの使い方を社内へ共有、自動化で工数削減出来るところを増やしていきたいと考えております。
今回はレアなケースだとは思いますが、どこか一箇所でも何かのご参考になれば幸いです。

クオリティマネジメント課ではテストの実施管理だけではなく、品質指標を決めて運用したり上流工程からプロダクトに関わったり、不具合分析を行ってプロセスの改善提案を行ったりテストの自動化、自動化による効率化、幅広く品質改善活動を行っております。
対象となるプロダクトもどんどん増えて来て人が足りていません。ご興味がございましたら是非下記リンク先をご確認いただけると幸いです。

We are Hiring!!!

https://hrmos.co/pages/dip-net/jobs/0000188


この記事が気に入ったらサポートをしてみませんか?