Carta CRM(顧客管理システム)に保存されたレポートを実行し、その行をテーブル(表形式)で表示します。レポートに保存されている列を使用して表示します。 次のような場合に使用: ユーザーが「レポートを実行してほしい」「〇〇レポートを実行して」「〇〇レポートを表示して」「〇〇レポートを開いて」「どんなレポートがあるか」「レポート一覧を見せて」または「/search-reports」といった内容を述べた場合
Runs a saved report in the Carta CRM and renders its rows as a table, using the columns the report saved. Use this skill when the user says things like "run my report", "run the [name] report", "show me the [name] report", "open the [name] report", "what reports do we have", "list reports", or "/search-reports".
<!-- carta:plugin-version --> <carta-plugin>carta-crm:1.14.2</carta-plugin>
保存されたレポートは、1つのエンティティ(取引、連絡先、企業、投資家、資金調達、手数料のいずれか)に対して、フィルタ条件と表示列をセットで保存したものです。レポートを実行するとその行がテーブル形式で表示され、保存されている列が使用されます。
レポートはキーワード検索の対象ではありません。リストから選択して実行する流れになるため、ステップ1は必ずステップ2の前に行われます。
取引のフローを業界別、出所別、担当者別に集計した内訳を見たい場合は、代わりに deal-flow-analytics スキルを使用してください。
crm_view_tool ではなく crm_call_tool を使ってリストを読み込んでください。 list_reports には独自の表示画面がなく、このステップはあなた(システム)のためのものです。レポートを実行するには各レポートの id と entityType が必要になります。
crm_call_tool({ "name": "crm:list_reports", "arguments": {} })
ユーザーがエンティティの種類を指定した場合は、entityType でリストを絞り込んでください。指定できるのは "deal"、"contact"、"company"、"investor"、"fundraising"、"fees" です:
crm_call_tool({ "name": "crm:list_reports", "arguments": { entityType: "deal" } })
返ってきた結果に応じて以下のように分岐してください:
ステップ1で見つけたエントリから id と entityType を使用します。どちらもそのエントリに含まれており、推測してはいけません。
crm_view_tool({
"name": "crm:get_report_data",
"arguments": {
reportId: "<list_reports から取得した id>",
entityType: "<同じエントリから取得した entityType>",
limit: 50
}
})
テーブルはレポート自体が保存した列で表示されます。列のリストを指定せず、ユーザーにどの列を表示したいか聞かないでください。レポートは既にそれを決めています。
ページネーション(複数ページ表示)には offset を使い、ユーザーがもっと多くの行を見たいと言った時は limit を増やしてください。
CRM の表示機能は組織ごとに有効・無効が設定されています。上記の crm_view_tool の呼び出しが以下のように返ってくることがあります:
CRM tool 'get_report_data' has no view — call it with crm_call_tool instead.
(CRM ツール「get_report_data」に表示がありません。crm_call_tool で呼び出してください。)
これは失敗ではなく正常な応答で、その組織では表示機能が有効になっていないということです。その呼び出し1回だけを crm_call_tool で同じ内容でやり直し、ステップ3に従ってテキスト形式で行を表示してください。crm_view_tool を再試行せず、このメッセージをユーザーに報告しないでください。
テーブルが表示された場合、ユーザーはすべての行を既に見ています。行をテキストで改めて列挙したり、形式を変えたり、要約したりしないでください。テーブルの脇に同じ内容が重複します。ユーザーが聞いたことに応じて言及するか、1行で確認してください。例:「ステージA の取引を実行しました:18行が条件に合致します。」
count はレポートが合致した総数で、このページの行数より多いことがあります。その場合は、ページが全体だと受け取られないよう、1行の確認文でそのことを伝えてください。
crm_call_tool にフォールバックした場合、行を読みやすいテキストテーブル形式で表示し、レポートの列の順序を保ってください。
レポートが何も該当しなかった場合:
「このレポートに合致するレコードがありません。レポートのフィルタ条件が予想より厳しい可能性があります。」
<!-- carta:plugin-version --> <carta-plugin>carta-crm:1.14.5</carta-plugin>
A saved report is a stored filter plus a stored column set over one entity: deals, contacts, companies, investors, fundraisings or fees. Running one renders its rows as a table, using the columns the report saved.
Reports are not searched by keyword. They are listed, chosen, then run — so Step 1 always precedes Step 2.
For an aggregated breakdown of deal flow by sector, source or owner rather than the rows
themselves, use the deal-flow-analytics skill instead.
Read the list through crm_call_tool, never crm_view_tool. list_reports has no view of
its own, and this step is for you rather than the user: you need each report's id and
entityType to run it.
crm_call_tool({ "name": "crm:list_reports", "arguments": {} })
Pass entityType to narrow the list when the user named one — "deal", "contact",
"company", "investor", "fundraising" or "fees":
crm_call_tool({ "name": "crm:list_reports", "arguments": { entityType: "deal" } })
Then branch on what came back:
Use the id and the entityType from the entry you matched in Step 1. Both are on that entry;
never guess either.
crm_view_tool({
"name": "crm:get_report_data",
"arguments": {
reportId: "<id from list_reports>",
entityType: "<entityType from the same entry>",
limit: 50
}
})
The report's own saved columns drive the table. Do not pass a column list, and do not ask the user which columns they want — the report already answers that.
Use offset to paginate, and raise limit when the user asks to see more rows.
CRM views are enabled per organisation. So the crm_view_tool call above may answer with:
CRM tool 'get_report_data' has no view — call it with crm_call_tool instead.
That is a normal response, not a failure — this organisation does not have the view enabled.
Retry that one call verbatim through crm_call_tool and present the rows as text per Step 3.
Do not retry crm_view_tool, and do not report the message to the user.
When the table rendered, the user already sees every row. Do NOT re-list, re-format, or summarise the rows as text — that duplicates the answer beside the table. Say what they asked, or acknowledge in one line, e.g. "Ran Stage A deals: 18 rows match."
count is the total the report matches, which can be larger than the rows on this page. When it
is, say so in that one line rather than implying the page is the whole report.
When you fell back to crm_call_tool, present the rows as a readable text table and keep the
report's column order.
If the report matched nothing:
"That report matched no records. Its filters may be narrower than you expect."
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。