🐙

Jiraで改行含むデータをAutomationのカスタムデータとしてZapierへ送信する場合のTIPS

2023/06/30に公開

やりたいこととしては、JiraのチケットのデータをAutomationのWebリクエスト(Webhook)アクションでかつカスタムデータでZapierに送信したいというシナリオですが、カスタムデータに指定した属性に改行を含む場合には一手間加える必要があります。

AutomationにおけるWebリクエスト本文の種類

AutomationでWebリクエストを送信する際、Webリクエスト本文には以下のように空白、課題データ(Automation形式)、カスタムデータ、課題データ(Jira形式)のいずれかを指定することができます。
空白は文字通り何も送信しないケース、課題データはそれぞれフォーマットに違いはありますが全属性データを送信するケース、カスタムデータは必要なデータだけを選択して送信する場合に使用します。

これらのうち、課題データ(Automation形式)と課題データ(Jira形式)は、属性に改行が含まれていても問題なく送信することができます

実際にカスタムデータで送信してみる

まずは、チケットの説明欄に改行を含まないチケットを用意しカスタムデータに以下を指定します。

{
    "description": "{{issue.description}}"
}

Automationの検証機能を使って、上記チケットIDを指定してZapierに送信してみます。
応答は200となっており、正常に処理ができています。

Zapier側でも正常にリクエストが受信できています。

続いてチケットの説明欄に改行を追加してからAutomationの検証を実施してみます。
改行を含まない場合と同等に検証結果としては応答200でOKとなります。

しかし、この場合Zapier側ではいくら待ってもリクエストが受信できていません。
Automation側の検証結果にはSuccessが返ってきていることからZapierで受信はできているが予期せぬデータ形式のために処理が途中で中断しているのかもしれません。

いずれにしてもこのままでは処理ができません、ちなみにどこにもエラーログがないので改行が原因であることに気づくのに時間がかかりました。

対策1. 改行を置換して送信

Automationで送信する際に改行をすべてそれを意味する別の文字列に変換することで正常に送信することができます。

{
    "description": "{{issue.description.replaceAll("(\n)","[NEWLINE]")}}"
}

上記では[NEWLINE]に変換していますが、これは属性に記載するデータと重複しないものなら何でもOKです。

上記に変更後、再度Automationから検証してみます。
今度は無事にZapierでリクエストを受信できました。

対策2. 置換された文字列を再置換

Zapierで受信したデータで改行を意味する文字列を再度改行コードに置換します。
ActionにはFormatを、EventにはTextを、TransformにはReplaceを選択します。
Inputには受信した改行を含む属性を、Findには改行を意味する文字列(上記の場合は[NEWLINE])を、ReplaceにはZapier内で改行コードを意味する[:newline:]を指定します。

Testすると改行に再置換できていることが確認できます。

あとは後続処理でこのデータを利用すればOKです。

まとめ

以上がJira Automationで改行を含むデータをカスタムデータとしてZapierに連携する際のTIPでした。

Discussion