Carta CRM(顧客関係管理システム)から資金調達の記録を検索して取得するスキルです。 **次のような場合に使用:** ユーザーが「資金調達を探して」「資金調達ラウンドを検索して」「[企業名]の資金調達詳細を表示して」「[企業名]の詳しい情報を見せて」「IDから資金調達を取得」「資金調達のリストを表示」「どの資金調達があるか」といった内容や「/search-fundraisings」コマンドで指示した場合。 **返される情報:** 資金調達 ID、名前、段階(ラウンド段階)、カスタムフィールドなどの詳細情報を返します。 取得した資金調達 ID は、「update-fundraising(資金調達更新)」スキルと組み合わせて使用できます。
Searches for and retrieves fundraising records from the Carta CRM. Use this skill when the user says things like "find a fundraising", "search fundraisings", "look up a fundraising round", "show fundraising details for [name]", "full details on [name]", "get fundraising by ID", "list fundraisings", "what fundraisings do we have", or "/search-fundraisings". Returns fundraising details including ID, name, stage, and custom fields. The fundraising ID returned can be used with the update-fundraising skill.
<!-- carta:plugin-version --> <carta-plugin>carta-crm:1.15.0</carta-plugin>
Carta CRM(顧客関係管理システム)の中から資金調達ラウンド(企業が行う融資の段階)を検索します。特定のラウンド1つについての質問なら、そのラウンドの詳細を表示します。複数のラウンドや条件付き検索なら、表の形で結果を表示します。最初にこの区別を判断することが、以降のすべての処理を決める重要なポイントです。
ユーザーが1つの特定ラウンドを名前で指定していれば、「検索」「探して」と言われた場合でも詳細表示です。本当にどちらか分からない場合は、一覧表示として進め、何に絞りたいのか確認してください。
必ず crm_call_tool を使う。crm_view_tool は使わない。 このステップはあなた(システム)の処理であり、ユーザーの表示ではありません。crm_view_tool を使うと、結果の配列が件数に圧縮されて返され、必要な行データと id がユーザーに届かず、ユーザーが求めていない一覧を見ることになります。
crm_call_tool({
"name": "crm:search_fundraising",
"arguments": { query: "<ラウンド名>", limit: 10 }
})
返ってきた候補の数で分岐します:
候補がちょうど1件 → そのカードを表示して終了:
crm_view_tool({ "name": "crm:get_fundraising", "arguments": { id: "<id>" } })
候補が複数件 → 推測しない。候補一覧をビュー表示し、どれか聞く:
crm_view_tool({
"name": "crm:search_fundraising",
"arguments": { query: "<ラウンド名>", limit: 10 }
})
その後: 「複数のラウンドが該当します。どれをお探しですか?」と確認。ユーザーが選んだら、その id で get_fundraising を呼び出します。1社が複数ラウンドを持つことは珍しくないため、聞かずに1位をいきなり開くと、間違ったラウンドを確信を持って表示することになります。
候補がない — その旨を伝え、空のビューは表示しない。
ユーザーが最初から ID を指定した場合、名前の確認は不要です。呼び出しは1回、表示はカード1枚です。
1回のリクエストにつき、カードは最大1枚にしてください。ユーザーが複数ラウンドを指定した場合は、ビューを重ねるのではなく、どれを開きたいか聞いてください。
crm_view_tool({
"name": "crm:search_fundraising",
"arguments": {
query: "<検索語>",
limit: 20
}
})
ユーザーがステージ(進行状況)の名前で条件を絞った場合は、先に名前をステージ ID に変換してから stages: ["<stage id>"] として渡します。このステップ専用のビューがないため、crm_call_tool を使います:
crm_call_tool({ "name": "crm:get_fundraising_stages", "arguments": {} })
ユーザーが「もっと見たい」と言ったら limit を増やしてください。offset を使って複数ページに分けても構いません。
CRM のビュー表示は組織ごとに有効・無効が決まっており、1件表示ビューはさらに追加の設定が必要です。上記の crm_view_tool 呼び出しが以下のように応答することがあります:
CRM tool 'search_fundraising' has no view — call it with crm_call_tool instead.
これは失敗ではなく、その組織がそのビューを有効にしていないということです。その呼び出しを変えずに crm_call_tool でもう一度実行し、結果をテキストで表示してください(ステップ4参照)。crm_view_tool の再実行はしないでください。このメッセージをユーザーに報告する必要もありません。
詳細表示のリクエストでカードがない場合も、同じ仕組みです。ステップ2の crm_call_tool での名前確認を続け、選ばれたレコードをテキストで表示してください。
カードが表示された場合、ユーザーはレコード全体を見ています。フィールドの内容を繰り返さない。質問に答えるか、1行で確認してください。
表が表示された場合、ユーザーは全行を既に見ています。テキストで改めて列挙・再編成・要約しないでください。重複になります。実際の質問に答えるか、1行で確認してください(例:「6件のラウンドが該当します。ID は最初の列にあり、/update-fundraising で使えます」)。
crm_call_tool にフォールバックした場合、空でないすべてのフィールドを読みやすく要約で表示し、ID は目立たせてください。ユーザーが /update-fundraising を実行する際に必要になります。
ラウンドが見つからない場合:
「検索条件に該当する資金調達ラウンドが見つかりません。別の名前やキーワードでお試しください。」
<!-- carta:plugin-version --> <carta-plugin>carta-crm:1.15.0</carta-plugin>
Look up fundraisings in the Carta CRM. A request about one named round renders that round's card; a request for a set renders a table. Route on that distinction first — it decides every call below.
A named single round 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_fundraising",
"arguments": { query: "<round name>", limit: 10 }
})
Then branch on how many candidates came back:
crm_view_tool({ "name": "crm:get_fundraising", "arguments": { id: "<id>" } })
crm_view_tool({
"name": "crm:search_fundraising",
"arguments": { query: "<round name>", limit: 10 }
})
Then ask: "Several fundraisings match — which one did you mean?" When they pick, call
get_fundraising for it. One company often has several rounds, so opening the top hit
unasked shows the wrong round 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 rounds, ask which to open rather than stacking views.
crm_view_tool({
"name": "crm:search_fundraising",
"arguments": {
query: "<search term>",
limit: 20
}
})
If the user filtered by stage name, resolve the name to a stage ID first, then pass
stages: ["<stage id>"]. This lookup has no view of its own, so it goes through
crm_call_tool:
crm_call_tool({ "name": "crm:get_fundraising_stages", "arguments": {} })
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_fundraising' 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. "6 fundraisings match — the ID is in the first
column, for /update-fundraising.").
When you fell back to crm_call_tool, display all non-empty fields in a readable
summary and show the ID prominently — the user needs it to run /update-fundraising.
If no fundraisings are found:
"No fundraisings found matching your search. Try a different name or keyword."
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。