TeamsとPower Automate連携で新規商談発生時の通知を自動化したい!作り方を分かりやすく説明

Power AutomateとTeamsで新規商談発生を自動通知する!

「新しい商談が発生したことに、チームメンバーがすぐに気づけない」「商談情報を手動で共有するのが手間」「重要な商談の見落としや、初期対応の遅れが心配」。新規商談の発生は、ビジネスチャンスの始まりですが、その情報共有が遅れると、機会損失に繋がりかねません。

Power AutomateとTeams、そして商談情報を管理するシステム(ここではCRMシステムやSharePointリストを想定します)を組み合わせることで、新規商談が発生した際に、担当者やチームへ迅速にTeamsで自動通知する仕組みを構築できます。


なぜ新規商談発生通知を自動化することが大切なの?

新しい商談の発生を迅速に共有することは、営業活動の成否を左右する重要な要素です。この自動化がもたらす具体的なメリットについて、一緒に見ていきましょう。

商談の初期対応を迅速化し、機会損失を防げるから

新規商談の発生は、スピードが命です。しかし、手動での情報共有では、担当者への連絡が遅れたり、情報が見落とされたりするリスクがあります。自動通知システムは、商談が発生した時点で即座に担当者やチームへTeamsで通知するため、迅速な状況把握と初期対応が可能になります。これにより、商談の機会損失を防ぎ、お客様へのアプローチを素早く開始できるでしょう。

営業担当者やチームの負担を大幅に削減できるから

新しい商談が発生するたびに、営業担当者が個別にチャットを作成したり、メールで情報を共有したりする作業は、手間がかかる定型業務です。自動通知システムを導入することで、これらのルーティンワークから解放され、担当者は顧客とのコミュニケーションや商談準備といった、本来の営業活動に集中できるようになります。これにより、日々の業務に時間的な余裕が生まれ、生産性もぐっと上がりますよ。

情報の共有漏れや連携ミスを減らせるから

大規模な営業組織や複数のチームが連携している場合、新規商談の情報が一部のメンバーにしか共有されず、連携ミスが発生する可能性があります。自動通知システムは、事前に設定された関係者やチャネルに確実に通知を届けるため、情報共有の漏れがなくなります。これにより、チーム全体の情報透明性が高まり、スムーズな連携が促されるでしょう。

営業活動の透明性を高め、チーム全体の生産性が向上するから

新規商談の発生がリアルタイムでTeamsに通知されることで、チームリーダーは全体のパイプライン状況を把握しやすくなります。また、他のメンバーも新しく始まった商談の情報を確認できるため、必要に応じて協業を申し出たり、過去の類似事例を共有したりできます。これにより、チーム全体の情報活用能力が高まり、生産性もぐっと上がりますよ。


 

構築システムの準備を始めよう

新規商談発生時の自動通知システムを作る前に、いくつか確認し、準備しておくべきことがあります。これらを事前に整理しておくことで、スムーズに自動化を進められます。

商談情報の「置き場所」を決めよう

Power Automateが新規商談の発生を検知するためには、その情報がどこかに保存されており、Power Automateからアクセスできる必要があります。ここでは、CRMシステムを主要な置き場所として想定しますが、簡易的にSharePointリストで代用することも可能です。

  • CRMシステム(推奨):
    • Microsoft Dynamics 365 Sales: Power Automateの「Microsoft Dataverse」コネクタで連携できます。
    • Salesforce: Power Automateの「Salesforce」コネクタで連携できます。
    • HubSpot, Zoho CRMなど: それぞれ専用コネクタが提供されている場合が多いです。
    • 検知したいイベント: 新しいリードが作成されたとき新しい商談が作成されたとき商談のステータスが「新規」になったときなど、CRMのイベントをトリガーにします。
  • SharePointリスト(簡易版):
    • 新規商談を登録するためのリスト(例: 商談管理リスト)を作成します。
    • 必要な列(例): タイトル(商談名)顧客名担当営業(ユーザー列)商談ステージ見込み金額発生日商談詳細URLなど。

 

通知を送るTeamsの「場所」を決めよう

新規商談の通知を、どこに、誰に対して送りたいのかを決定します。

  • 担当営業への個人チャット(推奨): 商談を割り当てられた営業担当者へ直接通知します。
  • 営業チームチャネル: 営業部全体や、特定の営業チームが参加しているチャネル(例: 営業部_新規商談〇〇チーム_パイプライン)。
  • 営業部長/マネージャーへの個人チャット: 重要な商談の場合や、全ての商談発生を把握したい場合に通知します。

 

通知する「メッセージ内容」を考えよう

自動でTeamsに投稿されるメッセージは、簡潔かつ分かりやすく、商談の概要が把握しやすいように工夫しましょう。

  • 件名: 【🎉新規商談発生】〇〇社 (〇〇製品) 見込み金額〇〇万円 のように、一目でわかるようにします。
  • 商談名/概要: 商談のタイトルや簡単な内容。
  • 顧客情報: 顧客名。
  • 担当者: 割り当てられた担当営業名。
  • 発生日時: 商談が記録された日時。
  • 商談詳細へのリンク: CRMの商談レコードやSharePointリストアイテムへの直接リンク。
  • 推奨される次のアクション: 「迅速な初回連絡をお願いします」など、具体的な行動を促すメッセージ。
  • 重要度: 必要に応じてTeamsアクションの「重要度」を「重要」に設定することを検討しましょう。

 

必要な「権限」を確認しよう

Power Automateでフローを作成し、CRMシステムから商談情報を読み取り、Teamsにメッセージを送信するためには、フローを実行するアカウントが適切な権限を持っている必要があります。

  • CRMシステムへのアクセス権: 監視対象のCRMシステムに対して「読み取り」権限が必要です。
  • Teamsチャネル/チャットへのメッセージ投稿権: 投稿先のTeamsチャネルまたは個人チャットへのメッセージ投稿権限が必要です。

 

Power Automateで自動化を設定しよう(基本編)

Power Automateを使って新規商談発生時の自動通知フローを作成していきます。ここでは、Microsoft Dynamics 365 Salesで新しい商談が作成されたことをトリガーに、担当営業と営業チームへTeamsで自動通知を送る基本的なフローから見ていきましょう。

フローを作成する場所を決めよう

Power Automateのウェブサイトにアクセスし、左側のメニューから「作成」を選択します。今回は、特定のイベント(CRMでの商談作成)が発生したときに自動的に実行されるフローなので、「自動化したクラウド フロー」を選択します。

 

トリガーを設定しよう

フローのトリガーとは、「いつ」このフローを実行するかを決定するものです。ここでは、Dynamics 365 Salesで「新しい商談」が作成されたときにフローを実行したいので、トリガーには「新しい行が追加されたとき (Microsoft Dataverse)」を選択します。


作成例1:Dynamics 365 Salesで新規商談発生時に担当営業とチームへTeams通知

このフローは、Dynamics 365 Salesで新しい商談レコードが作成された際に、担当営業のTeamsチャットへ個別通知を、営業チームのチャネルへも共有通知を送信します。

  1. Power Automateにサインインします。お使いのMicrosoft 365アカウントでPower Automateのウェブサイト(https://make.powerautomate.com/)にアクセスし、サインインします。
  2. 「作成」から「自動化したクラウド フロー」を選択します。左側のナビゲーションペインにある「作成」をクリックし、表示されるオプションの中から「自動化したクラウド フロー」を選択します。
  3. フロー名を指定し、トリガーを選択します。フロー名には「新規商談_Teams通知」など、分かりやすい名前を付けます。「フローのトリガーを選択してください」の検索ボックスに「Dataverse」と入力し、「新しい行が追加されたとき (Microsoft Dataverse)」を選択して「作成」をクリックします。
  4. トリガーの詳細を設定します。
    • 変更の種類:追加」を選択します(新規作成時を検知)。
    • テーブル名:営業案件」を選択します(Dynamics 365の商談エンティティです)。
    • スコープ:組織」を選択します(組織全体で発生した商談を検知)。
    • 行のフィルター(オプション): 商談ステージが「新規」の場合のみトリガーするなど、特定の条件で絞り込む場合は設定します。例: stageid eq '〇〇〇' (ステージのGUID)
  5. 新しいステップを追加し、商談レコードに関連する担当者の情報を取得します。Dynamics 365の担当者情報は、通常ユーザーIDで管理されているため、表示名やメールアドレスを取得するために必要です。
    • 「行を取得する (Microsoft Dataverse)」アクション:
      • テーブル名:ユーザー」を選択します。
      • 行のID: トリガーの担当者(値)_ownerid_valueのようなフィールド名)を選択します。
  6. 新しいステップを追加し、Teamsに担当営業への通知を投稿します。「+ 新しいステップ」をクリックします。検索ボックスに「Teams」と入力し、「チャットまたはチャネルにメッセージを投稿する (Teams)」を選択します。
    • 投稿者:Flow bot」を選択します。
    • 投稿先:チャット」を選択します(担当営業個人に通知するため)。
    • 受信者: 「行を取得する」アクションで取得したユーザーの「プライマリ メール」(primaryemail)を選択します。
    • メッセージ:
      @{outputs('行を取得する')?['body/value'][0]['fullname']}様
      
      【🎉新規商談発生】おめでとうございます!
      
      新しい商談が発生しました。迅速な対応をお願いいたします。
      
      商談名: @{triggerOutputs()?['body/title']}
      顧客名: @{triggerOutputs()?['body/customerid']?['customeridname']}
      見込み金額: @{triggerOutputs()?['body/estimatedvalue']}円
      発生日: @{formatDateTime(triggerOutputs()?['body/createdon'], 'yyyy/MM/dd HH:mm')}
      
      ▼詳細をCRMで確認
      [CRMレコードを開く]@{triggerOutputs()?['body/accessmetadata']['Microsoft.Dynamics.CRM.sharepointdocumentlocation.WebUrl']}
      
      • 補足:titleは商談名、customeridは顧客情報、estimatedvalueは見込み金額、createdonは発生日です。CRMのフィールド名やリンクの形式は、貴社のDynamics 365のカスタマイズ状況によって異なります。odatabindなどの動的なリンクが提供される場合もあります。
    • 重要度:重要」を選択します。
  7. 新しいステップを追加し、Teamsに営業チームへの通知を投稿します。「+ 新しいステップ」をクリックし、「チャットまたはチャネルにメッセージを投稿する (Teams)」を選択します。
    • 投稿者:Flow bot」を選択します。
    • 投稿先:チャネル」を選択します。
    • チーム: 営業チームが所属するTeamsのチームを選択します。
    • チャネル: 新規商談通知用チャネル(例: 営業部_新規商談)を選択します。
    • メッセージ:
      【🎉新規商談発生:営業チームへ共有】
      
      本日、以下の新規商談が発生しました。
      
      商談名: @{triggerOutputs()?['body/title']}
      顧客名: @{triggerOutputs()?['body/customerid']?['customeridname']}
      見込み金額: @{triggerOutputs()?['body/estimatedvalue']}円
      担当営業: @{outputs('行を取得する')?['body/value'][0]['fullname']}
      発生日: @{formatDateTime(triggerOutputs()?['body/createdon'], 'yyyy/MM/dd HH:mm')}
      
      ▼詳細をCRMで確認
      [CRMレコードを開く]@{triggerOutputs()?['body/accessmetadata']['Microsoft.Dynamics.CRM.sharepointdocumentlocation.WebUrl']}
      
  8. フローを保存してテストします。画面右上の「保存」をクリックします。保存後、「テスト」をクリックし、「手動」を選択して「テスト」をクリックします。Dynamics 365 Salesで新しい商談レコードを手動で作成します。Power Automateのフロー実行履歴を確認し、担当営業のTeamsチャットと、営業チームの指定チャネルに通知が届いていることを確認します。

 

アクションを設定しましょう

トリガーが発動したら、次に「何を」するのかを設定します。これがアクションです。

  • CRMコネクタアクション(Microsoft Dataverseの場合):
    • 新しい行が追加されたとき」: CRMに新しいレコード(商談など)が作成されたことを検知するトリガー。
    • 行を取得する」: 商談レコードに関連するユーザー(担当者)の詳細情報を取得します。
  • Teamsアクション:
    • チャットまたはチャネルにメッセージを投稿する」: 新規商談発生通知を担当営業個人へ、および営業チームチャネルへ送信します。

 

通知メッセージのカスタマイズをしましょう

メッセージの内容は、動的なコンテンツを利用して、商談名、顧客名、見込み金額、担当営業名、発生日時、CRMレコードへのリンクなどを自動的に埋め込むことができます。

  • 商談名: title (CRMの商談レコードのタイトル)
  • 顧客名: customerid/customeridname (関連する顧客の表示名)
  • 見込み金額: estimatedvalue
  • 担当営業名: fullname (「行を取得する」アクションで取得した担当者の表示名)
  • 発生日時: createdon
  • CRMレコードへのリンク: accessmetadataWebUrlなど、CRMの種類や設定によって異なります。

これらの情報をメッセージ本文に適切に配置することで、Teamsのメンバーが、どんな商談が、誰から、いくらで、誰が担当するのか、そしてどこで詳細を確認できるのかを、一目で把握できるように工夫しましょう。簡潔で分かりやすいメッセージと、すぐにアクセスできるリンクが重要です。


 

Power Automateで自動化を設定しましょう(応用編)

基本編で作成したフローをさらに便利にするための応用テクニックを見ていきましょう。

商談の種類や見込み金額に応じて通知先や内容を分岐する

発生した商談の種類(例: 新規顧客、既存顧客)や、見込み金額(例: 〇〇万円以上)に応じて、通知を送るチャネルや担当者を変えたり、メッセージ内容を調整したりすることで、より的確な情報共有と優先順位付けを可能にします。


作成例2:商談の種類や見込み金額に応じて通知先や内容を分岐するPower Automateフロー

基本編のフローに「条件」アクションや「切り替え」アクションを追加し、商談情報に応じて通知を分岐させます。

  1. 基本編のフロー(新規商談_Teams通知)を開きます。
  2. トリガー(新しい行が追加されたとき)の後に「条件」アクションを追加します。
    • 例1:見込み金額が特定の金額以上の場合
      • 左側の値: @{triggerOutputs()?['body/estimatedvalue']} (見込み金額)
      • 演算子:次の値より大きいか、または等しい
      • 右側の値: 1000000 (100万円の場合)
    • 例2:商談の種類で分岐する場合
      • 左側の値: @{triggerOutputs()?['body/new_opportunitytype']?['Value']} (商談の種類フィールド、貴社のCRMカスタマイズによる)
      • 演算子:次の値と等しい
      • 右側の値:新規顧客
  3. 「はい」のパス(条件に合致した場合)に、特別な通知アクションを追加します。
    • 「チャットまたはチャネルにメッセージを投稿する (Teams)」アクション:
      • 投稿先: チャット(営業部長個人へ)または「チャネル」(役員向け進捗チャネル)
      • 重要度:重要」または「緊急」に設定。
      • メッセージ: 件名に「【VIP商談発生】」を追加するなど、より強調した内容。
  4. 「いいえ」のパス(条件に合致しない場合)に、通常の通知アクション(基本編で作成した担当営業と営業チームへの通知)を移動させます。
  5. フローを保存してテストします。Dynamics 365 Salesでテスト用の商談を作成し、見込み金額や種類を変えてみて、通知が正しく分岐していることを確認します。

営業担当者がTeamsで商談の初回対応完了を報告できる仕組みを作る(アダプティブカード利用:高度)

新規商談の通知メッセージに、Teamsのアダプティブカードを使って「初回連絡完了」ボタンを埋め込み、担当者がワンクリックするだけでCRMの商談ステータスを更新できるようにします。


作成例3:Teamsで「初回連絡完了」ボタンを設置し、CRMを更新するPower Automateフロー(高度)

この機能は、アダプティブカードのJSON構築と、Teamsの「応答を待機する」アクションの利用が必要です。

  1. 基本編のフロー(新規商談_Teams通知)を開きます。
  2. 担当営業への通知アクションを「チャットまたはチャネルにアダプティブ カードを投稿して応答を待機する (Teams)」に変更します。
    • 投稿先/受信者: 基本編と同じ設定(担当営業個人チャット)。
    • メッセージ: アダプティブカードのJSONをここに貼り付けます。
    • アダプティブカードのJSON例:

      JSON

      {
          "type": "AdaptiveCard",
          "body": [
              {
                  "type": "TextBlock",
                  "text": "🎉 新規商談発生のお知らせ",
                  "wrap": true,
                  "size": "Medium",
                  "weight": "Bolder"
              },
              {
                  "type": "FactSet",
                  "facts": [
                      {
                          "title": "商談名:",
                          "value": "@{triggerOutputs()?['body/title']}"
                      },
                      {
                          "title": "顧客名:",
                          "value": "@{triggerOutputs()?['body/customerid']?['customeridname']}"
                      },
                      {
                          "title": "見込み金額:",
                          "value": "@{triggerOutputs()?['body/estimatedvalue']}円"
                      }
                  ]
              }
          ],
          "actions": [
              {
                  "type": "Action.OpenUrl",
                  "title": "CRMで詳細を見る",
                  "url": "@{triggerOutputs()?['body/accessmetadata']['Microsoft.Dynamics.CRM.sharepointdocumentlocation.WebUrl']}"
              },
              {
                  "type": "Action.Submit",
                  "title": "初回連絡完了",
                  "data": {
                      "action": "first_contact_done",
                      "opportunityId": "@{triggerOutputs()?['body/opportunityid']}"
                  }
              }
          ],
          "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
          "version": "1.4"
      }
      
    • 補足: opportunityidは商談レコードのIDです。
  3. 新しいステップを追加し、アダプティブカードからの応答を処理します。
    • アダプティブ カードへの応答の待機」アクションが自動で追加されます。
    • 「条件」アクション: 担当者が「初回連絡完了」ボタンを押したかどうかをチェックします(triggerBody()['data']['action']first_contact_doneと等しいか)。
  4. 「はい」のパス(「初回連絡完了」ボタンを押された場合)に、CRMレコードを更新するアクションを追加します。
    • 「行を更新する (Microsoft Dataverse)」アクション:
      • テーブル名:営業案件
      • 行のID: アダプティブカードから送られたopportunityIdtriggerBody()['data']['opportunityId']
      • 更新する項目: 例えば、「初回連絡日」というカスタム日付フィールドをutcNow()で更新したり、「商談ステージ」を「初回連絡済み」に更新したりします。
    • Teamsにメッセージを投稿する: 営業チームのチャネルに「商談〇〇の初回連絡が完了しました!」と通知。
  5. フローを保存してテストします。新しい商談を作成し、Teams通知のアダプティブカードのボタンを押すことで、CRMのレコードが更新され、チームチャネルに通知が届くことを確認します。

 

エラー対策とトラブルシューティングを確認しましょう

Power Automateフローは、確実に動作することが求められます。特に新規商談の通知は、ビジネスチャンスに関わるため、信頼性が非常に重要です。よくあるエラーとその対策、そしてトラブルシューティングのポイントをご紹介します。

権限不足のエラーが出た場合

「アクセスが拒否されました」といったエラーメッセージが表示される場合、Power AutomateがCRMシステムから商談情報を読み取ったり、CRMにデータを書き込んだり、Teamsにメッセージを送信したりするための権限が不足している可能性があります。

対策: フローを実行するアカウントが、対象のCRMシステムに対して「読み取り」権限(商談取得のため)と、「作成・更新」権限(商談更新のため)、そしてTeamsチャネルへのメッセージ投稿権限、個人チャットへのメッセージ送信権限を持っていることを確認してください。営業部門やシステム管理の担当者がフローを作成・管理するのが望ましいでしょう。

 

CRMのAPI制限に達した場合

特に大量の商談が発生する場合、CRMシステムのAPI呼び出し制限に達してフローが停止することがあります。

対策

  • CRMの利用状況やAPI制限を確認し、必要であれば制限緩和を検討したり、フローの実行頻度を調整したりしましょう。
  • Power Automateの「再試行設定」を活用し、一時的なAPIエラーでも自動的に再試行するように設定しましょう。

通知がTeamsに届かない場合(フローは成功しているのに)

Power Automateの実行履歴ではフローが「成功」しているのに、Teamsに通知が届かない場合があります。

対策

  • Teamsの通知設定: 受信側のTeamsで、Flow botからの通知がブロックされていないか、ミュートされていないかなどを確認してください。
  • チャネル/チャットの選択ミス: 「チャットまたはチャネルにメッセージを投稿する」アクションで、意図したチャネルや受信者が正しく選択されているか、タイプミスがないかを再確認しましょう。
  • 接続の正常性: Power Automateの「データ」→「接続」で、Teamsへの接続が正常に確立されているかを確認しましょう。

フローの履歴を確認しましょう

エラーが発生した場合や、フローが意図通りに動作しない場合は、Power Automateのフロー実行履歴を確認することが最も重要です。

手順

  1. Power Automateの「マイ フロー」から、該当のフローを選択します。
  2. 実行履歴」タブをクリックします。
  3. 失敗した実行、または成功したものの動作が怪しい実行を選択すると、フローの各ステップがどのように実行されたか、どこでエラーが発生したか、そして入力/出力データやエラーメッセージの詳細を確認できます。

ポイント: 各アクションの「入力」と「出力」を確認することで、どのデータがどのように処理され、どこで問題が発生したのかを詳細に把握できます。特にCRMからのデータ取得、Teamsへの投稿メッセージが期待通りに構成されているかを確認しましょう。


セキュリティとアクセス管理を確認しましょう

新規商談の情報は、顧客情報や企業の営業戦略に関わるため、自動化システムを構築する際は、セキュリティとアクセス管理に細心の注意が必要です。

 

CRMシステムへのアクセス権限を適切にしましょう

Power Automateフローを実行するアカウントは、CRMシステムへの「作成」「読み取り」「更新」などの適切な権限を持っている必要があります。

  • 最小限の原則: フローに与える権限は、必要な操作(リード作成、商談更新など)に限定し、不必要な権限を与えないようにしましょう。
  • 専用のサービスアカウント: フローの実行には、個人アカウントではなく、CRM連携用の専用サービスアカウントを作成し、そのアカウントにのみ必要な権限を付与することを検討しましょう。

 

Teamsチャネルの権限設定を適切にしましょう

新規商談通知が送信されるTeamsチャネルのメンバーシップも適切に管理しましょう。

  • プライベートチャネルの利用: 商談情報のような機密性の高い情報が流れるチャネルは、必ず「プライベート」チャネルとし、必要なメンバー(営業チーム、マネージャーなど)のみを招待しましょう。
  • 一般チャネルへの通知の制限: 全員がアクセスできる「一般」チャネルには、機密性の低い、概要のみの情報に留めるか、通知自体を行わないようにしましょう。

 

フローの作成と実行権限を管理しましょう

この自動化フローは、会社の重要な営業情報を扱うため、不用意に作成・変更・実行できないように、適切な権限管理が必要です。

  • フロー作成者の制限: 重要なフローの作成権限は、営業部門の責任者や特定のシステム管理者にのみ付与することを検討しましょう。
  • 共有の最小化: フローを他のユーザーと共有する際は、実行のみの権限に限定し、共同所有者としての共有は慎重に検討しましょう。共同所有者はフローを編集できるため、意図しない変更のリスクがあります。
  • サービスアカウントの利用: フローの実行アカウントが個人アカウントではなく、専用のサービスアカウントであれば、個人の人事異動や退職の影響を受けにくく、権限管理も一元化しやすいでしょう。

 

個人情報保護への配慮を忘れずに

新規商談情報には、顧客の氏名、連絡先、企業名といった個人情報が含まれる可能性があります。これらの情報の取り扱いには、個人情報保護法などの関連法令や社内規定を遵守するよう細心の注意を払いましょう。

  • 利用目的の明確化: 顧客情報の収集目的と、自動通知の目的を明確にし、必要であれば関係者へ通知しましょう。
  • 安全な保管: 不必要なアクセスを制限し、データの安全な保管に努めましょう。
  • 保持期間の検討: 商談情報の保持期間を定め、期間経過後は適切に廃棄する運用を検討しましょう。

まとめ

Power AutomateとTeams、CRMシステムを組み合わせることで、新規商談発生時の自動通知を行う方法について、基本的な設定から応用、エラー対策、そしてセキュリティとアクセス管理まで、詳細に解説してきました。

この自動化された通知システムは、商談の初期対応を迅速化し、担当者やチームの負担を軽減し、情報共有の漏れを防ぐための強力なツールとなるでしょう。結果として、営業活動の効率と透明性が向上し、ビジネスチャンスの獲得に大きく貢献できます。