こんにちは。Webloco代表兼Webマーケターのヤブです。
Mauticを自社サイトに導入してから2年以上が経過しましたが、未だに試行錯誤の連続です。
マーケティングオートメーション(以下MA)を勉強し始めてから常に感じている違和感は、MAというネーミングの割に、適応範囲は、「見込み客の獲得から育成までの範囲」と、意外と狭い領域になります。
MAの後ろにはSFA(営業支援ツール)やCRM(顧客管理ツール)などが控えています。
そんな中、最近では、MauticをCRMツール(顧客管理ツール)として使えないか色々考えていました。
CRMにあってMAツールにないもの
ツールによって仕様や機能にバラつきはありますが、CRMとMAツールの大きな違いは、顧客情報の種類や量、情報の持ち方だと思います。
一般的なCRMには、顧客とのメールの履歴や打ち合わせの履歴、商品の購入の履歴、資料(見積り書、請求書)などを保持している事でしょう。
MAツールにも、上記の情報で持っているものもありますが、CRMは既存顧客の管理を念頭に置いている為、見込み客をメインに扱うMAとは、情報の持ち方はあきらかに違います。
受信メールのやりとりだけでもMauticに持たせたい
Mautic本体をカスタマイズするほど、Mauticの内部に精通している訳ではない為、今ある機能を有効活用して、受信メールのやり取りをMauticに持たせることは出来ないかを考えました。
方法1.MauticとGmailの連携プラグイン
いろいろ調べてみると、MauticとGmailの連携プラグインを使うと、Gmailでのメールのやりとりを、Mauticのコンタクト情報(history)に追加されて確認が出来るようです。
ただ、現在のメールのやりとりはMicrosoftのOutlookをベースに使用している為、Gmailを使うという選択肢は入りませんでした。
方法2.MauticとOutlookとの連携プラグイン
他にもいろいろ調べてみると、MauticとOutlookを連携するプラグインがあったので試しに設定してみました。
実際に設定した時の記事を書いてみましたので、下記よりご覧ください。
ただ、上記の記事にも書きました通り、思ったような挙動になってくれませんでした。
最終的に、送信メールはhistoryに表示される様になりましたが、見込み客からの受信メールに関しては、表示される仕様ではありませんでした。
方法3.Mautic Rest APIを使って、システムを自分で作る
Mauticには、外部からデータベースを操作できる為のAPIが用意されています。
これを使って、受信メールの内容をMauticにPOSTして、コンタクト情報に追加する事が出来る様になりました。
Mautic Rest APIで受信メールとコンタクト情報を紐づけるまでの道のり
受信メールをコンタクト情報の何処に持たせるか
まず、受信メールの情報をコンタクト情報の何処に持たせるかを考えます。
最初に考えたのは、「History」の中かなと思ったのですが、データベースを見ても、持っている情報が結構複雑で、少しハードルが高いと感じました。
そこで、「NOTES」という所に、受信メール情報を格納するのにちょうど良い場所があったので、そこに追加する事にしました。
Mautic Rest APIについて調べる
Mautic Developer Documentという、開発者向けのドキュメントのREST APIの部分をサラッと確認します。
REST API libraryのインストール
GitHubに「mautic/api-library」というライブラリがありますので、ダウンロードしてアップロードするか、「composer」を使って、インストールします。
認証
基本的には、下記のサンプルコードを参考に、必要な箇所を自分様に変更します。
<?php use Mautic\Auth\ApiAuth; // $initAuth->newAuth() will accept an array of OAuth settings $settings = array( 'baseUrl' => 'https://your-mautic.com', 'version' => 'OAuth2', 'clientKey' => '5ad6fa7asfs8fa7sdfa6sfas5fas6asdf8', 'clientSecret' => 'adf8asf7sf54asf3as4f5sf6asfasf97dd', 'callback' => 'https://your-callback.com' ); // Initiate the auth object $initAuth = new ApiAuth(); $auth = $initAuth->newAuth($settings); if ($auth->validateAccessToken()) { if ($auth->accessTokenUpdated()) { $accessTokenData = $auth->getAccessTokenData(); //store access token data however you want } }
NOTESに追加する処理
特定のコンタクトのNOTESに、任意の情報を追加するプログラムです。
<?php $contactID = 1; $data = array( 'lead' => $contactID, 'text' => 'Note A', 'type' => 'general', ); $note = $noteApi->create($data);
実際に動かしてみる
サンプルで作成したプログラムを実行してみて、本当にコンタクト情報のNOTESに書き込まれるか確認してみます。
おっ、追加された。
メールサーバーの受信メールの取得
次に、定期的にメールサーバーのメールを見に行く処理を作成しなければいけません。
PHP でメールの受信という記事を参考に、「imap_open」の関数を使って、メールサーバー内にあるメール情報を取得
メールアドレスからコンタクトIDを取得
取得したメール情報の中からfromのメールアドレスを抽出します。
このメールアドレスをキーに、MauticのコンタクトIDを取得します。(NOTESを書き込むときのKEYは、コンタクトIDの為)
コンタクトIDを取得する為のサンプルソースは以下になります。
<?php
//...
$contacts = $contactApi->getList($searchFilter, $start, $limit, $orderBy, $orderByDir, $publishedOnly, $minimal);
上記のサンプルソースをベースに、「$searchFilter」には、任意のメールアドレスで検索する様に値を設定。
指定のメールアドレスに一致するコンタクトデータがあれば、コンタクトIDを取得出来ます。
受信メールをNOTESにPOSTするプログラムの完成
これまでの内容を基に、下記の様な流れに書き換えます。
- 1.メールデータを取得
- 2.メールアドレスを取得
- 3.Mautic認証
- 4.メールアドレスからコンタクトIDを取得
- 5.コンタクトIDとメールデータをMauticにPOST
- 6.「4」~「5」を繰り返す
プログラムを定期的に走らせるようにCRON JOBの設定をする
Xserverでプログラムを置いているので、5分間隔で、このプログラムが動くようにCRON設定をします。
XserverでのCRON JOB設定は以下の記事が参考になります。
実際に上手く行ったか検証してみる
5分間隔で処理がされる様になるので、実際にプログラムが動いた後に、Mauticのコンタクト情報を確認してみます。
おぅ、ちゃんと受信メールの情報がNOTESに追加されています。
これで、Mauticのコンタクト情報を見れば、いつ、どんなメールのやり取りをどれだけしたかが、把握出来る様になりますね。
MauticをCRMの様に使うアイデアのまとめ
Mautic本体をゴリゴリにカスタマイズする訳ではない為、いろいろ制約はありますが、簡易的なCRMとして使うには、事足りるかもしれません。
実際に、MAはMAツール、CRMはCRMツールをするのが一番ですが、ツールを使いこなす為の学習コストや、ツールを使用する為の月額コストもばかにならない為、見込み客の獲得、育成から既存客の管理、育成までを、全て同じツールで一元管理するメリットは大いにあると思います。
以上、「受信メールをコンタクトと紐づけてMauticをCRMの様に使うアイデア」をご紹介しました。