このガイドでは、電話サポート用のIntercomのAIエージェントであるFin VoiceをAmazonアカウントに接続する方法を説明します。これらの手順に従うことで、Help Centerのコンテンツを使って顧客の電話に即座に対応し、複雑な問題はAI生成の要約と書き起こしとともに人間のチームにスムーズに引き継ぐことができます。
プロのヒント:この統合はIntercom APIを使用しています。Amazon Connect Flow Designerでのスクリプト設定には技術担当者や開発者の支援を推奨します。
統合の仕組み
この統合は公衆交換電話網(PSTN)の転送を使ってAmazonとIntercom間の通話をルーティングします:
Amazon → Fin Voice: Amazonは着信通話をIntercomで購入した専用のFin Voice番号に転送します。
Fin Voiceの解決: FinはHelp Centerを使って即座に問題を解決します。
Fin Voice → Amazon: Finが通話を解決できない場合、専用のAmazonエスカレーション番号に発信者を転送します。
コンテキスト転送: Amazon ConnectはFin Voice APIを使って通話の要約と書き起こしをチームメンバーに取得します。
重要: この統合はAmazon Connect、Lambda、Fin Voiceが特定の順序で接続されている場合にのみ機能します。この順序から外れると無音で通話が切断されます。
転送前にLambdaを実行する必要があります: 転送ブロックの前にLambdaでインテントを登録しなければなりません。
遅延が必要です: 転送ブロックの直前に短い遅延(プロンプト再生)を設ける必要があります。
経路は一つだけ: 転送ブロックには成功経路が正確に一つ存在しなければなりません。
発信者ID: 有効なE.164電話番号でなければなりません。手動と動的な発信者ID設定を混在させてはいけません。
開始前に
以下の要件を満たしていることを確認してください:
要件 | 説明 |
Fin Voice | Fin Voiceは米国、EU、またはAUリージョンで有効かつホストされていること。 |
管理者アクセス | IntercomとAmazonの両方でルーティングとAPIトークンの管理に必要です。 |
Knowledge Base | Finが参照するための最新のHelp Centerコンテンツ。 |
Intercomアクセス トークン | Lambda関数スクリプトの認証に有効なアクセストークン(APIキー)が必要です。 |
AWS環境 | Lambda関数とコンタクトフローを作成する権限を持つアクティブなAmazon Connectインスタンス。 |
1. Fin Voiceのテスト
本番稼働前に、Voice Testingタブでブラウザ上で通話をシミュレートしてください。
再生をクリックして話し始めると、Finの応答が聞けます。
設定(右上)で声を切り替えたり、挨拶やエスカレーションルールのプレビューができます。
2. Fin Voice回線の作成
テストから本番回線に移行するには、Intercom内で専用番号を購入する必要があります。
+新しい回線をクリックします。
外部プロバイダーを選択し、次へをクリックします。
回線名を入力し、電話番号から(PSTN)を選択して、次へをクリックします。
米国のローカル番号を取得するには、購入をクリックします。
3. 録音と動作の設定
コンテキストツールを有効にする
AI部分の通話中に何が起きたかをチームメンバーが確認できるように、グローバル設定を有効にします:
録音を有効にする、書き起こし、通話書き起こしの要約をオンにします。
Fin AI Agent > Deploy > Phone > Set Fin liveセクションに戻り、ここからFinの動作を調整できます:
営業時間: Finが応答する時間を定義します(デフォルトは24時間365日)。
音声と言語: ブランドに合った声を選択します。
サポートコンテンツ: Finが参照するHelp Centerの記事を選択します。
CSAT:解決済みの通話に対してキーパッド評価(1~5)を有効にします。
4. Lambda関数を作成する
AWSでLambda関数を作成し、Fin Voiceに通話を登録する必要があります。この関数は転送に必要なfin_intent_idを返します。
AWSコンソールでLambdaに移動し、Create functionをクリックします。
Author from scratchを選択します。
関数名を入力します(例:
intent_to_use_fin)。RuntimeではNode.js 18.x(またはそれ以上)を選択します。
Configuration > Environment variablesで新しい変数を追加します:
Key:
INTERCOM_TOKENValue: 実際のIntercom Access Tokenを入力してください。
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,
};
};
Tip: 次のステップでLambda呼び出しが無言で失敗する場合は、AWSコンソールのAmazon ConnectインスタンスにLambda関数を追加しているか確認してください(Amazon Connect > Instances > [Your Instance] > Contact Flows > AWS Lambda)。
5. Amazon Connectフローを設定する
Lambda関数が準備できたら、Amazon Connectフローに追加してハンドオフを処理する必要があります。通話失敗を避けるために、コンタクトフローを特定の順序で配線する必要があります。
標準的なフロー
フローは以下の正確な順序に従う必要があります:
Entry
Play greeting
Invoke AWS Lambda function(同期)
Play prompt(短い遅延)
Transfer to phone number
End flow
ステップバイステップの設定
Invoke AWS Lambda functionブロックを追加
Play promptブロックを追加(必須の遅延) Fin Voiceは早すぎるDTMF信号を無視します。転送直前に遅延を追加する必要があります。
Play promptブロックを追加します。
Text-to-speechを選択し、「少々お待ちください。」のような短いフレーズを入力します。
Transfer to phone numberブロックを追加 このブロックは通話をFinに引き継ぎます。
Transfer to: Set manuallyを選択します。
Country code: 国を選択します(例:United States +1)。
Phone number: ステップ2で購入した専用のFin Voice番号を入力します。
Resume flow after disconnect: Noに設定します。
Send DTMF: このボックスにチェックを入れます。
Set dynamicallyを選択します。
Namespace:
ExternalKey:
fin_intent_id
Caller ID number: Set manuallyを選択し、Connectインスタンスで検証済みの番号を選びます。
Important: 手動番号を選択している場合は、Caller IDに「Set dynamically」を使用しないでください。これらの方法を混在させると転送が失敗します。
6. Fin後のルーティングを処理する
Finが通話をAmazon Connectに戻す場合(例:人間のエージェント用)、2つ目のLambda関数を使って会話の詳細を取得できます。
以下のコードを使って新しいLambda関数を作成します。
Transfer to phone numberブロックの後(「Resume flow」を有効にした場合は「Success」ブランチ)に追加します。
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でビューを設定する必要があります。
ビューを作成する
Amazon ConnectのViewsインターフェースに移動し、Create Viewをクリックします。
Attribute Barコンポーネントを検索して選択します。
属性バーのプロパティを設定します:
ラベル: 「Conversation Summary」に設定します。
値:
$.conversation_summaryに設定します。
ビューのフローを作成します
このビューを顧客またはチームメイトに表示する新しいFlowを作成します。
フローにShow Viewブロックを追加します。
Viewプロパティを前のステップで作成したビューに設定します。
Timeoutを手動設定にし、5分(または希望の時間)を入力します。
conversation_summaryの下で、動的に設定を選択します。
Namespace: External
キー:
conversation_summary
フローをエージェントに接続します。
元のIVRフロー(転送を設定した場所)に戻ります。
Transfer to queueブロック(通話がチームメイトにルーティングされる場所)の前に、Set event flowブロックを追加します。
ブロックの設定を構成します。
イベントを選択: Agent UIのデフォルトフロー。
フローを選択: 先ほど作成した「Show View」フローを選択します。
このブロックをTransfer to queueブロックに接続します。
この設定により、通話が転送されると、チームメイトはFinからのデータで埋められた「Conversation Summary」バーを表示します。










