Upfirst
公式Upfirstは、小規模ビジネス向けのAI電話受付です。通話の文字起こしを確認し、AIクライアントから挨拶、ナレッジ、転送ルールを修正できます。
Upfirst MCPで何ができますか?
-
受付担当者のパフォーマンス監査 — アシスタントに先週の通話をレビューさせ、エージェントの知識と比較してギャップを特定し、新しいトレーニング項目を提案してもらいます。
-
説明からの受付担当者設定 — アシスタントに、ビジネスと通話対応の平易な説明を、挨拶、知識、転送ルール、スケジュールを含む完全な設定に変換させます。
-
パフォーマンスが低い通話の修正 — アシスタントに特定の通話記録を指定し、望ましい結果を説明します。将来の通話を改善するための正確な知識編集を提案します。
-
エージェント設定の管理 — アシスタントに、受付担当者の挨拶、別れのメッセージ、声のトーン、話す速度、または通話ブロックの設定を読み取りまたは更新するよう指示します。
-
トレーニングコンテンツの作成と編集 — アシスタントに、1つ以上のエージェントにリンクされた知識エントリの追加、更新、削除を依頼します。特定の営業時間のスケジュールエントリも含みます。
-
通話転送ルールの設定 — アシスタントに、条件、転送前メッセージ、宛先番号、週次スケジュールを含む転送スキルを設定するよう指示します。
ドキュメント
接続
インストールするものはありません。クライアントを https://mcp.upfirst.ai に向けるだけで、初回接続時に Upfirst へのサインインが案内されます。認証は標準の OAuth 2.1 サインインなので、コピーや保存が必要な API キーはありません。
サーバーはストリーミング可能な HTTP 上で動作し、アシスタントに 25 個のツールを提供します。これらのツールはアカウントの読み取りと変更の両方が可能です。以下からクライアントを選択してください。
Upfirst は Claude のコネクタディレクトリに掲載されています。claude.ai/directory/upfirst を開き、Upfirst を追加して、Upfirst にサインインしてアクセスを承認してください。Claude デスクトップアプリと claude.ai の両方で動作します。
代わりにカスタムコネクタとして追加する
- カスタマイズ を開き、コネクタ を選択します。
- + をクリックし、カスタムコネクタを追加 を選択します。
- 名前を Upfirst にして、以下の URL をリモート MCP サーバー URL として貼り付けます。
- 詳細設定の Client ID と Client Secret フィールドは空のままにします。
- 追加 をクリックし、接続 をクリックして、Upfirst にサインインしてアクセスを承認します。
https://mcp.upfirst.ai
Team および Enterprise プランでは、オーナーが組織設定でコネクタを一度追加すると、他のメンバーは [接続] をクリックするだけです。
どの方法で接続しても、最初の呼び出しで Upfirst のサインインページが開きます。アクセスを一度承認すると、接続はその後ずっと組織にバインドされたままになります。
規約
すべてのツールに共通するルールがいくつかあります。各ツールには、データに対して何を行うかを示すタグが付いています。
- 読み取り データを取得します。何も変更しません。
- 書き込み レコードを作成または更新します。
- 削除 レコードを完全に削除します。元に戻すことはできません。
ID はリストツールから取得します
エージェント ID は list_agents、スキル ID は list_agent_skills、ナレッジ ID は get_agent_knowledge、グリーティング ID は list_agent_greetings、カスタムアクション ID は list_custom_actions、通話 ID は list_calls から取得します。ID は数字の文字列です。スキルツールは ID を skillId として受け取り、ナレッジ、グリーティング、カスタムアクションツールは id として受け取ります。更新ツールと削除ツールはその ID のみを必要とします。agentId は受け取りません。
レコードはエージェントにリンクされています
すべてのスキル、ナレッジエントリ、カスタムアクションは、1 つ以上のエージェントにリンクされています。作成ツールは agentIds を受け取ります。これは少なくとも 1 つのエージェント ID を含むリストです。autoLinkNewAgents を true に設定すると、後で作成するすべてのエージェントにもレコードが付与されます。その場合、agentIds には現在のすべてのエージェントをリストする必要があります。更新ツールは、agentIds と autoLinkNewAgents の両方を送信した場合にのみリンクを変更します。リンクを現状のまま維持するには、両方とも省略します。レコードを編集または削除すると、リンクされているすべてのエージェントに対して変更されます。
ページング
get_agent_knowledge、list_calls、get_call_transcript は offset と limit を受け取り、totalCount を返すため、ページは常に同じフィルタリングされたセットから取得されます。他のリストツールはすべてを 1 つの応答で返します。
タイムゾーン
日付のみ(YYYY-MM-DD)はビジネスのタイムゾーンで読み取られます。週次スケジュールは各エージェントのタイムゾーンで読み取られるため、2 つのタイムゾーンのエージェントにリンクされた 1 つのエントリは、それぞれのローカル時間に従います。正確な瞬間が必要な場合は、完全な ISO 8601 日時を渡してください。
削除は永続的です
この接続では復元はできません。削除されたスキル、ナレッジエントリ、またはカスタムアクションは、リンクされていたすべてのエージェントから消え、それらのエージェントは数分以内に使用を停止します。
一部の設定はダッシュボードのみ
音声、タイムゾーン、言語、スケジュールスキル、カスタムアクションが認証に使用する OAuth 接続、転送スキルの削除、ウェブサイトナレッジのインポートは、MCP ではなく Upfirst ダッシュボードで管理されます。ツールは該当する場合にその旨を明記します。
プロンプト例
Upfirst MCP サーバーは、互換性のある任意の AI クライアントで動作します。開始するには、これらのプロンプトのいずれかをクライアントにコピーして、ビジネスに合わせて調整してください。
レセプショニストのナレッジのギャップを見つける
ユースケース
このワークフローを使用して、過去 1 週間の通話を確認し、レセプショニストのナレッジが不足していた箇所を見つけて、トレーニングに何を追加すべきかを把握します。
プロンプト例
あなたは Upfirst レセプショニストのナレッジのギャップを見つけるのを手伝っています。
過去 7 日間の通話を確認し、レセプショニストの現在のナレッジを読んでください。発信者が尋ねたがうまく答えられなかった質問、欠けていた情報、同じトピックが複数回出てきた箇所を探してください。
各ギャップについて、それを示す通話を指摘し、それを埋める具体的なナレッジエントリを提案してください。レセプショニストが答えるべき方法で書いてください。関連するギャップをグループ化し、発生頻度でランク付けしてください。
何も変更しないでください。ギャップと提案されたエントリをレビュー用に提示してください。
レセプショニスト: [Name, or leave blank for all]
説明からレセプショニストをセットアップする
ユースケース
このワークフローを使用して、レセプショニストに通話を処理してほしい方法を説明し、アシスタントにセットアップ(グリーティング、ナレッジ、転送ルール、スケジュール、テキストスキル)を構築させます。
プロンプト例
あなたは、通話の処理方法の平易な説明から Upfirst AI レセプショニストを設定するのを手伝っています。
説明を完全なセットアップに変換してください。グリーティングとグッバイ、一般的な質問に答えるために必要なナレッジ、担当者に届けるべき通話の転送ルール、特定の時間帯にのみ適用される情報や転送のスケジュール、説明が必要とするテキストスキルを含めてください。
説明で不明な重要な点(営業時間、通話の宛先、一般的なリクエストの処理方法など)については、推測せずに質問してください。
何かを作成する前に、完全な提案セットアップをレビュー用に表示し、承認されたら適用してください。
レセプショニストが通話を処理する方法: [Describe your business, your hours, what callers usually need, and who calls should reach]
うまくいかなかった通話を修正する
ユースケース
このワークフローを使用して、希望どおりに進まなかった通話を指摘し、希望した内容を伝え、アシスタントにレセプショニストのナレッジを調整させて、同様の通話がより良くなるようにします。
プロンプト例
あなたは、うまくいかなかった通話に基づいて Upfirst レセプショニストを改善するのを手伝っています。
私が指摘した通話を、文字起こしを含めて読み、レセプショニストが行ったことと私が望んでいたことを比較してください。結果につながった原因を特定してください。ナレッジの欠落、不明確さ、別のエントリとの矛盾のいずれかです。
次回このような通話がより良くなるようにする具体的な変更を、追加または編集する正確なナレッジとして提案し、それぞれがなぜ役立つかを説明してください。
変更を適用する前にレビュー用に表示し、承認された編集を行ってください。
通話: [ID or a short description of the call]
代わりに私が望んでいたこと: [Describe the outcome you were hoping for]
01
アカウントとエージェント
全体を把握してから、個々の AI レセプショニストを読み取るか更新します。
ここから始めてください。アカウント全体のコンパクトなスナップショット: ビジネス名、各レセプショニストのタイムゾーン、グリーティング、電話番号、スキルとナレッジ、過去 30 日間の処理済み通話数。
パラメータなし。
戻り値 ビジネス名 · エージェント(ID、名前、タイムゾーン、グリーティング、電話番号、スキルとナレッジの名前) · 過去 30 日間の通話数(確定済みの通話のみ。テスト通話とアーカイブ済み通話はカウントされません)。
組織の AI エージェントを一覧表示します。返された ID を以下のエージェントスコープのツールで使用します。
パラメータなし。
戻り値 各エージェントの ID と名前。
1 つのエージェントの完全な会話設定と関連する電話番号を読み取ります。
| パラメータ | 型 | 説明 |
|---|---|---|
agentId | 文字列 必須 | list_agents からの数値エージェント ID。 |
戻り値 グリーティングとグッバイメッセージ、音声トーン、音声レート、保留音、タイムゾーン、スパムとフリーダイヤルブロック、関連する電話番号。
エージェントの会話設定を変更します。部分更新: 変更するものだけを送信します。少なくとも 1 つの設定可能なフィールドが必要です。
| パラメータ | 型 | 説明 |
|---|---|---|
agentId | 文字列 必須 | 更新するエージェント。 |
greetingMessage | 文字列 任意 | 開始メッセージ。 |
goodbyeMessage | 文字列 任意 | 終了メッセージ。 |
voiceTone | 列挙型 任意 | friendly · professional |
speechRate | 数値 任意 | 0.7 · 0.85 · 1 · 1.1 · 1.2 |
holdMusic | 列挙型 任意 | ringTone · gentleGuitar · marimba · softKeys |
isSpamCallsBlocked | ブール値 任意 | 疑わしいスパム通話をブロックします。 |
isTollFreeCallsBlocked | ブール値 任意 | フリーダイヤル通話をブロックします。 |
音声、タイムゾーン、言語はダッシュボードで管理され、ここでは変更できません。2 つのブロックフラグは組織全体に適用されます。いずれかを設定すると、ダッシュボードと同じように、アクティブなすべてのエージェントに対して変更されます。greetingMessage はデフォルトのグリーティングです。特定の時間帯や日付のグリーティングには、スケジュールされたグリーティング の下に専用のツールがあります。
戻り値 更新されたエージェント。get_agent_by_id と同じ形式です。
02
スケジュールされたグリーティング
スケジュールされたグリーティングとは、レセプショニストがスケジュール内の通話で最初に話す言葉です。例としては、時間外や休日のグリーティングがあります。それぞれが単一のエージェントに属します。通話の時間に一致するスケジュールされたグリーティングがない場合、エージェントはデフォルトのグリーティングを使用します。これは get_agent_by_id で読み取られ、update_agent で変更されます。
エージェントのスケジュールされたグリーティングを、非アクティブなものを含めて一覧表示します。グリーティングを変更する前にこれを読んで、見えないうちに上書きされないようにしてください。
| パラメータ | 型 | 説明 |
|---|---|---|
agentId | 文字列 必須 | グリーティングを一覧表示するエージェント。 |
戻り値 各グリーティングの ID、text、アクティブフラグ、kind、schedule。kind は読み取り専用です。text はグリーティングが書かれたとおりに話されることを意味し、instruction はエージェントがそれからグリーティングを構築することを意味し、unknown はまだ分類されていないことを意味します。
エージェントにスケジュールされたグリーティングを追加します。グリーティングは、リクエスト全体が有効な場合にのみ保存されます。
| パラメータ | 型 | 説明 |
|---|---|---|
agentId | 文字列 必須 | グリーティングが属するエージェント。 |
text | 文字列 必須 | 話す正確な言葉、またはグリーティング方法の指示。 |
schedule | オブジェクト 必須 | グリーティングが使用される時間。エージェントのタイムゾーンで指定します。グリーティングスケジュール を参照してください。 |
isActive | ブール値 任意 | グリーティングが通話の開始時に使用されるかどうか。デフォルトは true です。 |
スケジュールは、同じエージェントの別のアクティブなグリーティングと重複してはなりません。週次の時間と日付は別々にチェックされます。kind はシステムによって設定されます。書き込み直後に unknown を読み取り、数秒以内に分類されます。
戻り値 新しいグリーティングの ID とそのフィールド。
スケジュールされたグリーティングのテキスト、アクティブフラグ、またはスケジュールを変更します。部分更新: 変更するものだけを送信します。少なくとも 1 つのフィールドが必要です。
| パラメータ | 型 | 説明 |
|---|---|---|
id | 文字列 必須 | グリーティング ID。list_agent_greetings から取得します。 |
text | 文字列 任意 | 新しいグリーティングテキスト。 |
isActive | ブール値 任意 | グリーティングが通話で使用されるかどうか。 |
schedule | オブジェクト 任意 | 新しいスケジュール。グリーティングスケジュール を参照してください。 |
新しいスケジュールは保存されているスケジュールを完全に置き換えるため、最初にグリーティングを読み、希望する完全なスケジュールを送り返してください。作成時と同じ重複ルールが適用されます。テキストを変更すると、kind が再分類されるまで unknown にリセットされます。
戻り値 更新が書き込んだフィールド。
スケジュールされたグリーティングを完全に削除します。
| パラメータ | 型 | 説明 |
|---|---|---|
id | 文字列 必須 | 削除するグリーティング ID。 |
削除されたグリーティングを復元する方法はありません。その時間帯の通話は、別の一致するグリーティング、または一致するものがない場合はエージェントのデフォルトのグリーティングを使用します。
挨拶のスケジュールには、days に毎週の時間帯があり、dates に任意の特定日付があり、すべてエージェントのタイムゾーンで設定されます。days は スケジュール と同じ構造を使用します。7日間すべてに、それぞれ enabled と workingPeriods があります。dates の各エントリには、YYYY-MM-DD としての date と、periods に少なくとも1つの時間範囲があります。日付エントリはその日の毎週の時間帯よりも優先されるため、これを使って休日の挨拶を設定できます。
{
"days": {
"monday": { "enabled": true, "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
"tuesday": { "enabled": true, "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
"wednesday": { "enabled": true, "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
"thursday": { "enabled": true, "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
"friday": { "enabled": true, "workingPeriods": [{ "from": "17:00", "to": "23:59" }] },
"saturday": { "enabled": false, "workingPeriods": [] },
"sunday": { "enabled": false, "workingPeriods": [] }
},
"dates": [
{ "date": "2026-12-25", "periods": [{ "from": "00:00", "to": "23:59" }] }
]
}
03
スキル
スキルとは、レセプショニストが通話中に実行できるアクションです。発信者へのテキスト送信、スケジュールリンクのテキスト送信、通話の転送、予約の設定、外部APIの呼び出しなどがあります。種類ごとに専用のツールがあるため、渡すフィールドは常にその種類が使用するものになります。スケジュールスキルはここでは読み取り専用で、ダッシュボードで管理されます。ウェブフックスキルの設定は、リンクされているカスタムアクションに保存されます。カスタムアクション ツールで読み取り・編集してください。
エージェントに設定されているスキルを一覧表示します。デフォルトでは非アクティブなものも含みます。
| パラメータ | 型 | 説明 |
|---|---|---|
agentId | string 必須 | スキルを一覧表示するエージェント。 |
llmTool | enum 任意 | この種類のスキルのみ:sendSms・sendScheduleSms・transferCall・scheduleSlot・customWebhook。 |
includeInactive | boolean 任意 | オフになっているスキルを含めます。デフォルトは true。 |
スキルを返します:ID、名前、スラッグ、種類、アクティブフラグ、保存された設定、任意の毎週のスケジュール。customWebhook 行には空の設定と、リンクされたアクションのURL、HTTPメソッド、タイミングを含むウェブフックブロックがあります。完全な設定は list_custom_actions で読み取ります。
スケジュールが通話で尊重されるのは転送スキルのみです。他の種類はスケジュールを保存しても無視します。
テキストスキルを追加します:レセプショニストが通話中に発信者へ送信できるSMSです。sendSms はメッセージをそのままテキスト送信します。sendScheduleSms は組織のスケジュールリンクと一緒にテキスト送信します。
| パラメータ | 型 | 説明 |
|---|---|---|
agentIds | string[] 必須 | スキルを取得するエージェント(少なくとも1つ)。list_agents のID。 |
autoLinkNewAgents | boolean 任意 | 後から作成されるすべてのエージェントにもスキルを付与します。true の場合、agentIds は現在のすべてのエージェントをリストする必要があります。デフォルトは false。 |
llmTool | enum 必須 | sendSms・sendScheduleSms |
name | string 必須 | ダッシュボードに表示される短いラベル。 |
message | string 必須 | エージェントが送信するSMSテキスト(最大306文字)。 |
instruction | string 必須 | 通話中にエージェントが送信するタイミング。 |
isActive | boolean 任意 | 最初からオン。デフォルトは true。 |
メッセージはコンテンツフィルターを通過します。プロモーションやその他の制限された表現は拒否されます。
新しいスキルの id と送信したフィールド(llmTool、name、message、instruction、isActive)を返します。保存されたスキルは list_agent_skills で読み取ります。
テキストスキルを変更します。部分更新:送信したフィールドのみが変更されます。設定可能なフィールドを少なくとも1つ、または新しいエージェントのセットを送信します。
| パラメータ | 型 | 説明 |
|---|---|---|
skillId | string 必須 | list_agent_skills のスキルID。 |
llmTool | enum 任意 | sendSms と sendScheduleSms を切り替えます。 |
name | string 任意 | 新しいラベル。 |
message | string 任意 | 新しいSMSテキスト(最大306文字)。 |
instruction | string 任意 | 送信タイミングに関する新しいガイダンス。 |
isActive | boolean 任意 | スキルをオンまたはオフにします。 |
agentIds | string[] 任意 | スキルを取得する新しいエージェントのセット。autoLinkNewAgents と一緒に送信するか、両方とも省略して現在のリンクを維持します。 |
autoLinkNewAgents | boolean 任意 | 後から作成されるすべてのエージェントにもスキルを付与します。true の場合、agentIds は現在のすべてのエージェントをリストする必要があります。 |
更新が書き込んだフィールドを返します。
テキストスキルをリンクされているすべてのエージェントから完全に削除します。それらのエージェントはそのメッセージの送信を停止します。
| パラメータ | 型 | 説明 |
|---|---|---|
skillId | string 必須 | 削除するスキルID。 |
削除したスキルを復元する方法はありません。再度取得するには、最初から作り直す必要があります。
{ id, note } を返します。note は削除を平易な言葉で確認します。
転送スキルを追加します:ライブ通話を担当者に引き継ぐルールです。condition はエージェントに転送タイミングを指示し、preTransferMessage は最初に発信者に伝える内容、destinations は順番にダイヤルする番号です。
| パラメータ | 型 | 説明 |
|---|---|---|
agentIds | string[] 必須 | スキルを取得するエージェント(少なくとも1つ)。list_agents のID。 |
autoLinkNewAgents | boolean 任意 | 後から作成されるすべてのエージェントにもスキルを付与します。true の場合、agentIds は現在のすべてのエージェントをリストする必要があります。デフォルトは false。 |
name | string 必須 | ダッシュボードに表示される短いラベル。 |
condition | string 必須 | 転送するタイミング(平易な言葉で)。 |
preTransferMessage | string 必須 | 転送前にエージェントが伝える内容。 |
destinations | array 必須 | 順番に試行される1つ以上のターゲット。各 { phoneNumber, label, phoneExtension }。phoneNumber は必須で、E.164形式(例:+12025550123)である必要があります。 |
ringTimeoutSeconds | number 任意 | 宛先ごとの呼び出し時間(5〜60秒)。 |
noAnswerAction | enum 任意 | endCall・returnToAgent |
transferMethod | enum 任意 | cold は発信者を直接引き継ぎます・warm は最初に宛先に説明します。 |
transferCallerId | enum 任意 | 宛先に表示される番号:upfirstNumber・callerNumber。 |
recordingMode | enum 任意 | agentOnly は転送時に録音を停止します・fullCall は転送後も録音を続けます。 |
isActive | boolean 任意 | 最初からオン。デフォルトは true。 |
schedule | object 任意 | スキルが提供される毎週の時間帯(エージェントのタイムゾーン)。常時利用可能にする場合は省略。スケジュール を参照。 |
すべての宛先は、リンクされたエージェントのUpfirst番号のいずれかと同じ国にある必要があります。省略した場合、スキルは通話時にダッシュボードのデフォルトを使用します:30秒の呼び出し、応答なしで通話終了、コールド転送、発信者IDとしてUpfirst番号、転送時に録音停止。
新しいスキルの id と送信したフィールドを返します。保存されたスキルは list_agent_skills で読み取ります。
転送スキルを変更します。部分更新:送信したフィールドのみが変更されます。設定可能なフィールドを少なくとも1つ、または新しいエージェントのセットを送信します。
| パラメータ | 型 | 説明 |
|---|---|---|
skillId | string 必須 | list_agent_skills のスキルID。 |
destinations | array 任意 | リスト全体を置き換えます。保持したいすべての番号を送信します。 |
schedule | object 任意 | 保存された時間帯を置き換えます。null はスケジュールをクリアし、スキルを24時間利用可能にします。 |
| その他の作成フィールド | 任意 | name、condition、preTransferMessage、ringTimeoutSeconds、noAnswerAction、transferMethod、transferCallerId、recordingMode、isActive。作成時と同じ値。 |
agentIds | string[] 任意 | スキルを取得する新しいエージェントのセット。autoLinkNewAgents と一緒に送信するか、両方とも省略して現在のリンクを維持します。 |
autoLinkNewAgents | boolean 任意 | 後から作成されるすべてのエージェントにもスキルを付与します。true の場合、agentIds は現在のすべてのエージェントをリストする必要があります。 |
すべての宛先は、リンクされたエージェントのUpfirst番号のいずれかと同じ国にある必要があります。
スキルの種類は作成時に固定されます。スケジュールまたはウェブフックスキルのIDを渡すと、見つからないとして読み取られます。
更新が書き込んだフィールドを返します。
このためのツールはありません。転送スキルはUpfirstダッシュボードで削除されます。MCP経由では代わりにオフにできます:isActive: false を update_transfer_call_skill で設定すると、エージェントはスキルが設定されたまま転送の提供を停止します。
04
ナレッジ
レセプショニストのナレッジとは、発信者に回答する際に基づく情報です。Upfirstダッシュボードでは、これらのエントリは「トレーニング」の下にあります。各エントリは、あなたが書いたテキスト、またはウェブサイトからインポートしたコンテンツです。エントリは複数のエージェントにリンクでき、編集または削除すると、リンクされたすべてのエージェントの回答が変更されます。書き込みを行うと、レセプショニストは数分以内に自動的に再トレーニングされます。
エージェントのナレッジベースを読み取ります。すべてのエントリは完全なコンテンツとともに全体が返され、プレビューはありません。
| パラメータ | 型 | 説明 |
|---|---|---|
agentId | string 必須 | ナレッジを読み取るエージェント。 |
id | string 任意 | この1つのエントリのみを返します。 |
offset | number 任意 | スキップするエントリ数。デフォルトは 0。 |
limit | number 任意 | 最大エントリ数(1〜100)。デフォルトは 25。 |
エントリを返します:ID、名前、タイプ(テキスト/ウェブサイト)、アクティブフラグ、完全なコンテンツ、ソースURL、毎週のスケジュール、および totalCount。
1人以上のレセプショニストのトレーニングにテキストエントリを追加します。新しいエントリは、リンクされた各エージェントのリストの先頭に追加されます。
| パラメータ | 型 | 説明 |
|---|---|---|
agentIds | string[] 必須 | エントリを取得するエージェント(少なくとも1つ)。list_agents のID。 |
autoLinkNewAgents | boolean 任意 | 後から作成されるすべてのエージェントにもエントリを付与します。true の場合、agentIds は現在のすべてのエージェントをリストする必要があります。デフォルトは false。 |
name | string 必須 | エントリの表示名。 |
content | string 必須 | プレーンテキスト(最大250,000文字)。 |
isActive | boolean 任意 | 最初からアクティブ。デフォルトは true。 |
schedule | object 任意 | エントリを営業時間に制限します。常時アクティブにする場合は省略。スケジュール を参照。 |
新しいエントリの id、name、isActive、schedule(常時アクティブの場合は null)、および文字数での contentLength を返します。完全なエントリは get_agent_knowledge で読み取ります。
エントリの名前、アクティブフラグ、コンテンツ、スケジュール、または表示されるエージェントを変更します。部分更新:設定可能なフィールドを少なくとも1つ、または新しいエージェントのセットを送信します。
| パラメータ | 型 | 説明 |
|---|---|---|
id | string 必須 | get_agent_knowledge のエントリID。 |
name、isActive | 任意 | 新しい名前 / アクティブフラグ。 |
content | string 任意 | 新しいテキスト。保存されたコンテンツを完全に置き換えます。最大250,000文字。 |
schedule | object 任意 | 新しいスケジュール。null はそれをクリアし、エントリを常時利用可能にします。省略すると保存されたものを維持します。 |
agentIds | string[] 任意 | エントリを取得する新しいエージェントのセット。autoLinkNewAgents と一緒に送信するか、両方とも省略して現在のリンクを維持します。 |
autoLinkNewAgents | boolean 任意 | 後から作成されるすべてのエージェントにもエントリを付与します。true の場合、agentIds は現在のすべてのエージェントをリストする必要があります。 |
コンテンツは置き換えられ、追加されることはありません。最初に get_agent_knowledge でエントリを読み取り、保持したい内容を含む完全なテキストを送り返してください。編集は、エントリにリンクされているすべてのエージェントの発言を変更します。
更新が書き込んだフィールドを返します。新しいコンテンツは contentLength として返され、完全なテキストではありません。
ナレッジエントリを完全に削除します。
| パラメータ | 型 | 説明 |
|---|---|---|
id | string 必須 | 削除するエントリID。 |
削除したエントリを復元する方法はありません。削除すると、リンクされているすべてのエージェントから削除されます。
{ id, note } を返します。note は削除を平易な言葉で確認します。
スケジュールは、ナレッジエントリ(または転送スキル)を営業時間内に制限し、エージェントのビジネスタイムゾーンで尊重されます。これは曜日ごとのオブジェクトです。送信するすべてのスケジュールには7日間すべてを含める必要があります。エントリを適用しない曜日は、空のenabled: falseとworkingPeriodsで指定します。時刻はエージェントのタイムゾーンにおける24時間制のHH:MMです。
スケジュールされたエントリは、その時間帯のみレセプショニストのナレッジに含まれます。時間帯外では、エントリが存在しないかのように扱われるため、レセプショニストが誤った時間にそのエントリから回答することはありません。
これにより、スケジュールは時間固有の事実を扱う信頼性の高い方法となります。開店時間と閉店時間を確実に扱うには、営業時間に制限された「現在営業中です」というエントリと、閉店時間に制限された「現在閉店しています」というエントリを1つずつ追加します。常にどちらか一方だけが有効になるため、レセプショニストが混同することはありません。
{
"days": {
"monday": { "enabled": true, "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
"tuesday": { "enabled": true, "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
"wednesday": { "enabled": true, "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
"thursday": { "enabled": true, "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
"friday": { "enabled": true, "workingPeriods": [{ "from": "09:00", "to": "17:00" }] },
"saturday": { "enabled": false, "workingPeriods": [] },
"sunday": { "enabled": false, "workingPeriods": [] }
}
}
05
カスタムアクション
カスタムアクションは、レセプショニストが外部HTTP APIに対して行う呼び出しです。timingが実行タイミングを決定します。beforeは会話の前に発火し、システム変数のみを使用できます。duringは通話中のエージェントに提示され、エージェントが説明から呼び出すかどうかを判断します。afterは通話終了後に発火し、毎回または平文の条件が成立したときに実行されます。
変数は、URL、クエリパラメータ、ヘッダー、およびボディに{{name}}として補間されます。アクションは1つ以上のエージェントにリンクされており、編集または削除すると、リンクされているすべてのエージェントの動作が変更されます。list_agent_skillsでは、customWebhookスキルがカスタムアクションのエージェント側ビューです。アクションが認証に使用できるOAuth接続は、Upfirstダッシュボードで設定されます。
エージェントが使用できるすべてのカスタムアクションと、その完全な設定。アクションを書き換える前にこれを読んで、何も見えないうちに上書きされないようにしてください。
| パラメータ | 型 | 説明 |
|---|---|---|
agentId | string 必須 | アクションを一覧表示するエージェント。このエージェントにリンクされたすべてのアクションが含まれます。 |
id | string 任意 | この1つのアクションのみを返します。 |
各アクションはcustomActionsを返し、それぞれにid、agentIds(アクションがリンクされているすべてのエージェント)、autoLinkNewAgents、名前、説明、タイミング、HTTPメソッド、URL、認証タイプとOAuth接続ID、フォールバックメッセージ、タイムアウト、アクティブフラグ、変数、クエリパラメータ、ヘッダー、許可された出力フィールド、サンプル値、ボディテンプレート、およびアフタータイミング条件が含まれます。
資格情報のように見える名前(token、key、secret、authorization)のヘッダーは、[redacted]として返されます。実際の値が読み出されることはありません。削除されたアクションは省略されます。
カスタムアクションを追加し、1つ以上のエージェントにリンクします。
| パラメータ | 型 | 説明 |
|---|---|---|
agentIds | string[] 必須 | アクションを取得するエージェント。少なくとも1つ。list_agentsからのID。 |
autoLinkNewAgents | boolean 任意 | 後で作成されたすべてのエージェントにもアクションを付与します。trueの場合、agentIdsは現在のすべてのエージェントをリストする必要があります。デフォルトはfalse。 |
name | string 必須 | ダッシュボードに表示される短いラベル。 |
description | string 必須 | アクションが何をするかを平文で説明。beforeおよびduringタイミングでは、エージェントの前に提示され、このテキストからAPIを呼び出すかどうかを判断します。afterタイミングでは無視されます。 |
timing | enum 必須 | before・during・after |
httpMethod | enum 必須 | GET・POST・PUT・PATCH・DELETE |
url | string 必須 | リクエストの送信先エンドポイント。{{variable}}プレースホルダーを含む場合があります。 |
authType | enum 必須 | noneはリクエストを未認証で送信します・bearerはheaders形式のAuthorizationヘッダーが必要です・customHeadersは提供するヘッダーを通じて認証します・oauth_connectionは接続からトークンを解決し、oauthConnectionIdが必要です。 |
fallbackMessage | string 必須 | リクエストが失敗またはタイムアウトしたときにエージェントが発信者に伝える内容。 |
oauthConnectionId | string 任意 | 接続されたOAuth接続の数値ID。oauth_connectionに必要で、他のすべての認証タイプでは拒否されます。すでに使用しているアクションのlist_custom_actionsから取得します。 |
variables | array 任意 | リクエストに補間される値。各{ name, description, exampleValue, isSystem, required }。nameとdescriptionは必須で、名前は一意である必要があります。システム変数はUpfirstが通話自体から入力します。カスタム変数は発信者から収集されます。beforeタイミングのアクションはシステム変数のみ使用できます。デフォルトは[]。 |
queryParams | array 任意 | クエリ文字列パラメータ。各{ key, value }。値はプレースホルダーを使用できます。デフォルトは[]。 |
headers | array 任意 | リクエストヘッダー。各{ key, value }。ベアラー認証は、ここでAuthorizationヘッダーにトークンを格納します。[redacted]プレースホルダーを送り返さないでください。デフォルトは[]。 |
allowedOutputFields | string[] 任意 | エージェントが読み取れるJSONレスポンスのフィールド。空の場合はレスポンスをそのまま渡します。デフォルトは[]。 |
bodyTemplate | string 任意 | プレースホルダーが置換されたリクエストボディをそのまま送信。なしの場合は空。 |
sampleValues | object 任意 | 変数名ごとの値。アクションを試すときに使用されます。 |
timeoutSeconds | integer 任意 | 1〜30。デフォルトは10。 |
isActive | boolean 任意 | 最初からオン。デフォルトはtrue。 |
condition | string または null 任意 | afterタイミングのみ。完了した通話に対してチェックされる平文ルール。nullはすべての通話後に発火します。beforeおよびduringの場合は省略します。 |
作成されたアクションを新しいIDとともに返します。
カスタムアクションを変更します。部分更新:送信したフィールドのみが変更されます。設定可能なフィールドを少なくとも1つ、または新しいエージェントのセットを送信します。リストはマージではなく全体が置き換えられるため、最初にlist_custom_actionsでアクションを読んでください。
| パラメータ | 型 | 説明 |
|---|---|---|
id | string 必須 | list_custom_actionsからのアクションID。 |
agentIds | string[] 任意 | アクションを取得する新しいエージェントのセット。autoLinkNewAgentsと一緒に送信するか、現在のリンクを維持するために両方とも省略します。 |
autoLinkNewAgents | boolean 任意 | 後で作成されたすべてのエージェントにもアクションを付与します。trueの場合、agentIdsは現在のすべてのエージェントをリストする必要があります。 |
oauthConnectionId | string または null 任意 | nullはそれをクリアします。アクションをoauth_connection認証タイプから移動する同じ呼び出しでnullを送信します。 |
condition | string または null 任意 | nullはそれをクリアします。アクションをafterタイミングから移動する同じ呼び出しでnullを送信します。 |
variables、queryParams、headers、allowedOutputFields | array 任意 | それぞれがリスト全体を置き換えます。保持したいすべてのエントリを送信します。[redacted]プレースホルダーを含むヘッダーは拒否されます。実際の値を送信するか、そのヘッダーを省略してください。 |
| その他の作成フィールド | 任意 | name、description、timing、httpMethod、url、authType、bodyTemplate、sampleValues、fallbackMessage、timeoutSeconds、isActive。作成時と同じ値。 |
複数のエージェントにリンクされたアクションは、すべてのエージェントに対して編集されます。
更新が書き込んだフィールドを返します。
カスタムアクションを完全に削除します。リンクされたすべてのエージェントはそのAPIの呼び出しを停止します。
| パラメータ | 型 | 説明 |
|---|---|---|
id | string 必須 | 削除するアクションID。 |
削除したアクションを復元する方法はありません。再作成するには最初から作成し直す必要があり、list_custom_actionsは存在している間のみその設定を返します。
{ id, note }を返します。ここでnoteは削除を平文で確認します。
06
通話
ビジネスの通話履歴、個々の通話の詳細、およびその文字起こしを読み取ります。完了した通話のみが表示されます。通話は終了直後に表示されます。
通話履歴を一覧表示およびフィルタリングします。新しい順。文字起こしや要約のないコンパクトな行(これらには以下のツールを使用します)。
| パラメータ | 型 | 説明 |
|---|---|---|
statuses | enum[] 任意 | 結果でフィルタリング。各通話には正確に1つ:test・blocked・spam・hungUp・completed。 |
query | string 任意 | 通話の要約と文字起こしに対するフリーテキスト検索。 |
tags | string[] 任意 | これらのタグ(名前またはID)のいずれかを持つ通話に一致。 |
startDate | date 任意 | ベアYYYY-MM-DD = ビジネスタイムゾーンの暦日、または完全なISO日時。 |
endDate | date 任意 | 上記と同様。包括的。 |
archived | boolean 任意 | アクティブな通話の代わりにアーカイブされた通話を返します。デフォルトはfalse。 |
offset、limit | number 任意 | ページング。limitは1〜100、デフォルトは25。 |
通話行(発信者、時刻、通話時間、結果、タグ、リンクされた連絡先、文字起こしターン数)とtotalCountを返します。
1つの通話の完全な詳細。文字起こしテキストと録音を除くすべて。
| パラメータ | 型 | 説明 |
|---|---|---|
callId | string 必須 | list_callsからの数値通話ID。 |
タイミング、結果、発信者とレセプショニストの番号、AIが作成した要約、キャプチャされたデータフィールド、エージェントが使用したスキル(各発火時刻を含む)、タグ、チームのコメント、および文字起こしターン数を返します。
1つの通話の会話テキストを順序付けられたターンとして返します。各ターンには[mm:ss]オフセットと話者がスタンプされています。
| パラメータ | 型 | 説明 |
|---|---|---|
callId | string 必須 | list_callsからの数値通話ID。 |
offset、limit | number 任意 | ターン間のページング。limitは1〜200、デフォルトは100。一般的な通話は1つのレスポンスに収まります。メモにさらにターンが残っていると記載されている場合のみページングしてください。 |
話者は、エージェント(AIレセプショニスト)、発信者(ダイヤルした人)、および転送先(通話が転送された人間)です。
ターン(オフセット、話者、テキスト)とtotalCountを返します。
FAQ
Upfirstに電話応答を開始させるにはどうすればよいですか?
電話番号を提供します。その番号を公開して直接電話してもらうこともできますが、ほとんどのビジネスは既存の回線から電話を転送しています。
転送量を選択できます:すべての通話、不在時の通話のみ、または電話、キャリア、VoIPシステムによっては特定の時間帯のみ。手順はプロバイダーごとに異なるため、すべての通話をUpfirstに転送を参照してください。
APIキーは必要ですか?
いいえ。認証は標準のOAuth 2.1サインインです。最初の呼び出しでUpfirstのサインインページが開き、一度アクセスを承認すると、コピー、貼り付け、保存するものはありません。
どのAIアシスタントで使用できますか?
HTTP経由でリモートMCPサーバーをサポートする任意のクライアント。接続セクションに、Claude、ChatGPT、Claude Code、Cursor、VS Code、Codexのセットアップがあります。その他の場合は、https://mcp.upfirst.aiをストリーミング可能なHTTPサーバーとして指定すると、最初の呼び出しでサインインが処理されます。
アシスタントは何にアクセスできますか?
サインインした組織のみ。すべてのツールはその組織にスコープされ、他の組織のIDには決してアクセスできません。その中で、アシスタントは通話と文字起こしを読み取り、レセプショニストの設定、スキル、ナレッジ、カスタムアクションを変更し、それぞれをどのレセプショニストに適用するかを選択できます。ダッシュボードにサインインしているのと同じように接続を扱ってください。
受けたばかりの通話が表示されないのはなぜですか?
完了した通話のみが表示され、通話は終了直後に表示されます。進行中の通話は、切断されるまで利用できません。それでも通話が見つからない場合は、アーカイブされていないか確認してください。list_calls はアクティブな通話を返すため、archived: true を渡さない限りアーカイブされた通話は含まれません。
MCP経由でできないことは何ですか?
音声、タイムゾーン、言語、スケジュールスキル、カスタムアクション用のOAuth接続、転送スキルの削除、ウェブサイトからのナレッジインポートは、すべてUpfirstダッシュボードで管理されます。通話録音もこの接続では利用できません。該当するツールにはその旨が記載されています。