• Projects
  • Service
  • About
  • branding.bz
  • Podcast
  • Tips
  • FAQ
  • Recruit
  • Download
  • Contact
  • branding.bz(ブランド構築SaaS)
  • DESIGN NOW(デザインメディア)
  • X
  • LinkedIn
  • Spotify
  • Facebook

213-0011 神奈川県川崎市高津区久本3-6-7-303

© 2026 ID INC. All rights reserved

claude-skills/スキル
SKILLKnowledge Workproductivity

search-reports

プラグイン
carta-crm
ソース
GitHub で見る ↗
説明

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".

ユースケース
  • レポートを実行して表示するとき
  • 保存されたレポートの内容を確認するとき
  • レポート一覧から選択して開くとき
  • CRM内のレポートをテーブル形式で見たいとき
本文(日本語訳)

<!-- carta:plugin-version --> <carta-plugin>carta-crm:1.14.2</carta-plugin>

概要

保存されたレポートは、1つのエンティティ(取引、連絡先、企業、投資家、資金調達、手数料のいずれか)に対して、フィルタ条件と表示列をセットで保存したものです。レポートを実行するとその行がテーブル形式で表示され、保存されている列が使用されます。

レポートはキーワード検索の対象ではありません。リストから選択して実行する流れになるため、ステップ1は必ずステップ2の前に行われます。

取引のフローを業界別、出所別、担当者別に集計した内訳を見たい場合は、代わりに deal-flow-analytics スキルを使用してください。

ステップ1 — レポートを探す

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つだけ → ステップ2へ進む
  • 該当する可能性があるレポートが複数 → 推測してはいけません。レポート名を列挙してユーザーにどれかを選んでもらってください。間違ったレポートを実行すると、誰も聞いていない質問に権威的に答えることになります。
  • 該当するレポートがない → その旨を伝え、実際にどんなレポートがあるのかを示してください。存在しないレポートやレポートIDを作り出してはいけません。
  • ユーザーがレポートの存在確認をしたいだけ → このリストから答えて終了します。表示するものはありません。

ステップ2 — レポートを実行する

ステップ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 を再試行せず、このメッセージをユーザーに報告しないでください。

ステップ3 — 結果を表示する

テーブルが表示された場合、ユーザーはすべての行を既に見ています。行をテキストで改めて列挙したり、形式を変えたり、要約したりしないでください。テーブルの脇に同じ内容が重複します。ユーザーが聞いたことに応じて言及するか、1行で確認してください。例:「ステージA の取引を実行しました:18行が条件に合致します。」

count はレポートが合致した総数で、このページの行数より多いことがあります。その場合は、ページが全体だと受け取られないよう、1行の確認文でそのことを伝えてください。

crm_call_tool にフォールバックした場合、行を読みやすいテキストテーブル形式で表示し、レポートの列の順序を保ってください。

レポートが何も該当しなかった場合:

「このレポートに合致するレコードがありません。レポートのフィルタ条件が予想より厳しい可能性があります。」

原文(English)を表示

<!-- carta:plugin-version --> <carta-plugin>carta-crm:1.14.5</carta-plugin>

Overview

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.

Step 1 — Find the report

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:

  • One clear match on name → Step 2.
  • Several plausible matches → do NOT guess. Name them and ask which one. Running the wrong report answers a question nobody asked, and looks authoritative doing it.
  • No match → say so, and say what the reports are actually called. Never invent a report or a report id.
  • The user only asked what reports exist → answer from this list and stop. There is nothing to render.

Step 2 — Run the report

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.

If the view is unavailable

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.

Step 3 — Present results

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 による自動翻訳です。