Carta CRM から投資家レコードを検索・取得します。 次のような場合に使用: ユーザーが「投資家を見つけて」「投資家を検索して」「投資家を調べて」「[名前]の投資家詳細を表示して」「[名前]の全情報を見せて」「[名前]について教えて」「投資家をIDで取得」「投資家をリスト表示」「現在どんな投資家がいるのか」「/search-investors」などと言った場合。 投資家の ID、名前、カスタムフィールド(独自に追加・設定した項目)など、投資家の詳細情報を返します。返された投資家 ID は、「投資家更新スキル」(update-investor スキル)と組み合わせて使用できます。
Searches for and retrieves investor records from the Carta CRM. Use this skill when the user says things like "find an investor", "search investors", "look up an investor", "show me investor details for [name]", "full details on [name]", "tell me about [name]", "get investor by ID", "list investors", "what investors do we have", or "/search-investors". Returns investor details including ID, name, and custom fields. The investor ID returned can be used with the update-investor skill.
<!-- carta:plugin-version --> <carta-plugin>carta-crm:1.14.2</carta-plugin>
Carta CRM(顧客管理システム)に登録されている投資家を調べられます。 特定の投資家1人の情報を求める場合はその投資家のカードを表示し、複数の投資家を求める場合は表にまとめて表示します。 まずこの違いを判断することが、以降のすべての処理を決めます。
ユーザーが1人の投資家を名指しした場合は、「検索して」「探して」と言われても詳細表示にあたります。 意図がはっきりしない場合は、一覧表示として扱い、何を絞り込みたいのか確認してください。
必ず crm_call_tool で検索してください。crm_view_tool は使いません。
このステップはあなたが行う処理で、ユーザーに見せるものではありません。ビュー呼び出しを使うと、応答内のすべての配列が件数に縮約されるため、データ行が表示されず、必要な id にアクセスできなくなり、ユーザーも求めていない一覧を見ることになるからです。
crm_call_tool({
"name": "crm:search_investors",
"arguments": { query: "<投資家名>", limit: 10 }
})
その後、返ってきた候補の数で判断分岐してください:
crm_view_tool({ "name": "crm:get_investor", "arguments": { id: "<id>" } })
crm_view_tool({
"name": "crm:search_investors",
"arguments": { query: "<投資家名>", limit: 10 }
})
そして尋ねてください:「複数の投資家が該当します — どちらのことですか?」ユーザーが選んだら、そのIDで get_investor を呼び出してください。会社名が似ていることが多い(「Index」「Index Ventures」など)ため、上位の結果を勝手に開くと、間違ったレコードが確信をもって表示されてしまいます。ユーザーが最初からIDを提示した場合、検索の必要はありません — 1回の呼び出しで、1枚のカードが表示されます。
1回のリクエストにつき、最大1枚のカードを表示してください。ユーザーが複数の投資家を名指しした場合は、複数のビューを重ねるのではなく、どれを開きたいのか確認してください。
crm_view_tool({
"name": "crm:search_investors",
"arguments": {
query: "<検索語>",
limit: 20
}
})
ユーザーがもっと結果を見たいと言ったら、limit を増やしてください。offset を使って、結果を分割して表示できます。
CRM ビューは組織ごとに有効・無効が設定されており、個別レコードのビューはさらにその上に追加の設定があります。そのため、上記の crm_view_tool 呼び出しで以下のような応答が返ることがあります:
CRM tool 'search_investors' has no view — call it with crm_call_tool instead.
(CRM ツール「search_investors」にはビューがありません — crm_call_tool で呼び出してください。)
これは失敗ではなく、通常の応答です — この組織ではそのビューが有効になっていません。
その呼び出しを crm_call_tool で同じ内容で再実行し、結果をテキストで表示してください(ステップ4参照)。crm_view_tool で再実行してはいけません。また、このメッセージをユーザーに報告しないでください。
詳細表示リクエストでカードにビューがない場合も、同じ方法で処理します:ステップ2の crm_call_tool で検索した結果を、選ばれたレコードとしてテキストで表示してください。
カードが表示された場合、ユーザーはレコード全体を見ています。フィールドを言い直さないでください。 ユーザーが質問したことに答えるか、1行で確認するだけにしてください。
表が表示された場合、ユーザーはすべての行をすでに見ています。テキストで再列挙、再フォーマット、または要約してはいけません — 表と重複するからです。ユーザーが実際に質問したことに答えるか、1行で確認してください(例:「9人の投資家が見つかりました — IDは1番目の列にあり、/update-investor で使えます。」)。
crm_call_tool にフォールバックした場合、空でないすべてのフィールドを読みやすくまとめて表示し、IDは目立つように表示してください — ユーザーが /update-investor を実行するのに必要です。
投資家が見つからない場合:
「検索に合致する投資家が見つかりません。別の名前またはキーワードでお試しください。」
<!-- carta:plugin-version --> <carta-plugin>carta-crm:1.14.5</carta-plugin>
Look up investors in the Carta CRM. A request about one named investor renders that investor's card; a request for a set renders a table. Route on that distinction first — it decides every call below.
A named single investor is a detail request even when the user says "search" or "find". If it's genuinely unclear, treat it as a list and ask what they want to narrow to.
Resolve through crm_call_tool, never crm_view_tool. This step is for you, not the
user: a view call collapses every array in the response to a count, so the rows — and the
id you need — never reach you, and the user gets a list they did not ask for.
crm_call_tool({
"name": "crm:search_investors",
"arguments": { query: "<investor name>", limit: 10 }
})
Then branch on how many candidates came back:
crm_view_tool({ "name": "crm:get_investor", "arguments": { id: "<id>" } })
crm_view_tool({
"name": "crm:search_investors",
"arguments": { query: "<investor name>", limit: 10 }
})
Then ask: "Several investors match — which one did you mean?" When they pick, call
get_investor for it. Firms often share a stem ("Index", "Index Ventures"), so opening
the top hit unasked shows the wrong record with full confidence.When the user gives an ID outright, there is nothing to resolve — one call, one card.
Render at most one card per request. If the user named several investors, ask which to open rather than stacking views.
crm_view_tool({
"name": "crm:search_investors",
"arguments": {
query: "<search term>",
limit: 20
}
})
Increase limit if the user asks to see more results. Use offset to paginate.
CRM views are enabled per organisation, and single-record views behind a second flag on
top of that. So any crm_view_tool call above may answer with:
CRM tool 'search_investors' has no view — call it with crm_call_tool instead.
That is a normal response, not a failure — this organisation does not have that view
enabled. Retry that one call verbatim through crm_call_tool and present the result as
text per Step 4. Do not retry crm_view_tool, and do not report the message to the
user.
A detail request whose card has no view still resolves the same way: keep the
crm_call_tool resolve from Step 2 and present the chosen record as text.
When a card rendered, the user sees the whole record. Do not restate its fields. Answer what they asked, or acknowledge in one line.
When a table rendered, the user already sees every row. Do NOT re-list, re-format, or
summarise them as text — that duplicates the table. Answer the question they actually
asked, or acknowledge in one line (e.g. "Found 9 investors — the ID is in the first
column, for /update-investor.").
When you fell back to crm_call_tool, display all non-empty fields in a readable
summary and show the ID prominently — the user will need it to run /update-investor.
If no investors are found:
"No investors found matching your search. Try a different name or keyword."
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。