オートメーションで決まった日(毎月月初)にメタフィールドを更新したい

Topic summary

ユーザーは毎月月初に全顧客のメタフィールドを自動的に更新(falseに変更)したい。

提案された解決策:

  • 推奨方法: Matrixifyなどのアプリを使用した一括変更が最も簡単で確実。

  • Shopify Flowでの実装案:

    1. トリガー:Scheduled time(毎月1日に設定)
    2. アクション:Get customer data で顧客データを取得
    3. For each loop(繰り返し処理)で各顧客に対して以下を実行:
      • メタフィールドをfalseに更新
      • 「target_metafield:false」タグを追加
      • 「target_metafield:true」タグを削除

重要な制約:

  • Get customer dataは最大100件の顧客データしか扱えない
  • 顧客が100人以上いる場合、フローを複製して10分おきに実行する必要がある
  • この方法は動作未確認で不具合の可能性あり

回答者は、Shopify Flowより一括変更アプリの使用を強く推奨している。

Summarized with AI on November 19. AI used: claude-sonnet-4-5-20250929.

Shopifyの自動化(オートメーション)を使って、単純に「毎月月初に顧客メタフィールドを更新する(全ての顧客のメタフィールドをfalseへ変更する)」というのを設定したいのですが、うまくいきません。
どのように設定したらいいでしょうか?

@n_ogawa3

興味があり調査してみました。

結論から申しますと、

Matrixifyなどを使用してMetafeildを一括変更した方が良いかもしれません。

https://apps.shopify.com/excel-export-import?locale=ja

さて、

「Shopifyの自動化(オートメーション)」というのはShopify Flowのことを指していると思われますので、Shopify Flowで実現しようとするとどうなるかについても回答いたします。

しかし上述の通り、Shopify Flowで実現するより、

Matrixifyなどで一括変更した方が簡単かつ間違いがないと考えています。

なお、これから説明する内容は動作確認をしておりませんので、

何か不具合がある可能性もあります。

まず、下図のようなフローを組みます。

  1. トリガー: Scheduled time

https://help.shopify.com/ja/manual/shopify-flow/reference/triggers/scheduled-time

毎月1日に実行するよう設定します。

  1. アクション: Get customer data

https://help.shopify.com/ja/manual/shopify-flow/reference/actions/get-customer-data

下図のように設定をします。

「クエリを編集」に設定されている

tag_not: '_taget_metafield:false'

が今回の設定の肝になります。

「顧客データの取得」は、データの絞り込みにメタフィールドを利用できません。

そのため、メタフィールドと顧客タグの両方に値を埋め込むことで絞り込みを行います。

  1. 繰り返し処理: For each loop (iterate)

3つ作成しますが、内容はどれも下図と同じです。

  1. それぞれの繰り返し処理において下記を実行します。
  • メタフィールドのアップデート
  • 顧客タグ「_taget_metafield:true」を削除
  • 顧客タグ「_taget_metafield:false」を追加

このフローによって、

顧客タグ「_taget_metafield:false」を持たない顧客(逆にいうと、「_taget_metafield:true」を持っている顧客)を100件絞り込み、そのそれぞれの顧客に対して、

メタフィールドをfalseにアップデートしつつ、

顧客タグ「_taget_metafield:true」を外し、

顧客タグ「_taget_metafield:false」を追加する、

という処理をします。

(※本来、メタフィールドのアップデートが完了したら、顧客タグの編集を行う、というフローを組みたかったのですが、仕様上断念しました。)

さて、

このやり方の問題点の1つとして、Get Customer Dataは、

100件の顧客データしか扱えない事が挙げられます。

もし、質問者様のストアに100目以上の顧客が登録されている場合、

フローを複製し、毎月1日に10分おきほとで、それぞれのFlowを予定時刻実行するようにします。

※100件のデータ処理を完了するのに10分で足りるかは試してみないとなんとも言えません。もっと長くした方が良いかもしれませんし、もっと早く完了できるかもしれません。

なお、

フローを複数作成するのではなく、

1つのフロー中で完結する方法もあります。

For Eachのthenからwait 10分に繋ぎ、

そこから際にGet Customer Dataを繋いで、

同様の処理を十分に顧客全員を更新できる数まで増やします。

このやり方の問題01

顧客数が多すぎる場合、各処理を作ったり複製したりするだけでも大変。

このやり方の問題02

フローを複製する方法も、フローの中で処理を複製する方法も、

繰り返し処理の中にミスがあるとき、

全てのフローや処理を修正する必要があり大変。

このやり方の問題03

問題、というはわけではないのですが、

顧客タグも併用するため、

対象のメタフィールドを更新する処理に、

顧客タグの編集処理を必ず加える必要があり、

少し手間です。

そのようなわけで、

Matrixifyなどでの一括更新をおすすめしています。

ご参考まで。

(キュー田辺)