以下の手順で設定します。
Zoho CRM→[設定]→[自動化]→[ワークフロールール]→[ルールを作成]→作成した複製タブ([Purchase_Log])を選択→[作成時]を実行条件として選択→必要に応じて条件を指定→[すぐに実行する処理]で、[関数]→[+ 新しい関数]→[独自に作成]を選択→[関数名]と[表示名]を入力→[作成]をクリック→以下のコードをコピーして貼り付けます。
現在のZoho Marketing Automation(MA)とZoho CRMの標準連携では、一意のメールアドレスにつき1件のデータのみをMAに同期できます。同じメールアドレスに対して、個別の商品購入を表す複数のデータがZoho CRMに存在していても、Zoho MAに反映されるのはそのうち1件のみです。
そのため、顧客が複数の商品を購入し、同じメールアドレスで各購入を管理するためにZoho CRMで複数のデータを作成しても、MAに同期されるのは1件のみです。関連するすべての商品購入データを集約して同期対象の1件のデータに含めない限り、そのデータをZoho MAの複数の商品別セグメントに追加することは困難です。
たとえば、Zoho MAに商品別セグメントとして、「ペンセグメント」、「のりセグメント」、「鉛筆セグメント」などを作成し、それぞれに固有の条件を設定しているとします。データがセグメントの条件を満たすと、自動的に追加され、対象の商品キャンペーンの配信対象になります。
この設定は、異なる商品の購入情報が、同期される個別のデータに記録されている場合には有効ですが、同期対象がメールアドレスごとに1件のみの場合は機能しません。その理由は次のとおりです。
Zoho MAのセグメントでは、特定の項目条件との一致に基づいて対象が決まります。
Zoho CRMとZoho MAの標準同期では、一意のメールアドレスにつき1件のデータのみ同期できます。
そのため、同期される1件のデータを複数のセグメントに追加するには、そのデータが関連するすべての商品セグメントの条件を同時に満たす必要があります。これには、Zoho MAがセグメント分けに使用できる項目(商品のチェックボックスなど)を使用して、すべての商品購入データをZoho MAの1件のデータに集約する必要があります。
Zoho CRMのデータをこのように構成することで、連絡先をZoho MAの複数のセグメントに追加し、購入した各商品に関連するキャンペーンを配信できます。
Zoho CRMでの2つのカスタムタブの作成
メインタブ([Purchase]):顧客ごとに1件のデータを保存します。このタブをZoho MAと同期し、Zoho CRMから値を更新してデータを同期します。
複製タブ([Purchase_Log]):商品を購入するたびに1件のデータを保存します。
商品の購入状況を商品単位で管理するため、両方のタブに同一のチェックボックス項目(商品ごとに1つ)を作成します。また、Zoho CRMから同期された値を取得するため、Zoho MAにも同じ項目を作成します。
カスタム関数を含むワークフローを実行し、[Purchase_Log]タブに新しい商品の購入情報が手動で登録されるたびに処理します。
カスタム関数を使用して、メインタブで該当する顧客データを更新または作成し、登録された購入情報に基づいて該当商品のチェックボックスを選択します。
メインタブ([Purchase])からZoho MAへの同期設定
このメインタブ([Purchase])のデータは、Zoho CRMとMAの標準連携を使用してZoho Marketing Automation(MA)に同期されます。この同期設定では、次の操作を行います。
Zoho CRMのチェックボックス項目に対応するカスタム項目をZoho MAに作成します。
たとえば、Zoho CRMに[Glue]というチェックボックス項目がある場合、Zoho MAにも[Glue_Selected]などの対応するカスタム項目を作成します。
Zoho CRMとZoho MAを連携する際、Zoho CRMの[Glue]項目をZoho MAの[Glue_Selected]項目に関連付けます。
Zoho CRMのデータでチェックボックスを選択(Trueに設定)すると、その値が同期によってZoho MAのデータにも反映され、更新されます。
その結果、Zoho MAの[Glue_Selected]項目も、そのデータではTrueになります。
Zoho MAでの商品別セグメントの作成
これらのカスタムチェックボックス項目の値に基づいて、Zoho MAにセグメントを作成します。
たとえば、次の条件で「のりセグメント」を作成します。
[Glue_Selected] = Trueの場合
同期されたデータがこの条件を満たすと、のりセグメントに自動的に追加されます。
これにより、連絡先の実際の購入履歴に基づいて、対象を絞った商品別キャンペーンを作成、配信できます。
データを手動で複製タブ([Purchase_Log])に作成します。このとき、[Glue]のチェックボックスのみを選択します。
このデータを[Purchase_Log]タブで作成すると、ワークフローが実行され、カスタム関数が実行されます。
カスタム関数は、メインタブ([Purchase])にBillという名前のデータがすでに存在するかどうかを確認します。
Billの既存データが見つからない場合、メインタブに新しいデータを作成し、[Glue]のチェックボックスを選択します。
このメインタブはZoho MAと同期されているため、新しく作成されたデータがMAに同期されます。
Zoho CRMのデータにあるチェックボックス項目のデータは、Zoho Marketing Automationの対応するカスタム項目(例:[Glue_Selected])に関連付けられます。標準同期により、MAのカスタム項目の値が自動的に更新され、Zoho CRMのデータでの選択内容が反映されます。
Zoho MAにあるBillの1件のデータは、のりセグメントとペンセグメントの両方の条件を満たし、Zoho MAの2つの異なるセグメントに追加されます。その結果、Billには購入した両方の商品に関連するキャンペーンが配信されます。
カスタムタブと項目を作成するための、Zoho CRMのプロフィール権限。
プロフィールで、データの作成/編集とワークフローの設定を行う権限がZoho CRMで付与されていること。
同期とセグメントを作成し、項目を関連付けるための管理者権限。
Zoho CRM→[設定]→[カスタマイズ]→[タブと項目]→新しいタブを作成する画面に移動し、2つのカスタムタブを作成します。
Main Module (Purchase) :顧客ごとに1件の統合データを保存します。このデータはZoho MAと同期されます。
Duplicate Module (Purchase_Log) :商品購入ごとに一意のデータを1件保存します。
販売する各商品について、両方のカスタムタブのレイアウトに個別のチェックボックス項目(例:ペン、鉛筆、のり、消しゴム、定規)を追加します。Zoho CRM→[設定]→[カスタマイズ]→[タブと項目]に移動→作成したカスタムタブを選択→対象のレイアウトを選択→左側の項目パレットから、販売する各商品のチェックボックス項目をレイアウトにドラッグ&ドロップ→各チェックボックスに商品名を設定します。
以下の手順で設定します。
Zoho CRM→[設定]→[自動化]→[ワークフロールール]→[ルールを作成]→作成した複製タブ([Purchase_Log])を選択→[作成時]を実行条件として選択→必要に応じて条件を指定→[すぐに実行する処理]で、[関数]→[+ 新しい関数]→[独自に作成]を選択→[関数名]と[表示名]を入力→[作成]をクリック→以下のコードをコピーして貼り付けます。
void automation.Marketingautomation(Int Id,String name)
{
purchaseA = zoho.crm.getRecordById('Purchase_A',Id);
email = purchaseA.get('Email');
pen = purchaseA.get('Pen');
pencil = purchaseA.get('Pencil');
glue = purchaseA.get('Glue');
rubber = purchaseA.get('Rubber');
scale = purchaseA.get('Scale');
purchase = zoho.crm.searchRecords('Purchase','Name:equals:' + name);
if(purchase.size() > 0)
{
for each rec in purchase
{
mp = Map();
if(rec.get('Pen') == False)
{
mp.put('Pen',pen);
}
if(rec.get('Pencil') == False)
{
mp.put('Pencil',pencil);
}
if(rec.get('Glue') == False)
{
mp.put('Glue',glue);
}
if(rec.get('Rubber') == False)
{
mp.put('Rubber',rubber);
}
if(rec.get('Scale') == False)
{
mp.put('Scale',scale);
}
info 'mp::: ' + mp;
upd = zoho.crm.updateRecord('Purchase',rec.get('id'),mp);
info upd;
}
}
else
{
mp = Map();
mp.put('Pen',pen);
mp.put('Pencil',pencil);
mp.put('Glue',glue);
mp.put('Rubber',rubber);
mp.put('Scale',scale);
mp.put('Name',name);
mp.put('Email',email);
info 'mp : ' + mp;
crt = zoho.crm.createRecord('Purchase',mp);
info 'crt : ' + crt;
}
}
コード内の各タブと項目のAPI名を、該当するAPI名に置き換えます。
a) 1行目の'Purchase_A' を、Zoho CRMで作成したカスタムの複製タブのAPI名に置き換えます。
b) 4~9行目の'Email', 'Pen', 'Pencil' , 'Glue' , 'Rubber' , 'Scale'を、複製タブのメール項目のAPI名と、複製タブ内で商品用に作成したチェックボックス項目のAPI名に置き換えます。
c) 10行目の'Purchase' を、Zoho MAと同期するメインタブのAPI名に置き換えます。
d)16、18、20、22、24、26、28、30、32、34行目を、メインタブにあるカスタムの商品チェックボックス項目のAPI名に置き換えます。
e) 37行目の'Purchase'を、メインタブのAPI名に変更します。
f) 44~49行目の'Pen', 'Pencil' , 'Glue' , 'Rubber' , 'Scale', 'Name' , 'Email' を、メインタブにあるチェックボックス項目、氏名項目、メール項目の各API名に置き換えます。
g)52行目の'Purchase'を、メインタブのAPI名に置き換えます。
[引数を編集]をクリックします。->
a) [+]をクリックし、右側の入力欄に「#」記号を入力して、複製タブ名を選択します。次に、複製タブのIDを選択し、左側の入力欄で“Id”という名前を付けます。
b)[+]をクリックし、右側の入力欄に「#」記号を入力して、複製タブを選択します。次に、複製タブの名前項目を選択し、左側の入力欄で“name” という名前を付けます。
c)[保存]をクリックし、ワークフロールールを保存します。
Zoho CRMとZoho Marketing Automation間の同期を初めて設定する場合は、次の手順に従います。Zoho Marketing Automationでのセグメントの作成
概要。
商品の購入情報を、1件のZoho CRMデータ内のチェックボックス項目にまとめ、そのデータをZoho Marketing Automationと同期することで、メールアドレス1件につきデータ1件という制限を回避しながら、顧客を商品別の複数のセグメントに追加できます。これにより、時期を分けて複数回購入された場合でも、購入履歴全体に基づいてキャンペーンの対象を正確に絞り込めます。
設定手順を実際に確認できるデモの画面録画も、参考資料として以下に添付しています。