LinearをShopify Flowに接続する方法
Linearでは、ワークスペース内の課題、プロジェクト、またはコメントに変更があった際に、Webhookを送信します。Workflow Webhooksはこの呼び出しをShopify Flowのトリガーに変換するため、ストア側でそれに応じて以下の処理を行うことができます:お客様へのタグ付け、注文メモの追加、社内メールの送信、メタフィールドの更新など、Shopify Flowで可能なあらゆる操作が可能です。
このガイドでは、リクエストの送信(Linear)、受信と検証(Workflow Webhooks)、処理(Shopify Flow)という一連の流れをすべて設定します。すべてのリクエストにおいてLinearのHMAC署名が検証されるため、Linear以外ではワークフローを開始することができません。
どのようなものを作れるか
storefrontというタグが付いたバグが「完了」状態になった際は、マーチャンダイジングチームにメールでお知らせください。- 現在のスプリント番号またはリリース番号を、ショップのメタフィールドに入力してください。
- ローンチに関する課題がクローズされた際に、ストア側のチェックリストワークフローを開始します。
送信される代表的なイベントとしては、イシューが作成されたりステータスが変更されたり、コメントが追加されたり、プロジェクトの更新情報が投稿されたりすることが挙げられます。
始める前に
- Workflow Webhooks Shopifyストアにインストールされています。
- Shopify Flow インストールされています。これは、ShopifyのApp Storeから無料で入手できます。
- Webhookの作成権限を持つLinearのアカウント。
手順 1 - Workflow Webhooks で Webhook を作成します
- Workflow Webhooks を開き**、[Webhook] → [Create Webhook]** の順に選択し、Shopify Flow で識別しやすい名前(例:
Linear events)を付けてください。 - **「認証」**で、「**HMAC」**を選択してください。
- 「署名プロバイダー」で「Linear」を選択してください。アプリがヘッダー、アルゴリズム、署名付きペイロード、リプレイウィンドウを自動的に入力してくれます。これ以外に設定する必要はありません。
- 「シークレット」の欄はひとまず空のままにして、「保存」をクリックしてください。ページに表示されているWebhookのURLをコピーしてください。
その他の認証モードについては、認証 を、Shopify Flow に送信されるフィールドの選択については、ペイロードのマッピングとShopify Flow変数 をご参照ください。
ステップ 2 - Linear にエンドポイントを追加します
Linearで、**「設定」→「API」→「Webhook」**を開き、コピーしたURLを使用してWebhookを作成し、そこに表示されている署名用シークレットをコピーしてください。
リニアの署名用秘密鍵の探し方
LinearのWebhook([設定] → [API] → [Webhook])に表示されている署名用シークレットです。
Webhookの署名に関するLinearの公式ドキュメント()には、お客様のアカウントに関する正確な説明文とスクリーンショットが掲載されています。
そのシークレットを、Workflow Webhooks の Webhook の**「Secret」**フィールドに貼り付けて、保存してください。それ以降、Linear からのすべての配信は、Shopify Flow に到達する前に検証されるようになります。
これが何をチェックするのか
| 何 | 値 |
|---|---|
| 署名ヘッダー | Linear-Signature |
| 署名の位置 | ヘッダー値全体 |
| 何が署名されたのでしょうか | {body} |
| 署名 | HMAC-SHA256、16進数エンコード |
| タイムスタンプ | この送信者には使用されていません |
| リプレイ防止機能 | なし - この送信者はタイムスタンプに署名を行わないため、すべての有効な署名は引き続き有効です |
| その秘密 | プレーンテキストとして使用します。送信者が表示している通りに、そのまま貼り付けてください。 |
署名付きペイロードにおいて、{body}は、バイト単位でリクエスト本文の生のデータそのものです。
これらのいずれかの条件を満たさないリクエストは、401 のエラーで拒否され、沿革とトラブルシューティング に記録され、ワークフローは開始されません。
ステップ 3 - 「Shopify Flow」ワークフローを作成する
- Shopify Flow でワークフローを作成し、「Workflow Webhooks」トリガーを選択してください。
- 「**イベントの記録」**を押してから、Linearからテストイベントを送信してください(または、Workflow Webhooksの「テスト送信」機能をご利用ください)。これにより、Shopify Flowがデータのパターンを学習します。
- 所有しているすべてのWebhookは同じShopify Flowトリガーを起動するため、このワークフローを「リニア」のみに限定するには、Webhook IDを最初の条件として追加してください。IDはWebhookページに表示されています。
- アクションを追加してください ― お客様にタグを付ける、メモを追加する、社内メールを送信する、メタフィールドを更新する。



ステップ4 - エンドツーエンドでテストする
Linearで実際のイベントをトリガーしてください。**「Workflow Webhooks」→「History」に、ステータス「Success」**の呼び出しが表示されるはずです。署名が正しくない場合は、その理由が記載された失敗のエントリが表示されます。また、署名付きWebhookの検証 では、どのステップで失敗したかを正確に表示する署名テスターについて解説されています。

署名が一致しません▾
順に、シークレット(最も一般的な原因として、余分なスペースや、異なる環境のキーが使用されていること)、送信者が別のエンドポイントのシークレットを使用しているかどうか、そしてLinearとアプリの間でボディが書き換えられているかどうかです。署名は生のバイト列を対象としているため、JSONのフォーマットを変更するプロキシによって署名が破損してしまいます。 Webhookページの署名テスターには、署名された正確なテキストが表示されます。
どのリクエストでも401エラーが表示されます▾
Webhookの認証が**「HMAC」**に設定され、「Linear」プロバイダーが選択されていること、シークレットが入力されていること、そしてLinearがアプリの表示通り、末尾のコードも含めて正確にそのURLへPOSTしていることをご確認ください。
「履歴」には何も表示されません▾
リクエストは届きませんでした。Linear内のURLを再度確認し、Linear自身の配信ログで受信した応答を確認してください。「404」というエラーは、Webhookが間違っているか削除されていることを意味します。「429」というエラーは、プランの呼び出し制限を超えていることを意味します。詳細は プランと利用方法 をご覧ください。
ワークフローが、誤ったイベントに対して実行されてしまいます▾
ストア内のすべてのWebhookは、同じShopify Flowトリガーを起動します。ワークフローの最初のステップとして、WebhookIDに基づく条件を追加するか、Linearから送信するイベントを絞り込んでください。
関連情報
- 署名付きWebhookの検証 - 当社が認証したすべてのプロバイダー、および認証していないプロバイダーの記載方法について。
- ペイロードのマッピングとShopify Flow変数 - ペイロードから適切なフィールドを抽出し、Shopify Flowに取り込むこと。
- 重複配送防止 - Linearが配信を再試行すると、どうなるのでしょうか。
- 沿革とトラブルシューティング - すべてのリクエストのログ(再生機能付き)。

