フィールドの変更履歴をフィールドに残す | Community
Skip to main content
Eri_Shimomura1
Level 2
May 27, 2017

フィールドの変更履歴をフィールドに残す

  • May 27, 2017
  • 4 replies
  • 865 views

こんにちは。マルケトの下村です。

しばしばこの質問を頂いて、どなたかの記事を案内していたような気がするのですが...私も書いてみました(重複していたらごめんなさいっ!)

フィールドのデータ値変更の履歴を見たいとき、アクティビティログでも確認することができますが、今回は別のフィールドに残しておくというスマートキャンペーンを作ってみたいと思います。

例えば、コンタクト日がどう遷移しているのかをフィールドに記録されるようなものを作りたい...としまして、トリガーキャンペーンを作りたいと思います。

まずは、履歴を残しておくフィールドを新規に作成します。

フィールドが出来たらトリガーキャンペーンを作成します。

トリガー条件

フローアクション

フローアクションでは、コンタクト履歴が空欄だったときのことを考慮して「選択肢」を使って条件制御しています。

既にコンタクト履歴が入っているリードレコードに対しては、「これまでに入っていた値」+「新しく入った日付」をセットするようにします。

ここで注意が一つ。

トリガー条件は「データ値変更」となっています。もし、このコンタクト日がリードの新規作成と同時にセットされる場合にはこのトリガーアクションは動作しません(データ値変更は既に登録されているリードに対し、フィールドの変更がかかった場合に動作します)。新規リードについてもこのトリガーを動作させたいという場合は、新規リード作成時に「コンタクト日の履歴」をセットするキャンペーンを用意します。

さらに注意がもう一つ。

リード作成と同時に動作するトリガーキャンペーンをセットする場合、フォーム入力のように1件ずつデータが来るという場合はよいのですが、インポートで一度に大量に投入する場合はご注意ください。リードの件数が多いとシステムは「リードの作成」と「コンタクト日履歴」という2つの仕事をせねばならなくなるため、どうしても「リードの作成」だけを行うより時間を要してしまいます。

よって、インポートが終わった後にバッチキャンペーンで「履歴」のフィールドに値をセットするか、最初からインポートで「履歴」のフィールドに値をセットするのがよいと思います。

そして有効化する前に、クオリフィケーションルールで毎回リードがこのキャンペーンを通るようにしたら有効化します。

さて、ここまできてこれを応用しようと思った皆様。ご注意事項が更にあります。

例えば、「フォーム入力を記録していきたいな~」と思ったとします。管理上、1つのキャンペーンで出来たらなと思って次のように選択肢を使ってフローアクションを制御しようと考えました。しかし、残念ながら期待通り動作しない可能性が高いです。なぜなら、選択肢の「フォーム入力完了」の条件が評価されるとき、トリガーされた時点ではなく、すべてのアクティビティログ(=リードが作成された以降すべて)が評価されます。今回入力したフォームが「ES_Sampleメルマガ配信」であっても、過去に「ERISHIMO_TEST Form」を既に入力したというアクティビティログがあると、”選択肢1"に合致してしまい、「最後の入力フォーム」フィールドには”ERISHIMO_TEST Form”が記録されてしまうことでしょう。

よって、このような場合にはフォームごとにトリガーを作ります。ただ、出来るだけ設定を共通にして管理を楽にしたいので、トリガートークンを使います。

トリガーキャンペーンはそれぞれのフォームごとに作り、フローアクションは共通にしておいて、フォームが増えても簡単に複製できるようにしておきます。

ERISHIMO_TEST Form用のトリガーキャンペーン

ES_Sampleメルマガ配信用のトリガーキャンペーン

フローアクションではトリガートークンを使っておくことで、複製してもフローアクションを修正する必要はありません。

なお、ここでも「フォーム入力の履歴」というテキストエリアのフィールドを作成しておき、「{{system.date}}-{{trigger.Name}}|  {{lead.フォーム入力の履歴}}」というトークンの組み合わせで記録されるようにしています。

これにより、こんな感じでリードのフィールドは記録されていきます。

最後に...データ値の変更はアクティビティログに残っています(90日後にはアーカイブされますが...)。

なので、アクティビティログで変更を確認することができるので敢えてこの方法をする必要はないのですが、例えば「最後にフォーム入力した日付」をこの先のキャンペーンに使いたい!というプランがある場合は、この方法を検討いただければと思います。

それでは、また。

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

4 replies

Megumi_Okura
Level 1
June 1, 2018

はじめまして、こんちには。大倉と申します。

2点質問させてください。

①履歴の連結の際に、改行を使用することはできますでしょうか。(使用できる改行のコードなどございますでしょうか。)

②履歴がどんどん溜まっていき、履歴を残す用のテキストフィールドの文字数の上限(30,000文字?)を超えた場合、

 キャンペーンはどうなるのでしょうか。

 文字列オーバーになった場合、エラーになるのでしょうか?

 エラーの場合、エラーの検知はできますでしょうか?

以上、よろしくお願い致します。

Taishi_Yamada
Level 6
June 7, 2018

@Megumi Okura さん、こんにちは

>>①履歴の連結の際に、改行を使用することはできますでしょうか。(使用できる改行のコードなどございますでしょうか。)

↓下記の英語圏投稿で会話がありますね。

Return Character in Change Data Value

要約するとMarketoのUI上から、値に改行コードを差し込むことは「できない」です。(私も試したことありますが出来ません)。

投稿にあるとおり、その原因が「UI」にあるので、恐らくAPIから直接データを投げ込めば改行コードを受け入れてくれるようですね(それをhackと呼んでますが)。

ただUI上で操作できない限り、実用としては厳しいでしょうね。。。。素直に、";"(セミコロン)とか適当な区切り記号で頑張ってマシに整えるのが現実的な妥協点だと思います。

>>②履歴がどんどん溜まっていき、履歴を残す用のテキストフィールドの文字数の上限(30,000文字?)を超えた場合、

こちらは試してないので残念ながら私もわかりません。。。。

しかし、Marketoは、箇所によってはデータが溢れると「バグる」ので、気をつけて運用した方が良いです。。。。はい。(ちょっと恐ろしいですけどね)

>>もし、このあたり検証された方いましたら、ぜひ教えてください

ということで、余談ですが、ちょっとした裏技(いや、単なるバグ)をご紹介します。

↓こちら、Programのリストの一部です。そして、見慣れない「いつもより、やたらと光り輝くFolderアイコン」が出現します。実はこのアイコンは、もともとEmail Blastのアイコンです。ところが、バグ技を使うと、なんと光り輝くフォルダアイコンに変身してしまいます。そして、一度こうなってしまうと、このFolderをクリックしても何も起きません(=プログラムを操作できなくなる&サポートにお願いして対応してもらう必要あり)。

実は、この現象。プログラム名を「やたらと長く」つけると発生します。普段、MarketoのUI上で入力している限りは、一定以上の文字数を入力できなくなっているので、この現象に遭遇することは無いのですが、ちょっとした方法で長いプログラム名を入れてSaveしてしまうと。。。。。こうなります。(良い子は真似しないでね!

まぁ、昔、ファミコンのスーパーマリオブラザーズとかで散々、裏技(バグ技)を楽しんだ一環だと思ってください。

(レベル的には、スーパーマリオブラザーズでいうところの、"チビファイアーマリオ"か、"キラーの糸引き"くらいのバグ技ですかね・・・)

以上、ご参考までに。

-Yamada

誠久_得野
Level 2
June 28, 2018

こんにちは、日本シグマックスの得野と申します。

弊社でも遅ればせながらこちらの内容を参考にキャンペーンを作成してみました。

その際の変更点が少しでも皆様のお役に立つかもしれないと思い一応コメントさせていただきます。

1.トリガーごとにキャンペーン作成ではなく、スマートリストの設定を

  「トリガー入力-いずれかに該当」にしました。

 履歴を残したくないフォームも特に無かったので、こちらだとキャンペーンも1つで済むのでは?

 と思いやってみたところ、今の所問題なく動いているようです。

2.フォーム名だけでなくLP名も記録するようにしてみました。

 「最後の入力フォームのページ」のフィールドを作って、トリガートークン{{trigger.Web Page}}を入力するようにしました。

 その上で、入力日履歴の値には「{{system.date}}-{{trigger.Name}}-{{trigger.Web Page}}|  {{lead.フォーム入力日履歴_SX}}」

 となるようにしています。

 弊社は1つのフォームを複数のLPで使用しているので、ページも分かるようになってより便利になっています。

以上です。何かしら皆様の参考になれば幸いです。

Megumi_Okura
Level 1
June 29, 2018

Yamadaさま

いつもありがとうございます。

改行については、了解しました。

桁あふれした際に発生する可能性があるプログラムバグは、どのような状態になるかお分かりなりますでしょうか?

また、バグったことは検知できるのでしょうか…

履歴にURLを入れたいと考えていて、

文字数が多いので、放置していて、知らぬ間に桁あふれをしていた…ということを懸念しております。

以上、よろしくお願い致します。