
こんにちは。CData Software Japan リードエンジニアの杉本です。
今回はAI 予測プラットフォームForecasting Experience とデータ連携ツールCData Arc を活用して、Salesforce のリードから優良顧客の発見やコンバージョンの予測を行う方法を紹介したいと思います。
Forecasting Experience とは?
株式会社Idrasys が提供するAI 予測プラットフォームです。
https://forecasting-experience.idrasys.co.jp/

普段使い慣れたExcelやCSVデータを利用して、商品需要予測や出荷量予測などに活用できるプラットフォームになっています。

また、モデルの作成や作成したモデルを利用した予測を行うためのAPI が提供されており、様々なサービスと連携して、AI を活用することができるようになっています。
CData Arc とは?
CData Arc は、CData 製品の中で「自動化/Automate」を担うデータ連携ツールです。「B2B 連携をもっとシンプルに」をコンセプトに、ファイル連携 & DB 連携 & API 連携といったB2B 連携に必要なすべてをノーコード・ローコードでつなぐことができるプラットフォームです。
https://jp.cdata.com/arc/

この記事のシナリオ
本記事では前述の通り、Salesforce に日々登録・蓄積されている大量の潜在顧客:リードデータから優良顧客の発見、リードコンバージョンの予測の自動化をForecasting Experience とCData Arc を活用して実現します。
AI モデルは予めForecasting Experience を使って作成しておき、このモデルをAPI 経由でCData Arc から呼び出すことでSalesforce に蓄積されるリードデータを自動的に評価していきます。

CData Arc で最終的に作成するフローは以下のようなイメージとなります。

評価結果はSalesforce に独自のカスタムフィールドを用意して、登録するようにしました。

なお、CData Arc はSalesforce 以外にもkintone やHubSpot、SAPなど様々なクラウドサービス向けのコネクタを提供しています。ぜひ自社で利用しているサービスと合わせて試してみてください。
https://jp.cdata.com/drivers/

事前準備:CData Arc 製品のインストールとナレッジ
事前にCData Arc を任意の環境にインストールしておきます。
以下のリンクから30日間のトライアルが取得できます。
https://arc.cdata.com/jp/trial/
CData Arc のインストールはこちらを参考にしてください。
https://jp.cdata.com/blog/arcesb-install-windows
CData Arc を使い始めるときは、こちらも参考にしてください。
https://arc.cdata.com/jp/start/
CData Arc に関するナレッジは、こちらにまとめています。あわせて参考にしてください。 https://arc.cdata.com/jp/kb/
事前準備:Forecasting Experience:API Token の取得
Forecasting Experience とAPI で連携するためには予めAPI Token を取得しておく必要があります。
Forecasting Experience の管理画面から「チーム」→「APIキー」に移動し、「Generate New Token」をクリックすることで、トークンを生成できます。

生成されたトークンは後ほど利用するので控えておきましょう。
事前準備:Forecasting Experience:モデルの作成
今回使うAIモデルは予めForecasting Experience の画面上で作成しました。
Salesforce から取得したリードデータを元に以下のような学習用データを作成しておきます。ここは皆さんのユースケースに合わせて作成してみてください。
今回は前述の通りリードデータのコンバージョンの可能性を測定するため以下のような学習データを用意して、モデルを作成しました。

学習の対象データはSalesforce のリード状況がClosedになっているものです。
このClosed になっているもので、取引先として正式にコンバートされた「Closed - Converted」のデータを予測したいTargetデータとして二値化しています。

その上で、この学習データを元に以下のようなAIモデルを作成しました。

このモデルを利用して、Salesforce のリードデータを自動的に評価する仕組みをCData Arc で作っていきます。
連携フローの作成
それでは実際に連携フローを作成していきます。 このシナリオで作成する連携フローは以下のような流れになっています。
|
No
|
コネクタ
|
設定概要
|
|
1
|
Salesforce
|
Salesforce から評価用のリードデータの取得を行います。
|
|
2
|
Script
|
対象のリードデータをForecasting Experience のAPIに送信し、AIの評価結果を受け取ります。
|
|
3
|
CSVMap
|
Forecasting Experience から受け取ったデータをSalesforce のリードデータにマッピングします。
|
|
4
|
Salesforce
|
評価結果をSalesforce に登録します。
|

また、今回利用するModelやProject、API Tokenの情報は予めVault に設定しておきます。
|
名前
|
種類
|
値
|
備考
|
|
FEToken
|
Encrypted
|
******
|
予め生成しておいたAPI Tokenを指定します。
|
|
ModelId
|
Standard
|
例)7601
|
予め作成しておいたモデルのIDを指定します。
|
|
ProjectId
|
Standard
|
例)815
|
対象となるProjectのIDを指定します。
|

Salesforce コネクタの設定:リードデータの取得
最初にフローの起点としてリードデータを取得するためのSalesforce コネクタを配置します。。Salesforce コネクタはコネクタ一覧のその他タブから配置できます。

コネクタを配置後、Salesforce への接続を追加します。以下のような画面で「接続」ボタンをクリックすることで、任意のSalesforce の環境へ接続を確立できます。

Salesforce コネクタはデータの取得・書き込み・更新・削除などのアクションが実施できます。今回はデータを取得するのでアクションから「Select」を選択します。
アクションを設定後、「+追加」ボタンをクリックし

Salesforce オブジェクトの一覧から「Lead」を選択します。

オブジェクトを選択したら、Forecasting Experience に渡すデータのフォーマットへSQLを使ってチューニングします。
今回はLeadSource のデータを予め2値化しているので、そのフォーマットで取得できるように以下のようなコードベースで記述しました。またSalesforce の不要な項目も削除しています。

<Items>
<Lead table="`Lead`" allColumns="true" selectQuery="SELECT Id,
CONTAINS(LeadSource,'WEB') LeadSource_Web,
CONTAINS(LeadSource,'Purchased List') LeadSoure_PurchasedList,
CONTAINS(LeadSource,'Phone Inquiry') LeadSource_PhoneInquiry,
CONTAINS(LeadSource,'Partner Referral') LeadSource_PartnerReferral,
AnnualRevenue,
NumberOfEmployees
FROM Lead;">
<Id key="true" />
<LeadSource_Web type="int" />
<LeadSoure_PurchasedList type="int" />
<LeadSource_PhoneInquiry type="int" />
<LeadSource_PartnerReferral type="int" />
<AnnualRevenue type="double" />
<NumberOfEmployees type="int" />
</Lead>
</Items>
合わせてSalesforce コネクタで取得した結果のフォーマットをCSV に変更します。「高度な設定」タブに移動し「アウトプットファイル形式」を「CSV」にしましょう。

Script コネクタ:Forecasting Experience API を使ってリードデータを評価
次にForecasting Experience API を使ってリードデータを評価する処理を追加します。
CData Arc ではREST API 用のコネクタもありますが、今回は処理を簡略化するために独自のScript 言語であるArc Script を使って作成します。

今回の処理はForecasting Experience に「CSVファイルのアップロード」「アップロードしたファイルのデータIDを特定」「特定したデータIDからフォーキャスを実行・結果をCSVで取得」の処理を行っています。
CSVを渡してフォーキャストを取得する仕組みとしては汎用的に作成しているので、参考にしてみてください。

<!-- NOTE: Do not edit arc:info -->
<arc:info title="Custom Script" desc="This script will be executed when a file is processed.">
<input name="ConnectorId" desc="The id of this connector." />
<input name="WorkspaceId" desc="The workspace of this connector." />
<input name="MessageId" desc="The message id." />
<input name="FilePath" desc="The path of the file being processed." />
<input name="FileName" desc="The name of the file being processed." />
<input name="Attachment#" desc="The path of the attachment being processed." />
<input name="Header:*" desc="The message headers of the file being processed." />
<output name="Data" desc="The data that will be written to the file in the Receive folder." />
<output name="Encoding" desc="The encoding that will be used to write the file in the Receive folder." />
<output name="FileName" desc="The name of the output file in Receive folder." />
<output name="FilePath" desc="The path of file that will be written to Receive folder." />
<output name="Header:*" desc="The message headers of the file being written." />
</arc:info>
<!-- Upload Predict Data -->
<arc:set attr="upload.URL" value="https://api.forecastinge.com/v1/datas" />
<arc:set attr="upload.file:file" value="[FilePath]" />
<arc:set attr="upload.header:name#1" value="Authorization" />
<arc:set attr="upload.header:value#1" value="Bearer [Vault(FEToken)]" />
<arc:set attr="upload.form:label" value="data_predict" />
<arc:set attr="upload.form:project_id" value="[Vault(ProjectId)]" />
<arc:set attr="upload.form:name" value="[FileName]" />
<arc:call op="httpUpload" in="upload">
<arc:set attr="output.result" value="[http:content]" />
</arc:call>
<!-- Find Data Id -->
<arc:set attr="findData.URL" value="https://api.forecastinge.com/v1/datas?sort_by=created_at&order=DESC&limit=1" />
<arc:set attr="findData.header:name#1" value="Authorization" />
<arc:set attr="findData.header:value#1" value="Bearer [Vault(FEToken)]" />
<arc:set attr="findData.localfile" value="[FilePath | replace('.csv','.json')]" />
<arc:call op="httpGet" in="findData">
</arc:call>
<arc:set attr="json.uri" value="[FilePath | replace('.csv','.json')]" />
<arc:set attr="json.jsonPath" value="/json/data/" />
<arc:call op="jsonDomSearch" in="json" out="result">
<arc:set attr="output.data_id" value="[jsonpath('data_id')]" />
</arc:call>
<!-- Forecast Data -->
<arc:set attr="request.URL" value="https://api.forecastinge.com/v1/models/forecast" />
<arc:set attr="request.contenttype" value="application/json" />
<api:set item="request" attr="postdata">
{
"data_id": [output.data_id],
"project_id": [Vault(ProjectId)],
"model_id": [Vault(ModelId)],
"result_only": true,
"name":"ForecastResult_[now('yyyyMMddhhmmss')]"
}
</api:set>
<arc:set attr="request.header:name#1" value="Authorization" />
<arc:set attr="request.header:value#1" value="Bearer [Vault(FEToken)]" />
<arc:call op="httpPost" in="request">
<arc:set attr="output.data" value="[http:content]" />
<api:set attr="output.FileName" value="Results.csv"/>
</arc:call>
<arc:push item="output" />
CSV MAP:Salesforce へのデータマッピング
前述のScript コネクタは最終的にForecasting Experience のフォーキャスト結果をCSVで受け取るため、この結果をSalesforce のデータモデルにマッピングさせます。
CSVデータを使ったマッピングは「コア」コネクタの「CSV Map」を利用します。なお、手順的には予め次の手順であるSalesforce への書き込み処理を作ってから実施するとマッピングが行いやすいです。

CSV Map コネクタを配置し、前後のコネクタを連結させることで、自動的にソース・ディスティネーションのデータモデルが読み込まれ、項目をマッピングできるようになります。
ここでForecasting Experience から受け取った「Forecast」「Score」「p0」「p1」の値をSalesforce のカスタムフィールドに指定します。

Salesforce:リードデータの書き戻し
最後にSalesforce コネクタを利用して、リードデータを書き戻します。
最初の手順と同じようにSalesforce コネクタを配置し、接続を設定しましょう。

今回はデータの更新を行うのでアクションは「Upsert」を選択します。そして、書き戻すオブジェクトとして「Lead」を選択しました。

連携フローの実行
設定は以上です。それでは試しに実行してみましょう。
今回は手動で実行してみますが、通常は起点となるSalesforce コネクタの設定にある「オートメーション」タブで、実行スケジュールを指定して利用します。

手動実行する場合は「アウトプット」タブから「受信」をクリックします。これで以下のようにリードデータのCSVがCData Arc に受信されます。

各コネクタの処理が正常に成功すると、以下のようにSalesforce にForecasting Experience の評価結果が登録されます。

これでCData Arc を定期実行モードにしておけば、日々蓄積されるリードデータが自動的に優良顧客かどうか、コンバージョンする可能性が高いかどうかが識別されるようになり、営業・マーケティングの効率化に繋がります。
この記事で紹介したフロー(テンプレート)
この記事で作成したフローについては、以下のURLからテンプレートがダウンロードできます。
https://cdatajwrk.s3.ap-northeast-1.amazonaws.com/arcflow_template/ForecastingExperience.arcflow
ダウンロードしたarcflow は「ワークスペースをインポート」やフローデザイナーにドラッグ&ドロップで登録できます。こちらのテンプレートを利用する時は、各コネクタでの接続情報などを、お使いの環境に併せて編集してください。
おわりに
このようにCData Arc を利用することで、AI 予測プラットフォームForecasting Experience と各種CRM・SFAなどのSaaS連携を簡単に実現することができます。
CData Arc はシンプルで拡張性の高いコアフレームワークに、豊富なMFT・EDI・エンタープライズコネクタを備えたパワフルな製品です。
CData Drivers との組み合わせで250を超えるアプリケーションへの連携を実現できます。必要な連携を低価格からはじめられる事も大きな特長です。
皆さんのつなぎたいシナリオでぜひ CData Arc を試してみてください。
https://jp.cdata.com/arc/
お試しいただく中で何かご不明な点があれば、テクニカルサポートへお気軽にお問い合わせください。
https://jp.cdata.com/support/submit.asp