2020.02.05

Marketoのカスタムフィールドをどう作る?

入力フォームを作るときに、Marketo(マルケト)でもともと用意されている項目以外のデータを保存したい。そんな時に作るのが「カスタムフィールド」です。

カスタムフィールドは、Marketoのデフォルト(既存)の項目以外のデータを格納するためのもので、「管理」から新設することができます。(出ない場合はログインしているアカウントに権限がないと思われます。それだけ重大でMarketoのコアな部分の操作なのです)。

そして、カスタムフィールドは変更できない(しにくい)ポイントがいくつもあり、

  • 命名をどうするか
  • どの形式で作るべきか
  • そもそもほんとに新設する必要があるのか

…などを考慮せずに作ると、後々「こんなはずでは…」と思うような事態になりがちです。

思い付きで作ってしまうのではなく、まずは「フィールド管理」から行える「フィールド名のエクスポート」から現状のフィールド名一覧をcsvでダウンロードして確認してみましょう。命名の重複はないか、そもそも用途が重複しているものがないかの確認をしてから新しいフィールドを作っていきましょう。

カスタムフィールドの命名ルールの考え方

私のおすすめ命名ルールは最初に用途や種類を表すものを-でつける方法です。
例)
001-name (部署001で使う名)
F-name (入力フォームの名) など

管理画面で見る時に、カスタムフィールドは文字コード順で並ぶため、用途や事業部などを表す名は頭につけると管理画面上で見やすく並びます。

「-」(ケバブケース)で繋ぐか「_」(スネークケース)で繋ぐか、もしくは単語の頭を大文字(キャメルケース)にして可読性を上げるか、このあたりのお作法は各社のwebや開発のルールもあるので「どれが正解」はありません。しかし、Marketo内では統一することを意識しましょう。
※API名では「-」は使えません。使えるのは表示名(フレンドリ ラベル)です。

カスタムフィールドの種類

カスタムフィールドには種類(タイプ)があり、入れるデータの内容によって適した種類を選択する必要があります。

カスタム・フィールド・タイプの一覧
https://experienceleague.adobe.com/docs/marketo/using/product-docs/administration/field-management/custom-field-type-glossary.html?lang=ja

とりあえず文字列?

Marketoを使い始めてすぐは、「とりあえず文字列にしておけば制限なくなんでも入れられるのでは?」と自分は考えました。

Tip
フィールドのタイプによって、フィルター/トリガー演算子は異なります。

→例:スマートリスト等の日付指定は日付タイプにしか適用できない

結果として、データは保存できるものの、多彩な抽出・起動ができるMarketoの良さが全然生きない設定になってしまいました…

入力の揺れとの戦い

フォーム入力でカスタマーにテキストフィールドで自由に入力してもらった場合、カスタムフィールドに入る値がどういうものになるか、考えてみたことがあるでしょうか。

例「メルマガ購読希望」

メルマガ購読希望 希望する
はい
しない
希望
希望しない
不要
いらない

この場合、メールを送信するのは「希望する」「はい」「希望」で、
送信しないのは「希望しない」「しない」「不要」「いらない」……となります。

今後この回答に「然り」であるとか「yes」などが回答された場合、それも「送信対象」として追加する必要があります
フォーム入力側で、形式を指定して値を制限することで表記の揺れを抑えたり、またCPで値を書き換えて揃える事も出来ますが、この場合は「希望する」「しない」の2つだけがわかればよいケースです。

メルマガ購読希望 希望する
はい
しない
希望
希望しない
不要
いらない

真か偽かのみを設定するブール値でフィールドを作り、入力フォームを択一での入力方法にすれば(チェックボックス一個のみ、または「希望する」「希望しない」のラジオボタン)、最初からそれ以外の情報は入ってこないのでシンプルです。

通知の表示として適切か

数字は数字! 0/1はブール値!!日付は日付!!としてそれぞれの項目に適したタイプで設定できたぞ!と満足し、「フォーム入力の確認メール」の作成を行いました。が…

メール内でブール値のカスタムフィールドをトークンで表示させると、0/1で出てしまう…
これは顧客目線では不自然な表示となってしまいます。

この項目については、

  • フォーム内の入力でしか使わない項目
  • フォーム入力をチェックボックスorラジオボタンにすることで入力の揺れを回避できる

という内容だったため、ブール値を諦め、「文字列」として表示が自然になるようにタイプを変更しました。

※セグメントを使ったダイナミックコンテンツや、marketo内のメールスクリプトを使って置き換える方法もあるので、ブール値のままで表示させることも可能です。しかし運用やその後の開発を考えると、文字列でそのまま表示したほうが良いという結論になる事もあります。

カスタムフィールドのタイプの変更

前項の「ブール値」→「テキスト」への変更のように、カスタムフィールドのタイプを変更することもできます。
が……変更する場合は「そのフィールドを使用しているアセットやセグメンテーションのすべてから切り離す」作業が必要になります。

「タイプを変えるだけで、アセットにはそのまま使う」という場合でも、一度すべての切り離しが必要となり、一個一個を削除していく必要があります。

また、格納済みのデータも全て消えます。

カスタムフィールドのタイプを変更する
https://docs.marketo.com/pages/viewpage.action?pageId=7509729

警告:この操作を実行すると、フィールド内の値が完全に消えます

エクスポート→CSVでタイプを変えて保存→Marketoのカスタムフィールドのタイプを変えてから再度インポート
という方法で、値を持ち込むことはできますが、形式的に持ち込めないものは消すか、型に合うように置換などをするなどのデータ加工が必要になります。

このように中々の痛みを強いられる「タイプの変更」ですが、実際に運用に乗せてしまうと更に更に変更が難しくなるので、「変えるしかない」という確信を持ったら、できるだけ早い段階で変えることを強くお勧めします。(特にCRM等他システムの連携を入れてしまうと…)

カスタムフィールドの削除(はできない)

Marketoでカスタムフィールドを削除する
https://docs.marketo.com/pages/viewpage.action?pageId=7509757

なんとカスタムフィールドの削除は「できない」であり、一番近い操作は「ユーザーインタフェースから非表示にする」です。
見えないところに追いやることはできますが、作ったものはそのmarketoに永遠に残り続けるのです…

新設しない方法を模索してみる~汎用フィールド~

これまで数々の失敗を味わってきたため、「そもそもそのフィールド新設、必要?」という事を自分に問うようになりました。
しかし、クライアントからの質問に答えるため、今すぐ試したい…そんな時もあります。幸い弊社環境には先人が残してくださった「各種汎用フィールド」があるため、検証はそれで行っています。


※テキストエリアに改行したデータが入るか、㎡などの特殊文字を試したり

また、「メール通知として送信した後は保存しておく必要がない」情報(一次的な問い合わせやアンケート項目など)は通知のCP後に「中身を捨てる」という処理(リフレッシュ)をすることにより、汎用的なテキストエリアのフィールドを使いまわすことができます。
(フィールドの書き込み履歴は、リードのアクティビティから確認することもできます)

カスタムフィールドを設計するというのは、データベースの整理方法を考える事

エンジニアに依頼しなくとも、管理画面から手軽にカスタムフィールドが作れるのはMarketoの良さでもあります。
しかし、後戻りできない操作も多いため「本当にこれがベストか?」は常に考え、周囲との調整をし、通知内容・データとしての履歴として何を残すべきかを考えて作っていく事が必要です。

綺麗に維持しやすく、マーケティング部署でも営業部署でも見やすく使いやすい、そんなデータが作れるかどうかがカスタムフィールドの設計に大きく関係しています。
価値のあるマーケティングデータを蓄積するためのステップとして、考えてみてはいかがでしょうか。

記事を書いた人

青山 奈津子