> ## Documentation Index
> Fetch the complete documentation index at: https://docs.revize.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Klaviyo

> お客様が注文を編集したときにKlaviyoから自動メールを送信します。Shopify Flow、Revize、Klaviyoを接続して、あらゆる注文変更についてお客様に通知します。

<Info>
  **設定にお手伝いが必要ですか？** 私たちのチームがShopify Flow + Klaviyo統合全体を設定できます。[ご連絡](/ja/support/contact)ください。対応します。
</Info>

## 必要なもの

* Shopify Flow（すべてのShopifyプランで利用可能）
* [Klaviyo Shopifyアプリ](https://apps.shopify.com/klaviyo-email-marketing)がインストールされたKlaviyoアカウント
* Shopify Flowトリガーが有効になったRevizeのインストール

## 仕組み

Revizeはお客様が注文を編集するたびにShopify Flowトリガーを発火させます。そのトリガーをKlaviyoの「Track an Event」アクションに接続すると、注文データがKlaviyoに送信されます。そこから、Klaviyo Flowを構築してメールを送信します。

Revizeトリガー → Shopify Flow → Klaviyoイベント → Klaviyoメール

***

## 利用可能なトリガー

これらのRevizeトリガーのいずれかでKlaviyoメールを送信できます。

<CardGroup cols={2}>
  <Card title="注文が編集された" icon="pen-to-square" color="#6366f1">
    商品の変更やディスカウントコード編集を含む、任意の注文編集で発火します。
  </Card>

  <Card title="配送先住所が更新された" icon="location-dot" color="#0ea5e9">
    お客様が配送先を変更したときに発火します。
  </Card>

  <Card title="メールアドレスが更新された" icon="envelope" color="#10b981">
    お客様がメールアドレスを更新したときに発火します。
  </Card>

  <Card title="電話番号が更新された" icon="phone" color="#3b82f6">
    お客様が電話番号を更新したときに発火します。
  </Card>

  <Card title="配送日が更新された" icon="calendar" color="#f59e0b">
    お客様が配送日を選択または変更したときに発火します。
  </Card>

  <Card title="注文がキャンセルされた" icon="xmark" color="#ef4444">
    お客様が注文をキャンセルしたときに発火します。
  </Card>

  <Card title="サポートチケットが作成された" icon="headset" color="#8b5cf6">
    お客様がポータルからサポートリクエストを送信したときに発火します。
  </Card>

  <Card title="税務インボイスが生成された" icon="file-invoice" color="#14b8a6">
    お客様が注文の税務インボイスを生成したときに発火します。
  </Card>
</CardGroup>

<Note>
  各トリガーは同じ設定プロセスに従います。変わるのは、Shopify Flowで選択するトリガー、Klaviyoに送信するイベント名、イベントプロパティだけです。
</Note>

***

## パート1：Shopify Flowのセットアップ

### ステップ1：Klaviyoのパブリックアプリキーを見つける

<Steps>
  <Step title="Klaviyoにログイン">
    Klaviyoダッシュボードに移動します。
  </Step>

  <Step title="Settingsを開く">
    左下隅のアカウント名をクリックし、**Settings**に移動します。
  </Step>

  <Step title="API Keysに移動">
    **API Keys**セクションに移動します。
  </Step>

  <Step title="パブリックAPIキーをコピー">
    **Public API Key**（短い英数字コード）をコピーします。これはステップ3で必要になります。
  </Step>
</Steps>

<Warning>
  必ず**Public** APIキーをコピーしてください。Private APIキーではありません。パブリックキーは短い方です。
</Warning>

***

### ステップ2：Shopify Flowワークフローを作成

<Steps>
  <Step title="Shopify Flowを開く">
    Shopify管理画面で、**Apps → Shopify Flow**に移動し、**Create workflow**をクリックします。
  </Step>

  <Step title="Revizeトリガーを選択">
    **Select a trigger**をクリックし、**Revize**を検索して、必要なトリガー（例：Order edited、Shipping address updatedなど）を選びます。
  </Step>

  <Step title="Waitアクションを追加">
    トリガーの下の\*\*+**をクリックし、**Wait**アクションを追加します。期間を**10秒\*\*に設定します。
  </Step>

  <Step title="Get Order Dataアクションを追加">
    Waitステップの下の\*\*+\*\*をクリックし、**Get Order Data**アクション（Shopifyアクション）を追加します。

    次のように設定します。

    * **Select a query**を**Advanced**に設定
    * **Edit query**フィールドに次を入力：`id:{{order.legacyResourceId}}`
    * **Maximum number of orders**を**1**に設定
    * **Sort data by**を**Updated at, Descending**に設定
  </Step>
</Steps>

<Note>
  **なぜ10秒待つのか？** ShopifyのAPIが新鮮なデータを取得する前に、最新の注文変更を反映する時間を与えます。Get Order Dataステップが、現在の正しい品目とバリアントを取得します。
</Note>

### ステップ3：Klaviyo「Track an Event」アクションを追加

<Steps>
  <Step title="Klaviyoを検索">
    アクションリストで**Klaviyo**を検索し、**Track an Event**を選択します。
  </Step>

  <Step title="フィールドに記入">
    以下の表を使って各フィールドに記入します。
  </Step>
</Steps>

| フィールド                      | 値                              |
| -------------------------- | ------------------------------ |
| **Klaviyo Public API Key** | ステップ1のパブリックAPIキー               |
| **Event Name**             | 以下のイベント名表を参照                   |
| **Customer Email Address** | `{{order.customer.email}}`     |
| **Customer First Name**    | `{{order.customer.firstName}}` |
| **Customer Last Name**     | `{{order.customer.lastName}}`  |

#### トリガー別のイベント名

各トリガーをKlaviyoで識別できるよう、説明的なイベント名を使用します。

| Revizeトリガー     | 推奨イベント名                        |
| -------------- | ------------------------------ |
| 注文が編集された       | `Revize_Order_Edited`          |
| 配送先住所が更新された    | `Revize_Address_Updated`       |
| メールアドレスが更新された  | `Revize_Email_Updated`         |
| 電話番号が更新された     | `Revize_Phone_Updated`         |
| 配送日が更新された      | `Revize_Delivery_Date_Updated` |
| 注文がキャンセルされた    | `Revize_Order_Cancelled`       |
| サポートチケットが作成された | `Revize_Support_Ticket`        |
| 税務インボイスが生成された  | `Revize_Tax_Invoice`           |

<Tip>
  これらのイベントには好きな名前を付けられます。これらは整理のための推奨名にすぎません。
</Tip>

### ステップ4：顧客プロパティを設定

**Customer Properties**フィールドに、次のJSONを貼り付けます：

```json theme={null}
{
  "$email": "{{order.customer.email}}",
  "$first_name": "{{order.customer.firstName}}",
  "$last_name": "{{order.customer.lastName}}"
}
```

これにより、イベントを関連付ける顧客プロフィールがKlaviyoに伝わります。

### ステップ5：イベントプロパティを設定

**Event Properties**フィールドに、トリガーに合うJSONを貼り付けます。これはGet Order Dataステップから取得した新鮮な注文データを使用するため、Klaviyoは常に正しい現在のデータを取得します。

<Tabs>
  <Tab title="注文が編集された">
    更新された注文の完全な詳細（品目を含む）を送信したい場合に使用します：

    ```liquid theme={null}
    {% for single_order in getOrderData %}
    {
      "order_id": "{{single_order.id}}",
      "order_name": "{{single_order.name}}",
      "order_number": "{{single_order.legacyResourceId}}",
      "total_price": "{{single_order.totalPriceSet.shopMoney.amount}}",
      "subtotal_price": "{{single_order.subtotalPriceSet.shopMoney.amount}}",
      "total_tax": "{{single_order.totalTaxSet.shopMoney.amount}}",
      "total_shipping": "{{single_order.totalShippingPriceSet.shopMoney.amount}}",
      "currency": "{{single_order.currencyCode}}",
      "edited_at": "{{single_order.updatedAt}}",
      "customer_email": "{{single_order.customer.email}}",
      "customer_name": "{{single_order.customer.firstName}} {{single_order.customer.lastName}}",
      "line_items": [{% assign comma = "" %}{% for item in single_order.lineItems %}
        {% if item.currentQuantity != 0 %}{{comma}}
        {"title": {{item.title | json}}, "quantity": {{item.currentQuantity}},
         "price": "{{item.originalUnitPriceSet.shopMoney.amount}}",
         "variant_title": {{item.variantTitle | json}}, "sku": {{item.sku | json}}}
        {% assign comma = "," %}{% endif %}
      {% endfor %}]
    }
    {% endfor %}
    ```

    <Warning>
      `line_items`配列の括弧`[ ]`を引用符で囲まないでください。Klaviyoが適切な配列を受け取るには、括弧がすべての引用符の外にある必要があります。
    </Warning>
  </Tab>

  <Tab title="住所／メール／電話／配送日">
    配送先住所、連絡先情報、または配送日の更新に使用します。品目なしで注文の概要を送信します：

    ```liquid theme={null}
    {% for single_order in getOrderData %}
    {
      "order_id": "{{single_order.id}}",
      "order_name": "{{single_order.name}}",
      "order_number": "{{single_order.legacyResourceId}}",
      "total_price": "{{single_order.totalPriceSet.shopMoney.amount}}",
      "currency": "{{single_order.currencyCode}}",
      "updated_at": "{{single_order.updatedAt}}",
      "customer_email": "{{single_order.customer.email}}",
      "customer_name": "{{single_order.customer.firstName}} {{single_order.customer.lastName}}",
      "shipping_address": "{{single_order.shippingAddress.address1}}, {{single_order.shippingAddress.city}}, {{single_order.shippingAddress.province}} {{single_order.shippingAddress.zip}}, {{single_order.shippingAddress.country}}"
    }
    {% endfor %}
    ```
  </Tab>

  <Tab title="キャンセル">
    注文キャンセルイベントに使用します：

    ```liquid theme={null}
    {% for single_order in getOrderData %}
    {
      "order_id": "{{single_order.id}}",
      "order_name": "{{single_order.name}}",
      "order_number": "{{single_order.legacyResourceId}}",
      "total_price": "{{single_order.totalPriceSet.shopMoney.amount}}",
      "currency": "{{single_order.currencyCode}}",
      "cancelled_at": "{{single_order.updatedAt}}",
      "customer_email": "{{single_order.customer.email}}",
      "customer_name": "{{single_order.customer.firstName}} {{single_order.customer.lastName}}"
    }
    {% endfor %}
    ```
  </Tab>
</Tabs>

<Note>
  `{% for single_order in getOrderData %}`ループは、元のトリガーではなく新鮮に取得された注文データから読み取ります。これにより毎回正しいデータが保証されます。
</Note>

### ステップ6：ワークフローをオンにする

<Steps>
  <Step title="すべてのフィールドを確認">
    すべてが正しく入力されていることを確認します。
  </Step>

  <Step title="ワークフローをオンにする">
    右上隅の**Turn on workflow**をクリックします。
  </Step>

  <Step title="完了">
    ワークフローがアクティブになりました。お客様がRevizeを通じてそのアクションをトリガーするたびに、最新の注文データとともにイベントがKlaviyoに送信されます。
  </Step>
</Steps>

***

## パート2：Klaviyoメールのセットアップ

### ステップ7：Klaviyo Flowを作成

<Steps>
  <Step title="新しいFlowを作成">
    Klaviyoで、**Flows → Create Flow**に移動し、**Build your own**を選択します。
  </Step>

  <Step title="トリガーを設定">
    トリガーには、**Metric**を選択し、使用したイベント名（例：`Revize_Order_Edited`）を検索します。
  </Step>

  <Step title="メールアクションを追加">
    フローに**Email**アクションをドラッグします。
  </Step>

  <Step title="テンプレートをデザイン">
    以下の変数を使って注文データを動的に取り込みます。
  </Step>
</Steps>

### ステップ8：メールテンプレート変数

Klaviyoメールテンプレートでこれらの変数を使用します：

| データ   | Klaviyo変数                      |
| ----- | ------------------------------ |
| 顧客名   | `{{ event.customer_name }}`    |
| 注文番号  | `{{ event.order_name }}`       |
| 小計    | `{{ event.subtotal_price }}`   |
| 合計税金  | `{{ event.total_tax }}`        |
| 配送    | `{{ event.total_shipping }}`   |
| 合計価格  | `{{ event.total_price }}`      |
| 通貨    | `{{ event.currency }}`         |
| 編集日   | `{{ event.edited_at }}`        |
| 顧客メール | `{{ event.customer_email }}`   |
| 配送先住所 | `{{ event.shipping_address }}` |

### 品目の表示

編集された注文の各商品を表示するには、Klaviyoメールテンプレートでこのループを使用します：

```liquid theme={null}
{% for item in event.line_items %}
  {{ item.title }}
  Variant: {{ item.variant_title }}
  Qty: {{ item.quantity }}
  Price: {{ item.price }}
{% endfor %}
```

<Tip>
  KlaviyoメールテンプレートでHTML/CSSを使用してこのループをスタイリングし、ブランドに合わせることができます。例えば、テーブル内に配置してきれいなインボイス風にできます。
</Tip>

### メールの例

メールの件名と本文の見え方の例：

```
Subject: Your order {{ event.order_name }} has been updated

Hi {{ event.customer_name }},

Your order has been updated. Here is your revised summary:

{% for item in event.line_items %}
  {{ item.title }} ({{ item.variant_title }})
  Qty: {{ item.quantity }}  |  Price: {{ item.price }} {{ event.currency }}
{% endfor %}

Total: {{ event.currency }} {{ event.total_price }}
```

***

## 重複メールを防ぐ

お客様が1つのセッションで複数の素早い編集を行うと、Klaviyoは複数のメールを送る場合があります。これを防ぐには：

1. Klaviyo Flowを開く
2. **Flow Filter**を追加
3. **過去5分以内**に顧客がこのメールを受け取った場合は抑制するように設定

***

## トラブルシューティング

<AccordionGroup>
  <Accordion title="フローが「Succeeded」と表示されるが、Klaviyoにイベントがない" icon="circle-exclamation">
    Shopify Flowの**Public API Key**がKlaviyoアカウントのものと一致するか再確認してください。これが最もよくある問題です。
  </Accordion>

  <Accordion title="イベントは届くがデータが空" icon="circle-exclamation">
    Event Properties JSONが無効な可能性があります。文字列値内に改行がなく、`line_items`が引用符で囲まれていない`[ ]`括弧を使用していることを確認してください。
  </Accordion>

  <Accordion title="品目に間違ったバリアントが表示される" icon="circle-exclamation">
    10秒の待機を伴う**Get Order Data**ステップを使用していること、Event Propertiesが`order.lineItems`を直接ではなく`getOrderData`ループを使用していることを確認してください。
  </Accordion>

  <Accordion title="複数のメールが送信される" icon="circle-exclamation">
    Klaviyoに**Flow Filter**を追加し、過去5分以内に顧客がこのメールを受け取った場合は抑制するように設定します。
  </Accordion>

  <Accordion title="Klaviyoでメトリックを見つける場所" icon="circle-question">
    **Analytics → Metrics**に移動し、イベント名（例：`Revize_Order_Edited`）を検索します。イベントが初めて受信されたときに自動的に作成されます。
  </Accordion>

  <Accordion title="動作したか確認する方法" icon="circle-check">
    Klaviyoの**Audience → Profiles**に移動し、顧客のメールを見つけ、**Activity**タブでイベントを確認します。
  </Accordion>
</AccordionGroup>

***

## 複数のトリガーが必要ですか？

各トリガーに別々のShopify Flowワークフローを設定できます。例えば：

* **ワークフロー1：** 注文が編集された → `Revize_Order_Edited` → 「ご注文が更新されました」メール
* **ワークフロー2：** 住所が更新された → `Revize_Address_Updated` → 「配送先住所が変更されました」メール
* **ワークフロー3：** 注文がキャンセルされた → `Revize_Order_Cancelled` → 「ご注文がキャンセルされました」メール

各ワークフローは上記と同じ手順に従います。トリガー、イベント名、イベントプロパティを変更するだけです。

***

<Tip>
  お手伝いが必要ですか？[ご連絡](/ja/support/contact)いただければ、Shopify Flow + Klaviyo統合全体を設定します。
</Tip>
