Teams Phone AgentのAI免責メッセージ設定方法|PowerShell例とCustom指定時の注意点

Teams Phone Agentで通話者にAI利用を知らせるには、Teams PowerShellのNew-CsAutoAttendantCallFlowで-AiDisclaimerTypeを設定します。独自の日本語メッセージを使う場合は、-AiDisclaimerType Customと-AiDisclaimerCustomTextを必ずセットで指定してください。

2026年7月時点で、これらのパラメーターはVoice Applicationsプライベートプレビュー参加テナント向けです。Microsoft Learnでは一般提供時期は未定とされているため、通常テナントではパラメーターが表示されても利用できない、またはパラメーター自体が存在しない可能性があります。(Microsoft Learn)

目次

Teams Phone AgentのAI免責メッセージとは

AI免責メッセージは、Teams Phone Agentとの通話開始時に、応対主体がAIであることを通話者へ知らせるための音声メッセージです。

「免責」という名称ですが、設定しただけで法令や社内規程への適合が保証されるものではありません。実務上は、AI利用を透明性のある形で告知するための機能と考えると分かりやすいでしょう。

設定に使用するパラメーターは次の2つです。

パラメーター指定内容省略時の扱い
-AiDisclaimerTypeDefaultまたはCustom既定値はDefault
-AiDisclaimerCustomText通話者に読み上げる独自メッセージCustom指定時は必須

Microsoft Learnに掲載されている既定メッセージは、次の英語文です。

I'm a virtual assistant. How can I help you today.

独自のメッセージを利用する場合は、-AiDisclaimerType Customを指定し、同時に-AiDisclaimerCustomTextへ読み上げるテキストを渡します。(Microsoft Learn)

MandatoryがFalseでもCustomTextは省略できない

PowerShellリファレンスの一般的なパラメーター表では、AiDisclaimerCustomTextがMandatory: Falseと表示される場合があります。

これは、すべての実行で必須という意味ではないためです。AiDisclaimerTypeがDefaultなら不要ですが、Customにした場合は条件付きで必須になります。MicrosoftDocsのソース変更でも、AiDisclaimerTypeがCustomの場合はAiDisclaimerCustomTextが必須であることが明記されています。(GitHub)

したがって、次のような指定は避けてください。

# 不完全な指定
New-CsAutoAttendantCallFlow `
    -Name "AI受付メインフロー" `
    -Menu $menu `
    -AiDisclaimerType Custom

正しくは、次のようにカスタムテキストも指定します。

New-CsAutoAttendantCallFlow `
    -Name "AI受付メインフロー" `
    -Menu $menu `
    -AiDisclaimerType Custom `
    -AiDisclaimerCustomText "この電話はAI音声アシスタントが対応します。ご用件をお話しください。"

設定前に確認すること

Teams Phone AgentのAI免責メッセージを変更する前に、次の条件を確認します。

Voice Applicationsプライベートプレビューに参加しているか

AiDisclaimerTypeとAiDisclaimerCustomTextは、Voice Applicationsプライベートプレビュー参加者向けのパラメーターです。

Teams PowerShellモジュールを最新版にしただけでは、テナント側のプレビュー利用資格は付与されません。次の2つは別々に確認する必要があります。

  • ローカルのTeams PowerShellモジュールがパラメーターに対応している
  • Microsoft 365テナントが対象プレビューへ登録されている

コマンドが認識されても、テナント側で機能が有効化されていなければ、設定の保存や実際の通話で利用できない可能性があります。

必要な管理者ロールがあるか

音声アプリケーションを管理する担当者には、通常、次のいずれかの管理者ロールが必要です。

  • Teams管理者
  • Teams通信管理者
  • Teams電話管理者

Microsoftは、グローバル管理者を常用するのではなく、業務に必要な最小権限のロールを利用することを推奨しています。(Microsoft Learn)

Teams PowerShellモジュールが対応しているか

Microsoft Teams PowerShellモジュールが未導入の場合は、PowerShell Galleryからインストールします。

Install-Module -Name MicrosoftTeams -Force -AllowClobber

すでに導入している場合は、現在のバージョンを確認します。

Get-InstalledModule MicrosoftTeams -AllVersions

通常の方法でインストールしている環境では、次のコマンドで更新できます。

Update-Module MicrosoftTeams

Teams PowerShellモジュールを現在のセッションに読み込んでいると更新に失敗するため、その場合はPowerShellを閉じ、新しい管理者セッションで更新してください。プライベートプレビューで専用バージョンを案内されている場合は、最新版へ無条件に更新せず、プレビュー参加時の手順を優先します。(Microsoft Learn)

パラメーターの存在をコマンドで確認する

モジュールを更新したら、次のコマンドでAI免責メッセージ用パラメーターが公開されているか確認します。

(Get-Command New-CsAutoAttendantCallFlow).Parameters.Keys |
    Where-Object { $_ -like "AiDisclaimer*" }

次の2つが表示されれば、ローカルモジュール側は対応しています。

AiDisclaimerType
AiDisclaimerCustomText

より確実に確認する場合は、構文全体を表示します。

Get-Command New-CsAutoAttendantCallFlow -Syntax

パラメーターが表示されない場合、存在しないパラメーターをAdd-Memberなどで無理に追加してはいけません。対応モジュールまたはプレビュー提供パッケージを確認してください。

Teams Phone AgentのAI免責メッセージをカスタマイズする方法

Microsoft Teamsへ接続する

Teams PowerShellを読み込み、管理者アカウントで接続します。

Import-Module MicrosoftTeams
Connect-MicrosoftTeams

特定のテナントへ接続する必要がある場合は、テナントIDを指定します。

Connect-MicrosoftTeams -TenantId "00000000-0000-0000-0000-000000000000"

Connect-MicrosoftTeamsは、MicrosoftTeamsモジュールの各コマンドを実行するための認証済みセッションを作成します。(Microsoft Learn)

新しいコールフローでカスタムメッセージを設定する

New-CsAutoAttendantCallFlowでは、NameとMenuが必須です。次の例は、$menuに既存または作成済みのメニューオブジェクトが格納されていることを前提としています。(Microsoft Learn)

$AiDisclaimerType = "Custom"
$AiDisclaimerCustomText = @"
この電話はAI音声アシスタントが対応します。
ご用件をお話しください。
"@.Trim()

if (
    $AiDisclaimerType -eq "Custom" -and
    [string]::IsNullOrWhiteSpace($AiDisclaimerCustomText)
) {
    throw "AiDisclaimerTypeがCustomの場合、AiDisclaimerCustomTextは必須です。"
}

$callFlow = New-CsAutoAttendantCallFlow `
    -Name "AI受付メインフロー" `
    -Menu $menu `
    -AiDisclaimerType $AiDisclaimerType `
    -AiDisclaimerCustomText $AiDisclaimerCustomText

作成した$callFlowは、New-CsAutoAttendantで新しい自動応答を作成するときに渡すか、既存の自動応答オブジェクトへ設定してSet-CsAutoAttendantで保存します。

既存の既定コールフローを変更する

既存の自動応答を変更する場合は、まずGet-CsAutoAttendantで対象を取得します。

次のスクリプトは、既定コールフローであるDefaultCallFlowのAI免責メッセージを変更する例です。

$ErrorActionPreference = "Stop"

$AutoAttendantId = "00000000-0000-0000-0000-000000000000"
$DisclaimerText = "この電話はAI音声アシスタントが対応します。ご用件をお話しください。"

if ([string]::IsNullOrWhiteSpace($DisclaimerText)) {
    throw "AI免責メッセージが空です。"
}

# ローカルモジュールのパラメーター対応状況を確認
$command = Get-Command New-CsAutoAttendantCallFlow -ErrorAction Stop
$requiredParameters = @(
    "AiDisclaimerType",
    "AiDisclaimerCustomText"
)

$missingParameters = $requiredParameters | Where-Object {
    -not $command.Parameters.ContainsKey($_)
}

if ($missingParameters) {
    throw "必要なパラメーターがありません: $($missingParameters -join ', ')"
}

# 対象の自動応答を取得
$autoAttendant = Get-CsAutoAttendant -Identity $AutoAttendantId
$targetFlow = $autoAttendant.DefaultCallFlow

if ($null -eq $targetFlow) {
    throw "既定コールフローを取得できませんでした。"
}

# 取得したオブジェクトにプレビュー用プロパティがあるか確認
$propertyNames = $targetFlow.PSObject.Properties.Name

if (
    "AiDisclaimerType" -notin $propertyNames -or
    "AiDisclaimerCustomText" -notin $propertyNames
) {
    throw "コールフローオブジェクトにAI免責メッセージ用プロパティがありません。"
}

# 変更前の値を画面に保存
$before = [pscustomobject]@{
    FlowName = $targetFlow.Name
    Type     = $targetFlow.AiDisclaimerType
    Text     = $targetFlow.AiDisclaimerCustomText
}

$before | Format-List

# カスタムメッセージを設定
$targetFlow.AiDisclaimerType = "Custom"
$targetFlow.AiDisclaimerCustomText = $DisclaimerText

# 自動応答全体を保存
Set-CsAutoAttendant -Instance $autoAttendant

Set-CsAutoAttendantは、Get-CsAutoAttendantで取得した自動応答オブジェクトのプロパティを変更し、-Instanceで保存する方式です。Microsoft Learnの例でも、取得したコールフローの挨拶を直接変更してから、自動応答全体を保存しています。(Microsoft Learn)

営業時間外や休日のコールフローを変更する

自動応答には、既定コールフロー以外に営業時間外や休日用のコールフローが含まれる場合があります。

まず、対象の構成を確認します。

$autoAttendant = Get-CsAutoAttendant -Identity $AutoAttendantId

$autoAttendant.DefaultCallFlow |
    Select-Object Id, Name

$autoAttendant.CallFlows |
    Select-Object Id, Name

営業時間外フローを名前で選ぶ例は次のとおりです。

$targetFlow = $autoAttendant.CallFlows |
    Where-Object { $_.Name -eq "営業時間外" }

if ($null -eq $targetFlow) {
    throw "指定したコールフローが見つかりません。"
}

$targetFlow.AiDisclaimerType = "Custom"
$targetFlow.AiDisclaimerCustomText =
    "この電話はAI音声アシスタントが対応します。営業時間外のため、ご用件を承ります。"

Set-CsAutoAttendant -Instance $autoAttendant

AI免責メッセージはコールフロー単位の設定です。そのため、既定フローだけを変更しても、休日や営業時間外のフローには反映されない可能性があります。通話がどのスケジュール、コールフロー、入電経路を通るのかを確認してから設定してください。Get-CsAutoAttendantの取得結果には、DefaultCallFlow、CallFlows、CallHandlingAssociationsが含まれます。(Microsoft Learn)

コールフローを作り直す場合の注意点

既存オブジェクトを直接変更できず、New-CsAutoAttendantCallFlowでコールフローを作り直す場合は、次の設定を引き継ぐ必要があります。

  • メニュー
  • 挨拶
  • 強制メニュー聴取
  • リソースアカウント委任
  • タイムアウト設定
  • AI免責メッセージ
  • 営業時間外・休日スケジュールとの関連付け

休日や営業時間外の構成では、CallHandlingAssociationsがコールフローのIDを参照しています。新しいコールフローへ置き換える場合は、関連付け先のCallFlowIdも確認してください。新しいオブジェクトだけを追加すると、古いフローが残ったり、スケジュールが意図しないフローを参照したりするおそれがあります。(Microsoft Learn)

設定結果を確認する方法

設定後は、PowerShell上の確認と実際の通話テストを両方行います。

PowerShellで再取得する

保存後の構成を再取得し、サービス側に反映された値を確認します。

$verified = Get-CsAutoAttendant -Identity $AutoAttendantId

$verified.DefaultCallFlow |
    Select-Object Name, AiDisclaimerType, AiDisclaimerCustomText

想定する結果は次のとおりです。

Name                   AiDisclaimerType AiDisclaimerCustomText
----                   ---------------- ----------------------
AI受付メインフロー     Custom           この電話はAI音声アシスタントが対応します。...

営業時間外や休日用のフローも設定した場合は、まとめて確認します。

$verified.CallFlows |
    Select-Object Name, AiDisclaimerType, AiDisclaimerCustomText

実際の電話番号から発信する

PowerShellで値が確認できても、最終判断は実際の通話で行います。

最低限、次の入電パターンを試してください。

  • 通常営業時間内
  • 営業時間外
  • 休日スケジュール
  • 別の自動応答からネストされた経路
  • 外線電話番号からの直接着信
  • 担当者や別キューへ転送される経路

特にネストされた構成では、想定していたTeams Phone Agentではなく、手前の自動応答のコールフローが再生されることがあります。

AI免責メッセージの文例

最小限のAI利用告知

この電話はAI音声アシスタントが対応します。ご用件をお話しください。

短く、AIが応対していることを最初に伝えられる文面です。

担当者への切り替えがある場合

この電話はAI音声アシスタントが対応します。
担当者との通話をご希望の場合は「担当者」とお話しください。

この文面は、実際に担当者への転送経路が用意されている場合に限って使用します。

録音や分析を行う場合

この電話はAI音声アシスタントが対応します。
通話内容の取り扱いについては、当社の案内に基づいて処理されます。

録音、保存期間、AI学習への利用、第三者提供などを案内する場合は、実際の処理内容と一致させる必要があります。具体的な録音告知や個人情報の取り扱いは、法務、コンプライアンス、個人情報保護担当者の承認を得てください。

コンプライアンス担当者が確認すべきポイント

確認項目判断基準
AIであることの明示最初の一文でAI音声アシスタントだと分かる
実際の運用との一致録音、保存、転送など、実装していない機能を案内しない
担当者への切り替え切り替えを案内するなら、実際に利用できる経路を用意する
個人情報の入力AIに入力させる情報の範囲を事前に決める
文面の長さ長い規約を読み上げず、必要事項を短く伝える
言語と発音日本語、会社名、製品名、略語、数字を実際の電話で確認する
変更履歴承認者、文面、適用日、対象コールフローを記録する

特に避けるべきなのは、「録音していません」「データは保存されません」「必ず担当者へ転送できます」といった、システム構成を確認しなければ断言できない文面です。

よくあるエラーと対処方法

AiDisclaimerTypeというパラメーターが見つからない

次のようなエラーが出る場合は、ローカルのMicrosoftTeamsモジュールが対応していない可能性があります。

A parameter cannot be found that matches parameter name 'AiDisclaimerType'.

次の順番で確認します。

Get-InstalledModule MicrosoftTeams -AllVersions

Get-Command New-CsAutoAttendantCallFlow -Syntax

(Get-Command New-CsAutoAttendantCallFlow).Parameters.Keys |
    Where-Object { $_ -like "AiDisclaimer*" }

通常版の最新版でも表示されない場合は、Voice Applicationsプライベートプレビュー向けモジュールや利用手順が別途指定されていないか確認してください。

Customを指定したのに保存できない

次の点を確認します。

  • -AiDisclaimerCustomTextを同時に指定しているか
  • 変数が$nullや空文字になっていないか
  • 空白だけの文字列になっていないか
  • テナントがプライベートプレビュー対象か
  • 対象がTeams Phone Agentのコールフローか

スクリプト内で事前チェックすると、設定漏れを防止できます。

if (
    $AiDisclaimerType -eq "Custom" -and
    [string]::IsNullOrWhiteSpace($AiDisclaimerCustomText)
) {
    throw "Custom指定時はAiDisclaimerCustomTextが必要です。"
}

カスタム文面ではなく既定メッセージが流れる

主な原因は次のとおりです。

  • AiDisclaimerTypeがDefaultのまま
  • 別のコールフローへ電話が入っている
  • 営業時間外または休日フローを変更していない
  • 別の自動応答やリソースアカウントへ着信している
  • 保存後の構成を再取得して確認していない

自動応答名だけで判断せず、コールフローのIDと名前を確認してください。

メッセージが再生されない

AiDisclaimerTypeとAiDisclaimerCustomTextはTeams Phone Agent向けの設定です。通常のAuto Attendantにパラメーターを設定しても、Teams Phone Agentとして有効化されていなければ期待した動作になりません。公式リファレンスでも、両パラメーターはTeams Phone Agent専用とされています。(Microsoft Learn)

プレビューが利用できない期間に通常の挨拶文でAI利用を告知する方法もありますが、Greetingsによる読み上げはAI免責メッセージ機能そのものではありません。再生順序や対象フローが異なるため、暫定対応として利用する場合も通話テストが必要です。

Teams管理センターで編集した後が不安

Microsoft Learnの現行Auto Attendant手順では、Teams管理センターがPowerShell専用構成を上書きしないよう変更されたと案内されています。ただし、プライベートプレビューの仕様は変更される可能性があるため、Teams管理センターで構成を編集した後はPowerShellで再取得し、AI免責メッセージが保持されていることを確認してください。(Microsoft Learn)

既定メッセージへ戻す方法

カスタム文面をやめる場合は、AiDisclaimerTypeをDefaultへ戻します。

$AutoAttendantId = "00000000-0000-0000-0000-000000000000"

$autoAttendant = Get-CsAutoAttendant -Identity $AutoAttendantId

$autoAttendant.DefaultCallFlow.AiDisclaimerType = "Default"
$autoAttendant.DefaultCallFlow.AiDisclaimerCustomText = $null

Set-CsAutoAttendant -Instance $autoAttendant

変更後は再取得して確認します。

$verified = Get-CsAutoAttendant -Identity $AutoAttendantId

$verified.DefaultCallFlow |
    Select-Object Name, AiDisclaimerType, AiDisclaimerCustomText

Defaultへ戻すときは、以前のカスタム文面を設定オブジェクトに残さない運用にすると、後から構成を確認した際の混乱を防げます。

設定作業の最終チェック

Teams Phone AgentのAI免責メッセージを設定するときは、次の順番で進めると安全です。

  1. Voice Applicationsプライベートプレビューの対象テナントか確認する
  2. Teams PowerShellモジュールに対象パラメーターがあるか確認する
  3. コンプライアンス担当者がカスタム文面を承認する
  4. 変更対象が既定、営業時間外、休日のどのコールフローか特定する
  5. CustomとAiDisclaimerCustomTextをセットで設定する
  6. Set-CsAutoAttendantで保存する
  7. Get-CsAutoAttendantで再取得する
  8. 実際の外線電話から全経路をテストする
  9. 文面、承認者、設定日、対象フローを変更記録へ残す

最も重要なのは、AiDisclaimerTypeをCustomにしたとき、AiDisclaimerCustomTextを省略しないことです。あわせて、PowerShellで値が保存されたことだけで完了とせず、通常営業時間、営業時間外、休日、ネストされた通話経路ごとに実際の音声を確認してください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次