FLOW UPDATE

Shopify Flow Action拡張:
破壊的変更が大幅に減少

フィールド変更時も旧ワークフローが継続実行、サーバー側で差異を柔軟にハンドリング可能に

OLD WORKFLOW旧バージョンのActionを使用中NEW ACTION CONFIGフィールドを追加・削除PREVIOUSLY検証失敗 → 実行停止FLOW RUNTIMEスキーマ差異を許容して実行ペイロードをそのままエンドポイントへ送信PARTNER SERVERサーバー側で差異を処理STRATEGIES・デフォルト値を適用・未知フィールドを無視・エラー応答を返す

2026年7月7日より、Shopify Flow Actionの設定フィールドを変更しても、旧バージョンを使用している既存のワークフローが実行停止になることがなくなりました。FlowランタイムはスキーマのMismatchを許容しエンドポイントにリクエストを送信し続けるため、パートナーサーバー側で差異を適切に処理する実装が求められます。

BACKGROUND

01従来の問題と今回の変更

これまでは、Action拡張のフィールド設定に少しでも変更があると、それを利用しているマーチャントの既存ワークフロー全てが「破壊的変更」として扱われていました。ランタイム検証が失敗し、パートナーサーバーにはリクエストすら届かない状態でした。新しい必須フィールドの追加・既存フィールドの削除どちらの場合でも、マーチャントのワークフローは即座に失敗していました。

BEFORE旧Actionを使用ワークフローフィールド変更新しいAction設定検証失敗ワークフロー停止サーバーへのリクエスト送信なしAFTER旧Actionを使用ワークフローフィールド変更新しいAction設定継続実行旧ペイロードでリクエスト送信サーバー側で差異を処理USE CASES

02業務に活かせる具体ユースケース

課題
必須フィールドを新たに追加したAction改訂版をリリースしたところ、旧バージョンを使い続けているマーチャントのワークフローが全て停止してしまった。
打ち手
エンドポイントで新しい必須フィールドが欠落している場合にデフォルト値を自動適用するロジックを実装する。ワークフローのリクエストはそのまま受信されるため、サーバー側だけで対応完結。
効果
マーチャントのワークフローがダウンタイムなしで継続稼働。Action改訂時のマーチャントサポート対応コストを削減できる。
技術メモ
受信ペイロードをJSONスキーマで検証し、不足フィールドに対してdefault値を補完するミドルウェアを挟む構成が有効。
課題
廃止したフィールドを削除した新しいAction設定に更新後、古いフィールドを送信してくる旧ワークフローのリクエストを正しく処理できるか不安があった。
打ち手
エンドポイントのリクエストハンドラーを「未知・余分なフィールドは無視する」ポリシーで実装する。Strict modeを無効にするか、ホワイトリスト外フィールドを除去してから処理する。
効果
旧フィールドが含まれていてもエラーにならず処理が継続。フィールド削除による影響範囲を最小化できる。
技術メモ
Node.jsなら余分プロパティを無視するJSONスキーマバリデーター設定(additionalProperties: true)が参考になる。
課題
複数のマーチャントが異なるバージョンのActionを並行利用しており、どのバージョンのペイロードが来るか予測しづらく、処理ロジックが複雑化していた。
打ち手
受信ペイロードのフィールド構成を検査し、バージョンを自動判定するルーターロジックを実装。バージョンごとに適切なハンドラーに振り分ける。
効果
全バージョンのワークフローに対して適切な処理を保証でき、移行期間中の安定稼働を維持できる。
技術メモ
ペイロードに明示的なバージョンフィールドがない場合は、特定フィールドの有無をセンティネルとして使うフィンガープリント判定が有効。
DEVELOPER NOTES

03技術者が押さえるべきポイント

継続実行

旧バージョンのワークフローは今後も実行され、エンドポイントにリクエストが届く。ランタイム検証の失敗による実行停止は発生しない。

ペイロードの形式

エンドポイントが受け取るペイロードは現在のAction設定ではなく、マーチャントが使用している旧バージョンの設定に基づいた内容になる。

必須対応

エンドポイントは「必須フィールドが欠落している」「削除済みフィールドが含まれる」「その他のスキーマ差異」のいずれの状況も安全に処理できるよう実装すること。

破綻ケースへの対処

ペイロードを安全に処理できない場合は、明確なエラーレスポンスを返す実装を推奨。サイレント失敗は避け、問題を可視化すること。

推奨3戦略

①新しい必須フィールドが欠落 → デフォルト値を適用
②削除済みフィールドが存在 → 無視してスキップ
③処理不能な差異 → 明確なエラー応答を返す

参考ドキュメント

リクエストの送信・実行の詳細は公式の「Flow action execution」ドキュメントを参照。本記事は独立系メディアの解説であり、最終確認は公式ドキュメントを必ず確認すること。

FLOW ACTION EXECUTION — NEW BEHAVIORワークフロー旧Actionを使用Flowランタイムスキーマ差異を許容エンドポイント旧ペイロード受信デフォルト値を適用不足フィールドを補完余分フィールドを無視旧フィールドをスキップエラー応答を返す処理不能時はReject━━ 主要フロー (必須) - - - オプションの処理戦略

「Actionフィールドを更新してもマーチャントのワークフローが止まらない」設計が可能になったことで、Flow拡張の継続的改善とマーチャントの業務継続性を両立できます。

Source: https://shopify.dev/changelog/shopify-flow-changes-to-action-extensions-result-in-fewer-breaking-changes | 公開日: 2026年7月7日