Shopifyのデータをエクスポートする方法は複数存在しますが、それぞれにメリット・デメリットがあります。
公式のエクスポート機能は直感的ですが、API経由でのみ取得可能な情報は出力できません。また、Matrixifyを使うとより詳細なデータのエクスポートが可能ですが、10ユーザーを超えると有料となります。
そこで本記事では、Shopify Flowを使って「無料で、詳細な顧客データをエクスポートする方法」をご紹介します。
本記事で紹介する施策に使うアプリ・サービス
- ワークフローの自動化Shopifyアプリ「Shopify Flow」:Shopifyベーシックプラン以上で利用可能(2023年8月時点)
- オンラインでスプレッドシートを作成・編集できる「Google Sheet」:Googleアカウントがあれば誰でも利用可能
ワークフローの設定に使う「Shopify Flow」とは、Shopify内の会員登録・購入・発送などのイベントやShopifyアプリ側のイベントをトリガー(発動条件)にして、Shopify内のデータで条件分岐を作り、タグ付与・削除やメタフィールドへのデータ追加などのShopify上のアクションやShopifyアプリ側でのアクションをノーコードで実現できるアプリです。
詳しくはこちらの記事を併せてご一読ください!
※有料アプリの利用もアリな場合は、速くて簡単なMatrixifyでのエクスポートがおすすめ
Shopifyの顧客データを出力するには、公式のエクスポート機能を使う方法や、Matrixifyという出力アプリを使う方法、Shopify Flowのスケジュールトリガーを使う方法などがあります。
公式のエクスポート機能を使うと、Shopify顧客管理からすぐにエクスポートできますが、API経由でしか取得できないメタフィールドなどの顧客情報は出力できません。
※ 公式のエクスポート機能で出力できるのは「姓名 / メールアドレス / マーケティングメール同意の有無 / 会社 / 住所 / 支払合計額 / 注文数 / 顧客タグ / 顧客メモ / 免税の有無」です。
メタフィールドやその他の情報を含んだデータをエクスポートしたい時、弊社がよくお勧めしているのはMatrixifyです。操作は簡単で、スピードも速いです。
Matrixifyでの顧客情報の出力方法は、こちらの記事内で紹介しています。
ただし、Matrixifyを使う方法では、10ユーザーを超えたエクスポートには有料プランの利用が必須となります。
そこで本記事では、Shopify Flowを使って無料でエクスポートする方法をご紹介します。
当手法ではShopify Flowのスケジュールトリガーを利用しており、一回の処理で呼び出せる顧客数が最大100個までという制限があるため、(出力したい顧客の数÷100)回処理を繰り返す形になる点にご留意ください。また、重複して顧客情報が出力されるのを回避する目的で、30分に1回の処理を行う設定にしているため、1日を使って、最大2400個までの出力になります。
顧客数が多ければ多いほど待つ時間も増えますので、その点も加味して、Matrixifyを使うか、Shopify Flowを使う(本記事で紹介する方法を使う)か検討いただけますと幸いです。
無料で顧客データをエクスポートするには?メタフィールドに保存しているLINE IDを抽出する例で解説
Shopify Flowのスケジュールトリガーを使って、顧客管理のメタフィールドに保存されているデータをエクスポートする方法を解説していきます。本記事では、メタフィールドに保存されているデータの例として「LINEのユーザーID」をエクスポートしていきますが、他のデータを出力する際にもご利用いただけます。
※弊社の提供しているShopifyアプリ「CRM PLUS on LINE」では、顧客のメタフィールドにLINEのユーザーIDを格納しています。
Shopify Flowでのワークフロー設定イメージ
まず最初に、今回設定するShopify Flowの完成イメージはこちら(下図)です。
スケジュールトリガーを利用して顧客情報を取得し、Google Sheetへの出力と、重複処理を回避するための顧客タグを付与する流れです。
続いて、このワークフローの設定手順をひとつひとつ解説していきます。
手順1:スケジュールトリガーの設定
今回は、スケジュールトリガーを利用して、ワークフローを定期実行したいのでShopify公式の提供する「Scheduled time」をトリガーに指定します。
トリガーにはScheduleを2つ設定します。一つは任意の日時開始で :00 に開始するもの、もう一つは :30 に開始するものです。どちらも1時間ごとに繰り返し設定することで、30分ごとに本ワークフローのトリガーが発火するようになります。
手順2:アクション(Get customer data)の設定
出力する顧客のデータを取得するために、Get customer dataアクションを指定します。
「Sort data by」欄では、取得する顧客の順番を指定できます。必要に応じて適宜設定してください。上記画像の例では、顧客情報にアップデート(顧客情報の編集や注文の作成)があったユーザーを降順(新しい順)に指定しています。
「Maximum number of customers」欄には、データを取得する顧客数を入力します。最大値の”100”を指定してください。※動作確認で少しだけ出力してみる場合は”5”などでも可です。
「クエリを編集」欄は、一定の条件に合ったユーザーだけを絞り込みたい時に使います。
プリセットされているクエリを利用することもできますし、「高度」のクエリを選択して自身で記述することもできます。
今回は、「高度」のクエリを選択して、同一ユーザーへの重複実行を避けるためのクエリを設定していきます。
上記画像内にある”tag:’line’ AND NOT tag:’sheetAdded’”は、 顧客タグ「line」が付与されており、かつ顧客タグ「sheetAdded」が付与されていないことを指定しています。
AND NOT tag:’sheetAdded’ は、本ワークフローの処理が同一ユーザーに重複して実行されないようにするための検索クエリです。必ず設定してください。
手順3:アクション(For each loop)の設定
手順2で設定したアクション(Get customer data)でデータを取得したので、次にデータを出力するアクションを設定します。
For each loop アクションを選択して、「リスト」欄では”Get customer data”を指定します。
このブロックには Then と Do this for each item の2つの繋ぎ口がありますが、今回は「Do this for each item」を選択して、手順4の設定に進みます。
手順4:アクション(Add row to spreadsheet)の設定
「Google Sheets for Shopify Flow」から提供されているアクション「Add row to spreadsheet」を指定します。
「Spreadsheet URL」には出力先となるGoogle SheetのURLを、「Tab name」にはSheet内のどのタブに出力するかを指定します。
「Row contents (comma separated)」 には、出力したいデータを指定します。基本的には右下の「変数を追加」から探して指定します。画像の例ではユーザーのShopify IDとメタフィールドの値を出力しています。
{{getCustomerDataForeachitem.id}} がShopify IDを指定したもの、{% for metafields_item in… から始まるものが、メタフィールドの中でもNamespaceやKeyを特定のものに指定して出力する変数です。
{% for metafields_item in getCustomerDataForeachitem.metafields %}{% if metafields_item.namespace == '[namespace]' %}{% if metafields_item.key == '[key]' %}{{ metafields_item.value }}{% endif %}{% endif %}{% endfor %}
上記の [namespace]、[key]の部分を特定のものに置き換えてご利用ください。
※初めてAdd row to spreadsheetを使う場合の注意点
初めてGoogle Sheetのアクションを設定する時には、先にGoogleアカウントとの連携が必要です。「連携」ボタンをクリックし、許認可画面で許可をして連携を完了させてください。
手順5:アクション(For each loop)の設定
2個目のアクションを設定したいので、1つ目の For each loop の「Then」に2つ目の For each loop を繋げます。
1つ目同様に「リスト」には”Get customer data”を指定します。
手順6:アクション(Add customer tags)の設定
2つ目の For each loop のDo this for each item 欄に、Shopify公式のアクション Add customer tags を指定します。次回以降Get customer dataで使ってデータを取得する際に、一度Google Sheetに出力されたユーザーが重複して取得されないよう、「sheetAdded」タグを付与します。
※このタグ付与設定を行うことで、手順2の「高度なクエリ」で指定した AND NOT tag:’sheetAdded’ の除外対象になります。
手順7:ワークフローのテスト実行
実行してみて、Google Sheetに出力されていたら設定完了です。100ユーザーずつ出力されるので、( 出力したいユーザー数 ÷ 100 )回実行してください。
終わりに
弊社ソーシャルPLUSでは、(LINE活用に関する)Shopify Flowの構築・活用サポートも行っています。お困りの際はぜひお気軽にご相談くださいませ。