Skip to main content

はじめに

Microsoft Dynamics 365 Sales は、連絡先、リード、商談、アクティビティを通じて顧客関係を管理するエンタープライズ向け CRM ソリューションです。この統合により、Microsoft Power Automate を使用して、MoEngage から Microsoft Dynamics 365 Sales へのインバウンドデータフローが可能になります。

主な機能

この統合により、次のことができます。
  • MoEngage からリアルタイムのキャンペーンエンゲージメントイベント(メールの開封、クリック、フォーム送信、ウェビナーへの参加など)を受信する。
  • D365 Sales の Lead、Contact、Opportunity レコードを最新のエンゲージメントデータで自動的に更新する。
  • MoEngage と D365 Sales の間でエンゲージメント履歴の同期を維持する。
  • MoEngage キャンペーンでのインタラクションに基づいて、D365 Sales のワークフローやビジネスプロセスフローをトリガーする。
  • クローズドループレポートのために、営業活動イベントとマーケティングアトリビューションをトラッキングする。

ユースケース

  • メールエンゲージメントに基づくリードスコアリング: リードが MoEngage でマーケティングメールを開封したときに、D365 Sales のリードスコアを自動的に加算し、Last Engagement Date フィールドを更新して、営業担当者がフォローアップの優先順位を付けられるようにします。
  • 商談ステージの進行: 見込み顧客が MoEngage でトラッキングされているウェビナーに参加したり、料金ガイドをダウンロードしたりしたときに、D365 Sales の Opportunity を Qualified または Proposal ステージに自動的に移動し、アカウント所有者にフォローアップタスクを割り当てます。
  • キャンペーン反応のトラッキング: MoEngage のランディングページからのすべてのフォーム送信を取り込み、関連する Lead または Contact に紐付けられた Marketing Response レコードまたは Activity レコードを D365 Sales に作成して、包括的なエンゲージメント履歴を構築します。
  • マルチチャネルのエンゲージメント履歴: MoEngage のメール、SMS、プッシュ通知、アプリ内メッセージのイベントを D365 Sales のアクティビティレコードに同期することで、顧客とのやり取りの完全なタイムラインを構築し、営業チームがマーケティングのタッチポイントを完全に把握できるようにします。
  • 営業とマーケティングの連携: Contact が複数のキャンペーンタッチにエンゲージしたときに、担当営業に対するフォローアップの Call または Task を自動的に作成し、示された関心に基づいてタイムリーなアプローチを確実に行えるようにします。

統合の手順ガイド

前提条件
  • Microsoft Power Platform と D365 Sales 環境への管理者アクセス権。
  • Lead、Contact、Opportunity エンティティに対する書き込み権限を持つ D365 Sales のセキュリティロール。
  • MoEngage のデータ要件: レコードを適切に照合するために、MoEngage は user_attributes フィールドで次のいずれかの D365 エンティティ ID を送信する必要があります。
    • d365_lead_id(Lead GUID)— Lead レコードの更新に使用します。
    • d365_contact_id(Contact GUID)— Contact レコードの更新に使用します。
    • d365_opportunity_id(Opportunity GUID)— Opportunity レコードの更新に使用します。
MoEngage が D365 Sales にイベントを送り返す際にこれらの識別子を含められるように、アウトバウンド統合(D365 Sales → MoEngage)の際にこれらの識別子を MoEngage に同期しておく必要があります。MoEngage Streams を設定する際は、User properties to export でエクスポートするユーザープロパティを指定します。All を選択するか、必要な特定の識別子フィールド(例: d365_lead_id、d365_contact_id)を列挙してください。
使用可能なエンティティ識別子Microsoft Dataverse では、レコードの更新に次のプライマリ識別子を使用できます。
  • Primary Key(GUID): 各エンティティの一意の識別子(leadid、contactid、opportunityid など)。
  • Alternate Keys: D365 環境で設定されている場合のカスタム代替キー(例: Contacts の代替キーとしてのメールアドレス)。
この統合では、すべての D365 環境で一意かつ不変であることが保証されている Primary Key(GUID) を使用することをお勧めします。

ステップ 1: Power Automate で HTTP リクエストトリガーを作成する

1

Power Automate を開く

Power Automate に移動します。
2

自動化されたクラウドフローを作成する

Create > Automated Cloud Flow をクリックします。
3

フローに名前を付ける

フローに MoEngage - Receive Events to D365 という名前を付けます。
4

トリガーを選択する

トリガー When a HTTP request is received を選択します。
5

フローを作成する

Create をクリックします。
HTTP リクエストトリガーが強調表示された Power Automate のトリガー選択画面

HTTP リクエストトリガーを設定する

トリガーの設定で、Request Body JSON Schema を定義します。これにより、MoEngage Streams から受信するデータの構造を Power Automate に伝えます。
Request Body JSON Schema フィールドが表示された Power Automate の HTTP リクエストトリガー設定
次のスキーマをコピーして、Request Body JSON Schema フィールドに貼り付けます。
JSON Schema
スキーマを追加したら、Save をクリックします。Power Automate によって一意の HTTP POST URL が生成されます。この URL をコピーしてください。後で MoEngage Streams を設定する際に必要になります。

ステップ 2: 各イベントに適用する

MoEngage は 1 回のリクエストで複数のイベントを送信できるため、Apply to each ループを追加してイベントを個別に処理します。
1

新しいステップを追加する

New Step をクリックします。
2

Apply to each コントロールを選択する

Control を検索し、Apply to each(Control)を選択します。
3

events 出力を選択する

Select an output from previous steps フィールドで、JSON の動的コンテンツから events を選択します。
MoEngage ペイロード内のすべてのイベントに対して実行されるように、以降のすべてのアクションはこの Apply to each ループの内側に追加する必要があります。
events 配列を入力として設定した Power Automate の Apply to each ループ

ステップ 3: カスタムテーブルを作成してイベントレコードを追加する

この統合では、MoEngage キャンペーンのすべてのエンゲージメントイベントデータを Leads に紐付けて保存するために、Power Apps で MoEngage Event というカスタムテーブルを作成しました。 この方法により、顧客とのすべてのやり取りの完全な履歴を維持でき、任意のエンティティに対してこれを設定できます。
Power Apps でカスタムテーブルを作成するPower Automate のアクションを設定する前に、MoEngage のイベントデータを保存するためのカスタムテーブルを Power Apps で作成します。テーブルには、必要な列(Event Name、Event Date、Campaign Name、Campaign Channel、Event Code、Event UUID)と、対象のエンティティ(Lead、Contact、または Opportunity)へのルックアップリレーションシップを含める必要があります。手順については、カスタムテーブルの作成に関する Microsoft Power Apps のドキュメントを参照してください。

イベントレコードを作成する Dataverse アクションを追加する

1

Dataverse アクションを追加する

Apply to each ループ内に、Microsoft Dataverse アクションを追加します。
2

Add a new row を選択する

Dataverse アクションとして Add a new row を選択します。
3

カスタムテーブルを選択する

Table name で、カスタムテーブル(例: MoEngage Events)を選択します。
4

フィールドマッピングを設定する

次のセクションの説明に従って、フィールドマッピングを設定します。

フィールドマッピングの手順

MoEngage Events テーブルの各フィールドについて、受信した MoEngage ペイロードのデータをマッピングします。以下は、Event Name フィールドをマッピングする方法の例です。
Event Name フィールドが動的コンテンツの event_name にマッピングされた Power Automate の Dataverse アクション
動的コンテンツと式の違いほとんどのフィールド(Event Name、Campaign Name、Event Code、Event UUID など)の場合:
  • フィールド内をクリックして / を入力するか、稲妻アイコンをクリックします。
  • 動的コンテンツピッカーから適切な値を選択します。
ルックアップフィールドの場合:
  • フィールドをクリックして /leads({id}) を入力します。{id} は動的コンテンツから選択します。

ステップ 4: Unix タイムスタンプを DateTime に変換する

MoEngage はイベントのタイムスタンプを Unix エポック時間(例: 1731421200)で送信します。日付または時刻フィールドにマッピングする際は、これを D365 と互換性のある日時形式に変換します。 Inputs フィールドで、次の式を使用します。
Expression
Unix から DateTime への変換式が入力された Power Automate の式エディター

ステップ 5: 統合をテストする

手動トリガーでテストする

1

テストモードでフローを開始する

Power Automate で Test → Manually をクリックし、もう一度 Test をクリックして、リスニングモードでフローを開始します。
2

テストペイロードを送信する

Postman や cURL などのツールを使用して、Webhook URL にテストペイロードを送信します。以下のサンプルペイロードを使用してください。
Sample test payload

検証の手順

1

フローの実行を監視する

Power Automate でフローを開き、最新の実行を確認します。
2

正常に実行されたことを確認する

すべてのアクションに緑色のチェックマークが表示されていることを確認します。
3

カスタムの MoEngage Events テーブルを開く

Power Apps または D365 で、カスタムの MoEngage Events テーブルに移動します。
4

新しいイベントレコードを確認する

マッピングされたすべてのデータを含む新しいイベントレコードが作成されていることを確認します。
5

ルックアップフィールドを確認する

Lead ルックアップフィールドが Lead レコードを正しく参照していることを確認します。
マッピングされたデータと Lead ルックアップを含む新しいイベントレコードが表示された D365 の MoEngage Events テーブル

ステップ 6: MoEngage Streams を有効にする

統合のテストが成功したら、MoEngage Streams を有効にして、Power Automate の Webhook へのリアルタイムのイベントデータ送信を開始します。
MoEngage Streams を設定する
  1. ステップ 1 の HTTP POST URL(Power Automate の Webhook URL)をコピーします。
  2. MoEngage Streams の公式ドキュメントに従って、ストリームを有効にして設定します: MoEngage Streams ドキュメント。