Shopify Flowで30日以上後のワークフローを動かす方法

こんにちわ!

Shopify Flowが大好きな小坂です。

今回の記事でもShopify Flowについて解説したいと思います。

コードを書ける人じゃないと対応しづらいですが、理解すると活用範囲がかなり広がるので是非ご確認ください!

なぜやりたいのか?

Klaviyoなどの外部メールツールではなく、Shopify Mailを使おうとすると、ステップメールは必然的にShopify Flowを利用することになり、Waitの制限がめちゃくちゃ厄介なんですよね。

Shopify FlowはWaitというフローがあるのですが、30日間しか最大で待つことが出来ず、ワークフロー内では90日間が合計という制限がかかってしまいます。

この制限があると、例えば初回購入の1年後近くに「今年も使いませんか?」のようなメールを送れないため、Klaviyoなどを使う、というのが一般的でした。

どうやって実現するのか?

これは新しくできたらスケジュール実行機能、を活用します。

ただこれ、例によってShopify公式なので使い方の実例がないんですよね…

ということで、初回購入の333日後にメールを送るというフローを作りたいと思います。

1.Scheduled Timeを選択

作ってみたらわかると思いますが、特定日を指定して、その後Repeatで毎日実行するようにしています

ちなみに毎月、なども選択は出来ますが、Shopify Flowの制約事項として、100件上限があるので出来るだけ細かくした方が良いです。

1日100件以上になってしまう人は、スケジュールを追加することで回避できるようです。

2.注文データを取得する

続いて注文データを取得していきます。

ここが一番厄介。Queryで注文をフィルタリングしなければいけなく、ここが変更できないと日付指定などが出来ません。

実際に使うのはこのコード。
※執筆時点での最新をアップしていますので画像と一部違います。

created_at'{{ scheduledAt | date_minus: "333 days" | date: '%Y-%m-%d'}}' AND source_name:"web" AND NOT tag:'{{ scheduledAt | date: '%Y-%m-%d' }}'

抽出したデータを取得する

要は取得したデータを1つずつ実行するよ、という部分がこちらになります。

ちなみに1日100件以上の注文が入る大型店舗の場合は、先ほどのクエリなどでタグ条件に入れるなどを工夫する必要があります。

メールを送る

あとはいつものようにメール設定するだけですね。

ShopifyMailからテンプレートを作って、それをここで設定してから編集していきます。

まとめ

先日のShopify Editionsで発表されたように、Runcodeが使えるようになるなど、コードを書ける人にとってShopify Flowを使えば自動化の可能性がどんどんと広がっていますね!

もし、こういうのを実現したいけどどうしたらいい?とかわからなければお気軽にお問合せください!

それでは!

追記

実行の実現性を追加するために、Custmer tagに日付タグを付与するように変更。

GraphQLのテストをするには、GraphQLAppをインストールすれば、選択しているクエリが正しいかを見ることが出来ます。

インストールはこちら。

テスト方法は割愛しますが、ちょっと書き方などは変えないといけません。Twitterとかでハックルベリーをメンションして続編希望や質問来たら書いたりしようと思います!

https://shopify.dev/docs/apps/tools/graphiql-admin-api?shpxid=797aa32d-9917-423C-FEE8-0EE7A1D490FE