メインコンテンツにスキップ

Fin VoiceをAmazon Connectと通話転送で統合する方法

PSTN通話転送を使ってFin VoiceをAmazon Connectに接続し、AIで顧客の質問に即座に対応する方法を学びましょう。

対応者:Dawn Perrott

注意:Fin Voiceは現在、当社の営業チームと提携している特定の顧客に限定されています。米国、EU、オーストラリアでホストされているワークスペースでサポートされています。料金について詳しく知りたい場合は、担当アカウントマネージャーにお問い合わせください。Fin Voiceをより広く提供できるよう努めています。

このガイドは、Fin VoiceをAmazonアカウントに接続する方法を説明します。これらの手順に従うことで、Help Centerのコンテンツを使って顧客の電話に即座に対応し、複雑な問題はAI生成の要約と文字起こしとともに人間のチームにスムーズに引き継ぐことができます。

プロのヒント:この統合はIntercom APIを使用しています。Amazon Connect Flow Designerでのスクリプト設定には、技術担当者や開発者の支援をお勧めします。


統合の仕組み

この統合はPublic Switched Telephone Network (PSTN)転送を使用して、AmazonとIntercom間の通話をルーティングします。

  1. Amazon → Fin Voice: Amazonは着信通話をIntercomで購入した専用のFin Voice番号に転送します。

  2. Fin Voice解決: FinはHelp Centerを使って即座に問題を解決します。

  3. Fin Voice → Amazon: Finが通話を解決できない場合、発信者を専用のAmazonエスカレーション番号に転送します。

  4. コンテキスト転送: Amazon ConnectはFin Voice APIを使って、チームメンバーのために通話の要約と文字起こしを取得します。

重要: この統合はAmazon Connect、Lambda、Fin Voiceが特定の順序で接続されている場合にのみ機能します。この順序から外れると無音で通話が切断されます。

  • 転送前にLambdaを実行する必要があります:転送ブロックの前にLambdaでインテントを登録する必要があります。

  • 遅延が必要です:転送ブロックの直前に短い遅延(プロンプト再生)が必要です。

  • 経路は一つだけ:転送ブロックへの成功経路は正確に一つでなければなりません。

  • 発信者ID:有効なE.164電話番号でなければなりません。手動と動的な発信者ID設定を混在させてはいけません。


開始前に

以下の要件を満たしていることを確認してください。

要件

説明

Fin Voice

Fin Voiceが有効で、米国、EU、またはAU地域でホストされていること。

管理者アクセス

ルーティングとAPIトークンの管理のために、IntercomとAmazonの両方で必要です。

Knowledge Base

Finが参照するための最新のHelp Centerコンテンツ。

Intercomアクセス トークン

Lambda関数スクリプトの認証に有効なアクセス トークン(APIキー)が必要です。

AWS環境

Lambda関数とコンタクトフローを作成する権限を持つアクティブなAmazon Connectインスタンス。


1. Fin Voiceをテストする

本番稼働前に、プレビューパネルを使ってブラウザで通話をシミュレートしてください。

  1. Fin AI Agent > Deploy > Voiceに移動します。

  2. 右側のプレビューパネルでStart callをクリックし、話し始めてFinの応答を聞きます。

  3. プレビューパネルのヘッダーにある•••をクリックし、Settingsを選択して言語、アクセント、性別を変更したり、挨拶やエスカレーションルールをプレビューしたりできます。


2. Fin Voice回線を作成する

テストから本番回線に移行するには、Intercom内で専用番号を購入する必要があります。

  1. + New lineをクリックします。

  2. External Providerを選択し、Nextをクリックします。

  3. 回線名を入力し、From a phone number (PSTN)を選択して、Nextをクリックします。

  4. Purchaseをクリックして米国のローカル番号を取得します。


3. 録音と動作を設定する

コンテキストツールを有効にする

AI通話中に何が起きたかをチームメンバーが確認できるように、グローバル設定を有効にします。

  1. 録音を有効にする、文字起こし、および通話文字起こしの要約をオンにします。

  2. Fin AI Agent > Deploy > Voice > Set Fin liveセクションに戻り、ここからFinの動作を調整できます。

  • 営業時間: Finが応答する時間を定義します(デフォルトは24時間365日)。

  • 言語、アクセント、性別: Finが使用する言語、アクセント、性別を選択します。

  • サポートコンテンツ: Finが参照すべきHelp Centerの記事を選択してください。

  • CSAT: 解決済みの通話に対してキーパッド評価(1~5)を有効にします。


4. Lambda関数を作成する

AWSでLambda関数を作成し、Fin Voiceに通話を登録する必要があります。この関数は転送に必要なfin_intent_idを返します。

  1. AWSコンソールでLambdaに移動し、Create functionをクリックします。

  2. Author from scratchを選択します。

  3. 関数名を入力します(例:intent_to_use_fin)。

  4. RuntimeでNode.js 18.x(またはそれ以上)を選択します。

  5. Configuration > Environment variablesで新しい変数を追加します。

    • キー: INTERCOM_TOKEN

    • 値: 実際のIntercom Access Tokenを入力してください。

  6. Codeの下に以下のスクリプトを貼り付けます。これは通話の詳細をIntercomのAPIに送信し、転送に必要なfin_intent_idを返します。


export const handler = async (event) => {
const contactId = event?.Details?.ContactData?.ContactId;
const phoneNumber = event?.Details?.ContactData?.CustomerEndpoint?.Address;

if (!contactId || !phoneNumber) {
throw new Error("Missing contactId or phoneNumber");
}

const token = process.env.INTERCOM_TOKEN;
if (!token) throw new Error("Missing INTERCOM_TOKEN");

const response = await fetch("https://api.intercom.io/fin_voice/register", {
method: "POST",
headers: {
Authorization: `Bearer ${token}`,
"Intercom-Version": "Unstable",
"Content-Type": "application/json",
},
body: JSON.stringify({
call_id: contactId,
phone_number: phoneNumber,
}),
});

const text = await response.text();
if (!response.ok) {
throw new Error(`Intercom ${response.status}: ${text}`);
}

const data = JSON.parse(text);

return {
fin_intent_id: String(data.id),
customer_phone: phoneNumber,
};
};

ヒント: 次のステップでLambda呼び出しが無言で失敗する場合は、AWSコンソールのAmazon ConnectインスタンスにLambda関数を追加しているか確認してください(Amazon Connect > Instances > [Your Instance] > Contact Flows > AWS Lambda)。


5. Amazon Connectフローを設定する

Lambda関数が準備できたら、Amazon Connectフローに追加してハンドオフを処理します。通話失敗を避けるために、コンタクトフローを特定の順序で配線する必要があります。

標準的なフロー

フローは以下の正確な順序に従う必要があります。

  1. エントリー

  2. 挨拶を再生

  3. AWS Lambda関数を呼び出す(同期)

  4. プロンプトを再生(短い遅延)

  5. 電話番号に転送

  6. フローを終了

ステップバイステップの設定

  1. Invoke AWS Lambda functionブロックを追加

    • Function ARN: ステップ4で作成したLambda関数を選択します。

    • タイムアウト: 8秒に設定します。

    • レスポンス検証: String Mapを選択します。

  2. Play promptブロックを追加(必須の遅延) Fin Voiceは早すぎるDTMF信号を無視します。転送直前に遅延を追加する必要があります。

    • Play promptブロックを追加します。

    • Text-to-speechを選択し、「少々お待ちください。」などの短いフレーズを入力します。

  3. 電話番号に転送ブロックを追加 このブロックは通話をFinに引き継ぎます。

    • 転送先: 手動で設定を選択します。

    • 国コード: 国を選択します(例:United States +1)。

    • 電話番号: ステップ2で購入した専用のFin Voice番号を入力します。

    • 切断後にフローを再開: いいえに設定します。

    • DTMFを送信: このボックスにチェックを入れます。

      • 動的に設定を選択します。

      • Namespace: External

      • キー: fin_intent_id

    • 発信者ID番号: 手動で設定を選択し、Connectインスタンスの認証済み番号を選びます。

重要: 発信者IDに手動番号を選択した場合は「動的に設定」を使用しないでください。これらを混在させると転送が失敗します。


6. Fin後のルーティングを処理する

Finが通話をAmazon Connectに戻す場合(例:人間のエージェント用)、会話の詳細を取得するために2つ目のLambda関数を使用できます。

  1. 以下のコードを使って新しいLambda関数を作成します。

  2. 電話番号に転送ブロックの後(「再開」機能を有効にした場合は「成功」ブランチ)に追加します。


export const handler = async (event) => {
const phoneNumber = event?.Details?.ContactData?.CustomerEndpoint?.Address;

const response = await fetch(
`https://api.intercom.io/fin_voice/phone_number/${phoneNumber}`,
{
method: "GET",
headers: {
Authorization: `Bearer ${process.env.INTERCOM_TOKEN}`,
"Intercom-Version": "Unstable",
Accept: "application/json",
},
}
);

if (!response.ok) {
throw new Error("Failed to retrieve Fin Voice call state");
}

const data = await response.json();
return {
status: data.status,
intercom_conversation_id: data.intercom_conversation_id,
call_summary: data.call_summary,
};
};


7. Connect UIに会話の要約を追加する

チームメンバーが通話を受ける際にAI生成の要約を確認できるよう、Amazon Connectでビューを設定する必要があります。

ビューを作成する

  1. Amazon ConnectのViewsインターフェースに移動し、Create Viewをクリックします。

  2. Attribute Bar コンポーネントを検索して選択します。

  3. 属性バーのプロパティを設定します:

    • ラベル:「Conversation Summary」に設定します。

    • 値:$.conversation_summaryに設定します。

ビューのフローを作成します

  1. このビューを顧客またはチームメイトに表示するための新しいフローを作成します。

  2. フローにShow Viewブロックを追加します。

  3. Viewプロパティを前のステップで作成したビューに設定します。

  4. Timeoutを手動設定にし、5分(または希望の時間)を入力します。

  5. conversation_summaryの下で、動的に設定を選択します:

    • Namespace: External

    • Key: conversation_summary

フローをエージェントに接続します

  1. 元のIVRフロー(転送を設定した場所)に戻ります。

  2. Transfer to queueブロック(通話がチームメイトにルーティングされる場所)の前に、Set event flowブロックを追加します。

  3. ブロックの設定を構成します:

    • イベントを選択:Agent UIのデフォルトフロー。

    • フローを選択:先ほど作成した「Show View」フローを選択します。

  4. このブロックをTransfer to queueブロックに接続します。

この設定により、通話が転送されると、チームメイトはFinからのデータで埋められた「Conversation Summary」バーを表示できます。

こちらの回答で解決しましたか?