はじめに
Microsoft Dynamics 365 Customer Service は、カスタマーサポート業務を管理および効率化するために設計されたエンタープライズグレードのソリューションです。ケース管理、オムニチャネルエンゲージメント、サービス分析のツールを提供し、顧客とのインタラクションを強化します。この統合は Microsoft Power Automate を介して MoEngage に接続し、リアルタイムのサービスデータ(ケースの作成や解決など)を D365 から MoEngage に送信できるようにします。主なメリットは、リアルタイムのカスタマーサービスアクティビティに基づいて、MoEngage からコンテキストに即した高度にパーソナライズされたキャンペーンをトリガーできることです。主な機能
この統合により、次のことが可能になります。- D365 Customer Service から MoEngage に連絡先とアカウントを同期する。
- ケースの作成、解決、SLA の更新などのサービスアクティビティを行動イベントとしてインポートする。
- CSAT、NPS、その他のフィードバックデータをセグメンテーション用のイベントとして取得する。
- サポートのインタラクションやケースのライフサイクルイベントに基づいて、コンテキストに沿ったキャンペーンをトリガーする。
同期モジュール
次の表は、D365 Customer Service の各モジュールのデータ同期を示しています。ユースケース
- ケースベースのエンゲージメント: D365 で新しいケースが作成されると、データを即座に MoEngage に送信し、ケース番号と解決予定時間を記載した確認メールをトリガーします。
- 解決とフィードバック: D365 でケースが「Resolved」とマークされたら、MoEngage キャンペーンを介して CSAT または NPS アンケートをトリガーし、即時のフィードバックを取得します。
- SLA とエスカレーション: SLA ステータスの更新を監視します。SLA が「Nearing Breach」になった場合は、顧客への事前の最新情報キャンペーンと、サポートマネージャーへの社内アラートをトリガーします。
- フィードバック主導のジャーニー: アンケートで低い CSAT スコアを受け取った場合、ユーザーを MoEngage の特定の再エンゲージメントジャーニーに自動的に追加し、D365 でフォローアップタスクを作成します。
ステップバイステップの統合ガイド
前提条件Power Platform および D365 Customer Service 環境への管理者アクセス権が必要です。
ステップ 1: MoEngage のエンドポイントを取得する
- MoEngage サポートチームに連絡し、専用の統合エンドポイントをリクエストします。
- リクエストには、プロフィールのリンクに使用する共通識別子(メールアドレス、external_id、または D365 GUID)を明記します。
- MoEngage から次の情報が提供されます。
- 専用の Webhook URL(形式:
https://api-0X.moengage.com/v1/partner/d365-service/{events/users}/?configName={config_name}) - 統合の設定名
- 専用の Webhook URL(形式:
ステップ 2: Power Automate フローを作成する
この統合のすべてのフローでは、Microsoft Dataverse コネクタを使用します。このコネクタの仕組みの詳細な概要については、公式の Microsoft Dataverse ドキュメントを参照してください。- Power Automate を開きます。
- Create > Automated Cloud Flow をクリックします。
- フローに名前を付けます:
D365 - Sync [Entity] to MoEngage(例:D365 - Sync Case Created to MoEngage)。 - トリガーを選択します: When a row is added, modified or deleted (Dataverse)。
- トリガーの詳細を設定します。
- Change type: ペイロードに応じて、Added、Modified、または Added or Modified を選択します。
- Table name: エンティティ(例: Cases、Contacts、SLA KPI Instances)を選択します。
- Scope: Organization。

どのトリガーをいつ使用するか(シナリオ別)
すべてのシナリオで同じトリガー(When a row is added, modified or deleted)を使用しますが、毎回異なる設定を行います。
1. ケースの作成/更新(およびユーザープロフィールの同期)
目的: 新しいケースが登録/更新されたときに、イベントと顧客の詳細を送信します。 トリガーの設定:- Change type: Added
- Table name: Cases(または incident)
2. SLA 違反/警告
目的: SLA ステータスが「Nearing Noncompliance」または「Noncompliant」に変わったときにイベントを送信します。 トリガーの設定:- Change type: Added or Modified
- Table name: SLA KPI Instances
3. CSAT アンケートの送信
目的: 顧客がアンケートを送信した後に、顧客のスコアとフィードバックを送信します。 トリガーの設定:- Change type: Added
- Table name: Survey Responses

ステップ 3: HTTP Webhook アクションを設定する
- New Step をクリックし、HTTP を選択します。
- 次の項目を入力します。
Basic 認証トークンを生成する
- オンラインの Basic Auth Header Generator tool を使用して Basic トークンを取得します。
- Username: MoEngage の Workspace ID(MoEngage Dashboard >> Settings >> APIs で確認できます)。
- Password: MoEngage の Data API Key(MoEngage Dashboard >> Settings >> APIs で確認できます)。
- ツールによって
Basic {base64_encoded_credentials}の値が生成されるので、これを Authorization ヘッダーに貼り付けます。

ステップ 4: リクエストボディのペイロードを追加する
以下から適切なペイロードテンプレートをコピーし、HTTP アクションの Body フィールドに貼り付けます。 Power Automate の式を使用して、プレースホルダーの値を D365 の動的フィールドに置き換えます。動的フィールドを追加するには、Body フィールドをクリックし、Dynamic content を選択して、利用可能な D365 フィールドを参照します。サンプルペイロード
ケースの作成/更新(ユーザーのアップサートあり)
このペイロードを使用して、イベントを作成し、MoEngage でユーザーのプロフィールを作成/更新します。完全なuser_attributes を送信する必要があるのは、このペイロードのみです。
トリガーの設定:
- Change type: Added or Modified
- Table name: Cases
注意このペイロードには「Get row by ID」(Dataverse)ステップが必要です。HTTP アクションの前にこのステップを追加し、Case トリガーの
_customerid_value を使用して連絡先の詳細(メールアドレス、電話番号など)を取得します。このステップには Get_Customer_Details という名前を付けます。ケースの作成/更新(ユーザーのアップサートなし)
このペイロードを使用して、MoEngage のユーザープロフィールを更新せずにイベントを送信します。 トリガーの設定:- Change type: Added or Modified
- Table name: Cases
注意このペイロードはユーザー属性を含まずイベントデータのみを送信するため、追加の Dataverse ステップは必要ありません。
SLA ステータスの更新(イベント)
このペイロードを使用して、SLA ステータスが変更されたとき(例: 「Nearing Noncompliance」または「Noncompliant」になったとき)にイベントを送信します。 トリガーの設定:- Change type: Added or Modified
- Table name: SLA KPI Instances
注意このペイロードには「Get row by ID」(Dataverse)ステップが必要です。HTTP アクションの前にこのステップを追加し、親の Case を取得して(Row ID として
_regarding_value を使用)、その _customerid_value を取得します。このステップには Get_Case_Details という名前を付けます。アンケート回答の受信(イベント)
このペイロードを使用して、CSAT/NPS スコアとフィードバックコメントをイベントとして送信します。 トリガーの設定:- Change type: Added
- Table name: Survey Responses(または
msdyn_surveyresponse/ Customer Voice エンティティ)
カスタムオンボーディングステータスの更新(イベント)
このペイロードは、カスタムエンティティ(例:cr123_onboarding)に使用します。顧客のオンボーディングステータスが変更されたときにイベントを送信します。
トリガーの設定:
- Change type: Modified
- Table name: Onboardings(またはカスタムエンティティのスキーマ名)
- Select columns:
cr123_statuscode(ステータスフィールドが変更されたときのみフローが実行されるため、フローの実行回数を節約できます)。
必須フィールド
MoEngage でデータを適切に処理するには、すべてのペイロードに次のフィールド(キー)を含める必要があります。データマッピングのガイドライン
- 一意の識別子(
customer_id): D365 と MoEngage の間でユーザープロフィールをリンクするには、一貫性のある不変の識別子を使用します。これは、データのマージと重複したユーザープロフィールの防止に不可欠です。一般的なオプション:- メールアドレス(一意の場合)
- D365 レコードの GUID(
contactid、leadidなど) - 外部 ID(D365 で設定されている場合)
- イベント名: 分析とセグメンテーションのために MoEngage でアクションを識別および分類できるよう、常にわかりやすい
event_nameを含めてください。
ステップ 5: 統合をテストする
- Power Automate で Test > Manually をクリックします。
- D365 でテストレコードを作成または変更して、トリガーを起動します(例: 新しい Case の作成、SLA の更新)。
- フローの実行を監視します。
- HTTP 200/201 の成功レスポンスが返されることを確認します。
- フローの実行詳細にエラーがないか確認します。
- MoEngage で確認します。
- MoEngage Dashboard > Users または Events に移動します。
- テストユーザー/イベントを検索します。
- 1~5 分以内にデータが正しく表示されることを確認します。
レート制限
プラットフォームの安定性を維持するため、MoEngage は Microsoft Dynamics 365 Customer Service データの取り込みをワークスペースあたり最大 500 リクエスト/秒(RPS)に制限しています。ワークスペースがこの制限を超えると、MoEngage は HTTP429 (Too Many Requests) ステータスコードを返します。
Power Automate フローで 429 レスポンスを処理するには、HTTP アクションに再試行ポリシーを設定し、制限に達したときにイベントが自動的に再送信されるようにします。
再試行の上限到達: HTTP アクションがすべての再試行を使い果たすと、フローの実行は失敗します。Power Automate の実行履歴から失敗した実行を再送信して、リクエストを再実行してください。