リマインドメールをお客様の指定した日付+○日毎に送りたい | Community
Skip to main content
亮_建口
New Participant
June 21, 2018
Solved

リマインドメールをお客様の指定した日付+○日毎に送りたい

  • June 21, 2018
  • 5 replies
  • 204 views

こんにちは。株式会社フクナガエンジニアリングの建口と申します。

1. お客様に「リマインドして欲しい日付」と「繰り返す周期」を入力していただく

2. 「リマインドして欲しい日付」になったらリマインドメールを送信

3. リマインドメールを送信した日から「繰り返す周期」に入力された日数が経った後、もう一度リマインドメールを送信する

4. リマインドメールの配信停止フラグがfalseである間はずっと3. を繰り返す

というキャンペーンを作成したいと考えています。

始めにフローの「待機」を使う方法を考えたのですが、待機だと4. の「ずっと繰り返す」が実現できませんでした。

「繰り返す周期」を1ヶ月、2ヶ月などとしておいて、スマートリストで「繰り返す周期」が1ヶ月のリードに絞り込み、スケジュールの「スケジュールの繰り返し」で毎月1日に実行を繰り返す、という方法であれば4. の「ずっと繰り返す」を実現できるのですが、Aというお客様は10日にリマインドして欲しい、Bというお客様は15日にリマインドして欲しい、というパターンに対応できないようです。

どうにか1. ~4. を実現できる方法はないでしょうか。

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Taishi_Yamada

@ryo tateguchi さん、こんにちは

@Sunity西田 正洋 さんがwebhookの組み合わせでの実現を説明されてますが、単体でやるとしたら、scoreのfieldをうまく活用するとできそうです。

1)

Formでに、"start date"に日付を入れてもらう。"period"に何日間隔か?を数値で入れてもらう。(start date, periodは適当につけたFieldの名前です。任意のフィールドでどうぞ。periodはtype がscore。start dateはdateを想定してます。)

2)

SC1(Smart Campaign)で、Flow : Change Data Value を利用して、"period"の数値を、field: "count"にコピーする。(countも任意のフィールドでどうぞ。countのtypeはscoreを想定してます)

値のコピーは、change data value でtokenを使うとできます (具体的には {{lead.period}} とchange data valueのnew valueに書きます)。

SC1のRunは、TriggerでFills Out Formを利用して、Form入力された直後にRunする仕組みで構わないかと。

3)

SC2は毎日1回繰り返しで走らせます。BatchのSchedule Recurrenceで繰り返してください。

SC2では"count"の値をまず -1 します(countの数値を1減らす)。これはFlow: Change Scoreを使います。

↓実際に入っているField名やTokenは違いますが、書くとこんな感じです。ヤヤコシイポイントとして、値のコピーは、Change Data Valueでないと出来ません。これはNew Valueでないと、Tokenを使えないからです。他方で、「マイナス1する」は、Change Scoreでないと出来ません。値の増減はChange Scoreでないと出来ないのです。なお、数値を指定して書き換えることは、どちらでも可能です。Change Score なら Change:に =50 と書けば 50になりますし(イコールをお忘れなく)、Change Data Valueは New Value:に 50 と書けば50になります。

4)

SC3も同じく1日1回繰り返します。

SC3は実際にEmailを送る仕組みです。countをSmart ListでFilterして0になっていたらSend Emailします。その後で、countを元の値に戻してあげます。(periodの値をcountにコピーする)

5)

スタート日 という点については、SC2とSC3のSmart Listで、start date で in past : 10 years といった設定を入れておき、start dateの日付がSCがRUNするより過去になったらSC2/SC3が動き始めるようにします。

6)

何らかのキッカケで配信停止 にすると思うので、その状態になったら、SC2/SC3の対象から外れるよう、同じくSC2/SC3のSmart Listに条件を足しておきます。

また、念の為、SC1/SC2/SC3は、最初のFormを入力した人に限る。といった条件を入れておいたほうが関係ない人にメールが行くのを防げたり(事故防止)、Marketoの処理を軽減させることに繋がりそうです。

大雑把な仕掛けはこんな感じでしょうか。

実際に全てを組み上げたわけでないので、穴があるかもしれませんがご了承ください。

もし詳細で詰まったら、時間あるときに、もう少し具体的にやってみますのでお知らせください。

以上、ご参考までに。

-Yamada

5 replies

June 25, 2018

こんにちは、freeeの嶋田です。

あまり細かくやらないでも大丈夫な施策であれば、もう少しカンタンにできるかもです。デメリットはトリガが発火しまくるので、数があまり多いとうまく発火しないかもです...

施策例:

  • お客様に「5日、10日、30日」の3つの周期からリマインダーを送るタイミングを選んでいただく
  • お客様から「もうリマインダーはいらない」と依頼してもらうまで、リマインダーを送り続ける

必要な素材:

  • 配信申し込みフォーム×1
    • タイミングを格納するフィールド(データ型はstring)をSelectで突っ込んでおく
  • 配信停止依頼フォーム×1
  • リマインダーメール×3
    • 希望周期が5日用メール

    • 希望周期が10日用メール

    • 希望周期が30日用メール

  • 静的リスト×3
    • 希望周期が5日用リスト
    • 希望周期が10日用リスト
    • 希望周期が30日用リスト
  • フォーム入力をトリガに、希望周期リストに入れるキャンペーン
  • 配信開始キャンペーン×3
    • 希望周期が5日用キャンペーン

    • 希望周期が10日用キャンペーン

    • 希望周期が30日用キャンペーン

  • 配信停止キャンペーン×1

設定の流れ:

  1. 申し込みフォームに入力をトリガに、希望周期に応じて3つの静的リストに入れる
  2. 各静的リストにaddをトリガに、配信キャンペーンを発火
    • このキャンペーンは、発火条件としてcampaign is requestedのトリガも仕込んでおき、メール配信→希望期間をwait→waitが終わったらrequest campaignで同じ配信キャンペーンを発火させれば、希望期間をwaitして毎回同じキャンペーンが回ります
  3. メール内に配信停止フォームへのリンクを仕込んでおき、配信停止フォームに入力をトリガに、各配信キャンペーンからリードを抜く(remove from flowする)
亮_建口
New Participant
June 25, 2018

ありがとうございます!

確かに仕様自体がややこしいですし、

@仕組みを一度組んでみて、

難しそうであれば仕様の見直しもしたいと思います。

よろしくお願いいたします。

Taishi_Yamada
Taishi_YamadaAccepted solution
Community Manager
June 23, 2018

@ryo tateguchi さん、こんにちは

@Sunity西田 正洋 さんがwebhookの組み合わせでの実現を説明されてますが、単体でやるとしたら、scoreのfieldをうまく活用するとできそうです。

1)

Formでに、"start date"に日付を入れてもらう。"period"に何日間隔か?を数値で入れてもらう。(start date, periodは適当につけたFieldの名前です。任意のフィールドでどうぞ。periodはtype がscore。start dateはdateを想定してます。)

2)

SC1(Smart Campaign)で、Flow : Change Data Value を利用して、"period"の数値を、field: "count"にコピーする。(countも任意のフィールドでどうぞ。countのtypeはscoreを想定してます)

値のコピーは、change data value でtokenを使うとできます (具体的には {{lead.period}} とchange data valueのnew valueに書きます)。

SC1のRunは、TriggerでFills Out Formを利用して、Form入力された直後にRunする仕組みで構わないかと。

3)

SC2は毎日1回繰り返しで走らせます。BatchのSchedule Recurrenceで繰り返してください。

SC2では"count"の値をまず -1 します(countの数値を1減らす)。これはFlow: Change Scoreを使います。

↓実際に入っているField名やTokenは違いますが、書くとこんな感じです。ヤヤコシイポイントとして、値のコピーは、Change Data Valueでないと出来ません。これはNew Valueでないと、Tokenを使えないからです。他方で、「マイナス1する」は、Change Scoreでないと出来ません。値の増減はChange Scoreでないと出来ないのです。なお、数値を指定して書き換えることは、どちらでも可能です。Change Score なら Change:に =50 と書けば 50になりますし(イコールをお忘れなく)、Change Data Valueは New Value:に 50 と書けば50になります。

4)

SC3も同じく1日1回繰り返します。

SC3は実際にEmailを送る仕組みです。countをSmart ListでFilterして0になっていたらSend Emailします。その後で、countを元の値に戻してあげます。(periodの値をcountにコピーする)

5)

スタート日 という点については、SC2とSC3のSmart Listで、start date で in past : 10 years といった設定を入れておき、start dateの日付がSCがRUNするより過去になったらSC2/SC3が動き始めるようにします。

6)

何らかのキッカケで配信停止 にすると思うので、その状態になったら、SC2/SC3の対象から外れるよう、同じくSC2/SC3のSmart Listに条件を足しておきます。

また、念の為、SC1/SC2/SC3は、最初のFormを入力した人に限る。といった条件を入れておいたほうが関係ない人にメールが行くのを防げたり(事故防止)、Marketoの処理を軽減させることに繋がりそうです。

大雑把な仕掛けはこんな感じでしょうか。

実際に全てを組み上げたわけでないので、穴があるかもしれませんがご了承ください。

もし詳細で詰まったら、時間あるときに、もう少し具体的にやってみますのでお知らせください。

以上、ご参考までに。

-Yamada

June 25, 2018

スコアを-1していって、0になったら発火させる方式って他にもいろいろ使えそうですね!!

Taishi_Yamada
Community Manager
June 25, 2018

そうですね。ある程度の応用範囲はあると思います。

ただし、これを見て「期待しすぎる」誤解を生じないように補足しておくと、この技が効くのは「1人の人(=Person/Lead)の中でおさまる制御」に限ってです。

よくあるのが「会社単位で、会社に属するメンバーの合計Scoreが○○以上になったら」とか、「プログラム単位で、そのProgramのメンバーの合計Scoreが○○以上になったら」といった条件で制御したくなりますが、残念ながらそれは出来ません。

このような会社単位、プログラム単位で括って条件にしたいことも多いのですが、その場合はMarketo単体では無理ですね。外部システムのチカラをかりるしかないです。(LaunchPointに登録されてるシステムなり、自力ならWebhookやAPIといった出番となります。)

New Participant
June 22, 2018

Sunity株式会社の西田と申します。

Marketo単体だと複数のフィールドをまたいだ計算結果をスマートリスト・フロー等で使うことができないです。

そのため「リマインドメールを送信した日から「繰り返す周期」に入力された日数が経った」の部分を

実現するためにWebhookが必要になり、設定がめんどいです。

キャンペーン設定の一例(の概要)を下記に示します。

Webhookは★部で使います。一行でサラッと書いてますが実際はいろいろ設定必要です。

複雑になってしまうので、こんなことはせずにまずは仕様をシンプルにできないか検討したほうがよいかもですね。

(周期を固定したり、ユーザに何回か先までのリマインド日をすべて入力してもらったり、など。)

■キャンペーンの設定概要

  • スマートリスト:
    • リマインド日が今日  AND  リマインドメール配信停止フラグがFALSE
  • フロー:
    • リマインドメールを送信
    • ★「リマインド日」フィールドを「現在の 'リマインド日'+'繰り返す周期'」に設定するWebhookを呼びだす。
      • ※実際はスケジュール実行のキャンペーンからWebhookは直接呼び出せないため、ここのページの手順3のようにする必要があります。
  • スケジュール
    • 毎日実行
    • 各顧客はフローを毎回実行できる

Webhookの作成方法はこちらが参考になるかもしれません。

1ヶ月サイトアクセス無しLeadのスコアを×90%する

AWSのAPI GatewayとLambdaで自前Webhook作成 → エンジニア対応必須

他にいいやり方あったら私も知りたいです~。

どうぞよろしくお願いします。

Taishi_Yamada
Community Manager
June 22, 2018

おもしろい謎解きですね。

>>どなたか、「これでどうかな?」というご提案、お待ちしています。

-Yamada