お久しぶりです。2年振りにBCが主たる業務の役割に戻ったので、またボチボチ記事を書いていこうと思います。
2024年の後半くらいからAgentでの生成AIの活用が普及してきていますが、BCもご多分に漏れずAgentによる各種便利機能の実装が進んできています。
今回は2025 Release Wave 1 の新規のの一つ、Sales Order Agent機能を紹介します。
物品販売業における一般的な販売のシナリオはこんな感じです。
1. 引合:見込み顧客から商品問い合わせを受ける
2. 見積:金額を提示する。また在庫有無や納期を回答する
3. 受注:顧客から発注の意思表示を受け、受注の意思表示を返す
4. 出荷:商品を出荷する
5. 検収:顧客が商品を受け取り、問題ないことを確認する
6. 請求:顧客に請求書を送付し、売上と売掛を計上する
最近だと引合いの問い合わせや見積提示、発注意思表示、請求などはメールで行うことが多いですし、見積書や注文書などはPDFをメールに添付することが多いです。
BCのSales Order Agentは、1.引合、2.見積、3.受注の各ステップで営業担当者が行う以下のことを「ほぼ」自動で行ってくれます。
(a) メールチェック
(b) BCの伝票登録
(c) 帳票の作成
(d) 帳票を添付してメールで返信
ちなみに「ほぼ」とわざわざ書いたのは、顧客へのメール返信の前に人間(営業担当者)による確認ステップが入るからです。あくまで”Co-pilot(副操縦士)”という位置づけです。
また、個々の引合案件ごとにタスク管理してくれます。この表現だと上手く伝わらないと思いますが、、タスク管理機能は非常にありがたいです。メール見落としや案件放置のリスクが激減します。
では実際に見てみましょう。
1. 初期設定
最初にSales Order Agentの初期設定をします。
BCにサインインすると右上に「SO+」アイコンがあるのでこれをクリックすると以下のような画面になります。「*をアクティブ化する」をクリック。

Sales Order Agentの設定Wizard画面が開きます。

Wizardの説明画面は2ページあり、「>」アイコンをクリックすると、、

次のページの説明を見れます。

「<」アイコンで前のページに戻れます。

1ページ目の説明を見てみましょう。Summary(概要)に書かれています。
「到着するメールの中で販売関係の問い合わせを見つけ、送信者が顧客として登録されているかどうかを突合します。問い合わせがあった商品の在庫があるかをチェックし、見積を作成します。(BCを操作する人から)処理を進めてよいという応答があれば、エージェントは見積を受注に変換します。このエージェントは生成AIを使用します。正確を期すためにエージェントが取るアクションをレビューしてください。」

Agentが生成AIを使って自動的に処理してくれるものの、最後は人間の判断をちゃんと入れてね、ということですね。Wizardの説明画面の2ページ目にはレビューに関するパラメータがあります。たとえば選択反転した箇所は「見積を新規作成または更新した際にレビューをいれるかどうか」を設定するパラメータです。このようにAgentにある程度任せるか、細かく人間がレビューを入れるかをパラメータ設定できます。ほかにもレビューに関するパラメータがいくつかあることがわかります。今回は以下の初期値のまま進めます。

Wizardの説明の1ページ目に戻ります。重要事項としてエージェントを使うと課金される可能性がありますよ、と書かれています。課金と請求の仕組みについては今回は詳細割愛しますが、少量のクレジットが付与されているようで、今回説明するシナリオを試す分には十分です。(何度か繰り返すうちにお試しクレジットが残り少なくなる旨の警告が表示され、最終的には翌月まで待たないと使えない状態になりました。ガッツリ使うときはCopilot Studioのサブスクなどを契約するのがよいでしょう。)

説明は一通り読んだので設定を開始します。必須設定項目はメールアカウントです。MailboxのAccountの横の「…」をクリック。

メールのセットアップWizardが起動します。ここはSales Order Agent独自の画面ではなく、昔からあるメール設定のWizard画面が呼び出されています。説明を読んで「Next」をクリック。

メールアカウントのタイプを選びます。業務的には問合せ受付専用の共有メールを作ってそちらで問い合わせを受けるのがベターで、その場合は1番目のメールタイプを選択します。これは課金額を少なくすることにもつながります。
が、今回は設定が簡単な2番目の選択肢で進めます。これはBC操作者が自分のM365メールアカウントを使うというタイプです。業務的には問い合わせ用の共有メールアドレスを作っていても営業担当に直接来るケースはあると思うので、そういう想定でシナリオを進めることにします。Current Userの行を選んで「Next」をクリック。

Current Userタイプの説明が書いてあるので読んだうえで「Next」をクリック。

設定完了前にテストメールを送ってみましょう。「Send Test Email」をクリック。

一つ目の選択肢で自分自身のメールアドレス(つまりAgentがメールをモニタしているアカウント)に送るか、二つ目の選択肢で別のメールアドレスに送るかを選択。正直どちらでもいいですが、今回は二つ目を選択。

別途用意しておいたOutlookアカウントを指定。

「常に許可」または「1回のみ許可」を選んで処理を進めます。

テストメール送信完了。

Outlook.jp側のアカウントを確認するとテストメールが届いています。成功!
なお、場合によっては迷惑メールボックスに振り分けられますw

届いたテストメールの発信元を確認。BCテナントのアカウントであることが確認できます。

BCの画面に戻り「Finish」を押してEmailの設定完了。

Emailの設定は完了したがSales Order Agentの設定は終わっていないことに注意。Sales Order AgentでモニタするアカウントがCurrent Userであることを指定する画面に戻った状態なので選択して「OK」をクリック。

Sales Order AgentのWizardのメール設定が完了し、Sales Order Agentの最初の画面に戻ってきました。ここで「Update」をクリック。

これで初期設定は完了です!
2. Sales Order Agentを使って引合~見積~受注を対応する
a. 引合
BCにサインインした直後の画面(ロールセンター画面)で右上の「SO」アイコンにマウスのカーソルを合わせると以下のような画面が表示され、Sales Order Agentのタスクの処理状況を見ることができます。これだと見辛いので「タスクペインに移動」をクリック。

すると、右側にSales Order Agent用の枠が表示されます。初期設定終了時点では何も表示されませんが、見積もり依頼メールなどが届くとここに色々と表示されてきます。

顧客から見積依頼のメールを送る、という想定でOutlook.jpアカウントからメールを送ってみます。Sales Order Agentがどこまで日本語対応しているか怪しいので、とりあえず英語で送ってみます。
内容としては「ANTWERP Conference Tableを一つ欲しいので金額と納入可能日を教えてほしい」というものです。

営業担当者がメールを受ける、という想定でBCテナント側の組織アカウントのメールボックスを確認すると顧客想定であるOutlook.jpアカウントからのメールが届いています。

BCの画面に戻るとSales Order Agentのタスクに「要注意」で何か表示されています。マウスオーバーすると「Antwerp 会議用テーブルの価格と納期について問い合わせメールが来ている」ということがわかります。英語で送られたメールも日本語で表示されていて良い感じです。BCに限らずCopilot関連は、正式に日本語対応してくれているか?が気になりますが、この程度の翻訳であれば難なくこなせるようです。

メールの受信が完了し処理する準備が整った、とのことなので「レビュー」ボタンをクリックします。

すると Invoming email画面に遷移します。この画面自体は以前からある機能で、BCのメール設定で指定したメールアドレスに届いたメールをBCの画面で見れるようにするものです。ANTWERP Conference Tableに関する問い合わせメールが表示されています。

Incoming email の画面タイトルの下に何やら表示されています。この送信元アドレスが既知のアドレスではない、と言っているようです。

メッセージを詳しく見てみると、送信元であるOutlook.jpのアカウントは連絡先(Contact)として存在しないので、見積などの文書を作ったりすることができない、と言っています。なので、Create Contactボタンを押して連絡先として登録します。

Create Contactボタンを押すとメールの送信元アドレス情報から名前とアドレスを持ってきます。Contact TypeはPersonが指定されており、これで問題ないのでOKを押します。

するとContactカードが開きます。BtoBビジネスであれば最終的にはType=Companyの連絡先を作って紐づけるのですが、それは後回しにして今回はこのまま進めます。

ちなみにBCには簡易CRM機能が昔から備わっており、Contact(連絡先)から案件の引合があった場合はOpportunity(機会)というものを作って案件管理することができます。今回取り上げているCopilotやSales Order Agentがこの簡易CRM機能と連動するのかどうかが気になったので、ここでOpportunityを作ってみます。Create Opportuniryボタンをクリック。

引き合いの案件名として「1 ANTWERP Conference Table」と入力し、(保存ボタンの代わりに)読み取り専用モード切替ボタンを押すとOpportunityが登録保存されます。

左上の矢印ボタンで戻ります。

b. 見積
Incoming emailに戻ってきました。Sales Order Agent画面は特に何も変わっていません。OpportunityとSales Order Agentは何も連動しないような気がしてきました。。
気を取り直して、Sales Order Agentで処理を進めるためConfirmをクリックします。

するとSales Order Agentの画面が変化しました。まず、「Create and Populate Sales Quote」というステップができています。見積が作られたようです。このステップをクリックしてみます。
(ちなみに左側の画面がOpportunity画面なのはスクショ取り間違えなので気にしないでください。Incoming email画面が表示されるのが正しい挙動です。)

Sales Quoteの画面に遷移しました。この見積番号1003の見積はSales Order Agentが作成したもので、レビューを待っている、というメッセージが表示されています。Learn moreとあるのでクリックすると、、

メッセージが表示されます。Sales Order Agentは最近この見積をタスクの一環で作成/更新しており、Agentに割り当てられた営業担当者がこの見積をレビューすることでAgentはタスクのステップを進めることができる、と書いています。右側にはAgentが受信メールから拾ってきて見積に適用した項目と値が表示されています。
Agentが拾ってきて適用した値が間違っていることに気づいた時、この右側のところで修正できると便利だと思うのですが、今のところ修正できないようです。個人的には「生成AIはUIの革命」だと思ってまして、ここで修正できるのが筋が良い設計だよなぁと思います。まあ、いずれ近いうちに修正できるようになるんじゃないかと密かに期待しています。

さて、次の処理に進む前にSales Order Agentの各処理の階層を説明しておきます。
いま画面右側に表示されている「以下の値で見積もり作りました」は「タスク#0001:確認ステップ2/3」です。最初に表示されていた「ANTWERP Conference Tableの引合いメールを受信しました」はどこに行ったかというと、「←」ボタンを押すとわかります。

こういう画面になりました。階層としては「タスク」の下に「ステップ」があり、1つ目のステップで「引合メールを受信」、2つ目のステップで「見積を作成」、3つ目のステップでさらに次の処理を進める…というように、処理が進むごとにステップがどんどん追加されていくイメージです。画面表示としても、この画面でタスク全体のステップと進捗状況を確認し、個々のステップをクリックすると上の画面のようにステップの詳細が表示される、という構造になっています。
上の画面で2つ目のステップ「見積作成」でできた見積を確認したので次のステップに進みます。3つ目のステップはメールの返信です。「レビュー」をクリック。

レビューの前に、、メールボックスを確認します。レビューボタンを押した時点ではDraftボックスは空でした。レビュー完了したらメールアイテムが作成されるようです。

BCに戻ります。レビューボタンを押すと「Outgoing email」画面に遷移します。このスクショの画面、レビューボタンを押した状態から何にも操作していないのですが、見積の回答文面が日本語でできていて、見積書のファイル添付までされています。日本語も自然です。凄いですね。。(英語で来ている問い合わせメールだから英語で返事しろよ、というのはありますw 文末がBest regardってことは英語って認識してるやんw)
添付ファイルを見てみましょう。Show Attachmentをクリック。

Sales-Quote.pdf をクリック。

ちゃんとした見積書が表示されました。素晴らしい。(見積書機能自体は昔からBCに備わっているものなのでレイアウト的なものは特に驚くポイントではないですが、返信メールにちゃんと添付されているところは感心するポイントです。)
見積書右上にマウスを持っていくと「X」ボタンが表示されるので見積もりを閉じます。(「X」ボタンはスクショ取り忘れ。。)

メール文面を確認し、このまま送信して問題なければ「Confirm」をクリック。

するとメールが送信されました。添付ファイルもちゃんとついています。本当に正しい見積書が添付されているか見てみます。

問題ないですね。

こちらは見積依頼した側のOutlook.jpアカウントのメールボックスです。確かに届いています。

見積書も見ることができます。

いや、すごいですね。ここまでボタンをポチポチするだけで1文字も打っていないです。(脱線して登録したOpportunityは除く。)型にハマった場合はボタンポチポチだけで見積もり回答できるわけです。
そういえば、Opportunityはどうなったでしょうか? 先ほど登録したOpportunityカードを見てみます。BC標準機能ではOpportunityに紐づけて見積もり登録できるので、Sales Order Agentが紐づけてくれたかどうかをみてます。

残念ながら紐づいていませんでした。。まあ、そうでしょうね。Opportunityを手動で登録している時点でSales Order Agentの守備範囲外、ということなのだと思います。業務的にはOpportunityに引合への対応記録を残し、それ自体をSales Order Agentが手伝ってくれる・・・そんな形が美しいと思うので、Sales Order Agentが範囲を広げ、設定WizardにOpportunityの作成時に人間がレビューするかどうかのパラメータが追加される日が来るのかも知れません。ただ、BC画面の右側のCopilot領域で行っているSales Order Agentのタスク管理機能自体がOpportunityと機能重複しているので、Sales Order AgentとOpportunity機能はリンクはせずに棲み分けになるか、最悪Opportunity機能がアップデートされないレガシーな機能になっていく可能性もあると思います。

さて、これで見積もり完了!と言いたいところですが、顧客から質問が来ています。そういえば引合のメールで納期を聞かれていたのに納期回答が漏れていたので、追加質問が来ています。このように、Sales Order AgentがCopilotを使って作成した回答を100%信用するのではなく、ちゃんとレビューする必要がある、ということです。まあ、この程度であれば追加のメールのやり取りで答えても許される範囲ですし、最初のメールに書かれていない追加質問が来ることも実際にありますので、追加質問が来た場合のSales Order Agentの対応ぶりを見てみましょう。
顧客側(想定のOutlook.jpアカウント)から来ているメールの内容は「値段はOKだから発注を前向きに考えているけど、最速でいつ納入できる?」というものです。このメールをSales Order Agentがどう処理するかというと、、

ちゃんとメールを認識し、ステップが追加されています。概要の翻訳もバッチリです。「レビュー」をクリックします。

Incoming email画面が開きました。メールの内容を確認したら「Confirm」をクリック。ここでのConfirmは「メール見ました」という意味なので、返信メールが勝手に飛んだりすることはありません。(が、、知らないと返信メールが飛ぶんじゃないかとドキドキします。)

Incoming emailでConfirmするとOutgoing email画面が開き、Agentが作成した返信メールのドラフトを確認できます。「今日納入可能」と書いていますね。。これが朝イチで、顧客も近所であれば今日納入可能かもしれませんが、現実には無理な場合もあるので訂正が必要でしょう。
ちなみにAgentがCopilotを使って作成したメールのドラフトには “We write mails with AI. We review and send with care.” と書かれています。ちゃんとレビューしないといけないですね。

ということで、納期を適宜修正して「Confirm」をクリックします。Outgoing email画面でのConfirmはメールを送信する、という意味です。

メールが送られました。訂正した納期でメールが送られています。 “We write mails with AI. We review and send with care.” という文言も末尾に書かれています。

顧客側(想定のOutlook.jpアカウント)にメールが届きました。

c. 受注
顧客は納期回答に満足したので返事を返します。「発注するよ、よろしく」と書いて返信します。

顧客の発注意思表示を受けて、Sales Order Agentがどう処理するか見てみましょう。まずはメールを受信したというステップが追加されていることが確認できます。メールの中での発注意思も的確に認識しています。「レビュー」をクリック。

Incoming email画面に遷移します。顧客のメールの内容を確認して「Confirm」をクリック。

すると、ステップが2個追加され、一つ目のステップでは「Convert Quote to Sales Order」と表示されています。このステップをクリックします。

すると、Sales Order の画面に遷移します。このステップではAgentが見積を受注に変換して人間のレビュー待ち、ということが上部のメッセージから読み取れます。

内容を確認しました。特に問題はなく、変更するところもありません。レビュー待ちと言いつつ、このステップにはレビューボタンがないので、次のステップに進みます。

顧客からの発注意思表示メールを受信した時点で作られていた2つのステップの2つ目に遷移します。Outgoing email画面でAgentが作成したメールドラフトを確認します。問題なければ「Confirm」をクリック。

するとメールが送信されます。

顧客にメールが届いています。

添付されいているファイルは受注確認書です。

BC側のテナントのOutlookも一応確認しておきましょう。送信済ボックスにちゃんと履歴が残っています。

受注一覧画面(Sales Orders)を見てみましょう。見積から返還された受注が登録されていることがわかります。開いてみましょう。

担当者の名前がそのまま顧客として使われています。ちょっと失敗しました。。本来の業務プロセスとしては、引き合いメールを送ってきた担当者を「個人」として連絡先登録し、それとは別に「会社」としての連絡先を登録して「個人」の連絡先を紐づけるのですが、「会社」の登録をせずに進めたので「個人」で顧客登録されてしまっています。この辺、BtoCビジネスでは顧客=個人のケースがあるのでシステム的には制約がかからないのですが、いったん顧客登録してしまうと訂正が大変なのでBtoCでは何等か制約をかけたいところです。(もしかすると既存のBC標準機能で制限できるかもしれないけど、パッと思いつかない。。)

3. まとめ
Sales Order Agent機能を使うと、型にハマれば「ほぼ」Agentが自動で処理してくれて、人間はレビューをしてConfrimボタンを押してOKを出すだけで、引合~受注までを処理してくれることが分かったと思います。
既存顧客から不定期だが繰り返し発注があり、単価も事前に合意しているような得意先に販売するビジネスでは絶大な威力を発揮すると思います。個人的には、過去に総務や社内ITで発注担当をした経験からすると事務用品とかオフィスサプライとかがフィットすると思います。他にはライセンス販売とかも行けそうです。
見積を自動で作ってくれたり、受注に変換してくれたりする部分も効率化につながりますが、メールボックスを監視して、要処理対象を拾ってくるという「タスク管理」機能もありがたいです。顧客からのメールを見落として、機会損失とかクレーム対応に追われるみたいなものが減ると思います。ただし、Agentが何をキーに「同一のタスク」とみなしているかは気になります。未検証ですが、何となくメールの件名かな・・・という気がしていて、たまにメールの件名を微妙に変えてくる(件名末尾に進捗文言つけ来る)お客さんとか、逆に過去の発注メールを使いまわして新しい発注依頼をかけてくるお客さんとかいるんですよね。その辺をAgentが検知/判断するのは厳しいにしても、人間のレビューで新規タスクに分割できるようにするとかできたらありがたい気がします。
まあ、Sales Order Agent機能はまだプレビュー段階ですし、購買とか他のAgentも今後いろいろ出てくる予定なので、まだまだこれからという気がします。今後が非常に楽しみです!