Jira Automationで複数チケットを自動作成する時の罠:Create variableの配列は文字列扱いになる
この記事の背景
今回の設定は、最初から自力で正解にたどり着いたわけではありません。
最初はAIアシスタントに相談しながら、["A","B"] のような配列風の値を変数に入れて For each で回す方法を試しました。
しかし、実際にJira Automationでテストすると、配列として展開されず、["A","B"] という文字列のままチケットタイトルに入ってしまいました。
その後、別のAIアシスタントにも相談しつつ、Jira上で挙動を確認した結果、カンマ区切り文字列を split(",") で分割する方法に修正しました。
この記事は、AIの回答をそのまま採用するのではなく、実際に動かして確認した結果をまとめた備忘録です。
環境・前提
- Jira Automation
- スケジュールトリガーで実行
- 「変数を作成 / Create variable」を使用
- 「高度な分岐 / For each smart value」を使用
- 作成対象はJiraチケット
最初にやろうとしたこと
複数のタイトルを配列っぽく持たせれば、For eachで回せるだろうと思いました。
「変数を作成」で、以下のように設定しました。
変数名:
titleList
スマート値:
["A","B"]
その後、「高度な分岐 / For each smart value」で以下のように指定しました。
スマート値:
{{titleList}}
そして、新規作成チケットの要約には以下のように設定しました。
{{titleList}}_{{now.convertToTimeZone("Asia/Tokyo").format("yyyyMM")}}
起きたこと
結果、作成されたチケットのタイトルはこうなりました。
["A","B"]_202605
期待していたのはこれです。
A_202605
B_202605
つまり、["A","B"] が配列として扱われず、文字列としてそのままタイトルに入ってしまいました。
原因
Jira Automationの「変数を作成 / Create variable」は、配列をそのまま配列として保持するというより、スマート値の結果を文字列として扱う挙動になるようです。
そのため、以下のように書いても、
["A","B"]
Jira Automation上では「AとBの配列」ではなく、["A","B"] という文字列として扱われました。
解決方法
配列風のJSONではなく、カンマ区切りの文字列として持たせます。
A,B
そして、For each側で split(",") を使って分割します。
完成形
1. 変数を作成
変数名:
titleList
スマート値:
A,B
2. 高度な分岐 / For each smart value
変数名:
titleItem
スマート値:
{{titleList.split(",")}}
ここでのポイントは、変数名を分けることです。
-
titleList:複数の値を持つ元データ -
titleItem:For eachで取り出した1件分の値
同じ名前にすると、後から見たときに「これは一覧なのか、1件なのか」が分かりにくくなります。
3. 新規作成チケットの要約
{{titleItem}}_{{now.convertToTimeZone("Asia/Tokyo").format("yyyyMM")}}
実行結果
2026年5月に実行すると、以下のようなチケットが作成されます。
A_202605
B_202605
無事に、複数チケットを作成できました。
年月フォーマットの注意点
年月を yyyymm の形式にしたい場合は、以下のように書きます。
{{now.convertToTimeZone("Asia/Tokyo").format("yyyyMM")}}
注意点は、月の MM は大文字にすることです。
OK: yyyyMM
NG: yyyymm
小文字の mm は「分」として扱われる可能性があります。
そのため、年月を出したい場合は yyyyMM と書きます。
最終的なルール構成
今回の構成をまとめると、以下です。
スケジュールトリガー
↓
変数を作成
titleList = A,B
↓
高度な分岐 / For each smart value
変数名 = titleItem
スマート値 = {{titleList.split(",")}}
↓
チケットを新規作成
要約 = {{titleItem}}_{{now.convertToTimeZone("Asia/Tokyo").format("yyyyMM")}}
まとめ
Jira Automationで複数値を変数に入れてループしたい場合、以下のような配列風の書き方は期待通りに動かないことがあります。
["A","B"]
安全にやるなら、カンマ区切り文字列として持たせます。
A,B
そして、For each側で以下のように分割します。
{{titleList.split(",")}}
今回のポイントは以下です。
-
Create variableに配列風の値を入れても、配列として扱われるとは限らない - カンマ区切り文字列 +
split(",")の方が安定する - ループ中の1件分は、
titleItemのように別名にすると分かりやすい - 年月は
yyyyMMと書く - 日本時間で実行したい場合は
convertToTimeZone("Asia/Tokyo")を使う
小さなハマりどころですが、Jira AutomationはUI上できそうに見えて、スマート値の型まわりで詰まることがあります。
同じように定型チケットを自動作成したい人の参考になれば幸いです。
補足:AIアシスタントの回答は実際に試して確認する
今回の最初の案は、AIアシスタントに相談しながら作りました。
ただし、AIの回答をそのまま採用したわけではなく、実際にJira Automationでテストし、期待通りに動かなかった部分を修正しています。
特にJira Automationのスマート値や変数の型まわりは、画面上ではできそうに見えても、実行時の挙動が想定と違うことがあります。
AIの回答はかなり便利ですが、業務設定に使う場合は、最終的に実機で確認するのが大事だと感じました。