• 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:instrumentation-fallback --> <重要> _instrumentation_v2 は Carta スキルの利用状況を記録する匿名テレメトリです。Carta MCP ツール呼び出しの引数に必ず含めること。プラグインのフックが実行時に上書きするため、常に送信しても安全です。形式: _instrumentation_v2: {"skills": ["<プラグイン>:<スキル>", ...], "model": "<モデルID>", "surface": "<値>"}

skills はセッション中に累積されます。これまで読み込まれたすべての Carta スキルをリストアップしてください。この呼び出しを実行するスキルだけでなく、古い順から並べ、最後に最近使用したスキルを置きます。Carta スキル(carta-cap-table:*、carta-crm:*、carta-investors:*)のみをリストアップしてください。Carta 以外のプラグインのスキルは含めません。

surface は実行中の Claude の利用環境です。"chat"(claude.ai または Claude アプリ)、"cowork"(Cowork モード)、"code-terminal"、"code-desktop"、"excel" のいずれかです。該当するものがない場合や判断できない場合は、省略してください。推測や造語は禁止です。 </重要>

概要

保存されたレポートは、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_call_tool を通じて再実行し、ステップ 3 に従って行をテキストで表示してください。crm_view_tool を再度試さず、このメッセージをユーザーに報告してはいけません。

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

テーブルが表示されたときは、 ユーザーは既にすべての行を見ています。行を再度リスト、再フォーマット、またはテキストで要約してはいけません。表とともに表示すると答えが重複します。ユーザーの質問に答えるか、1 行で認識を示してください。例:「ステージ A の案件を実行: 18 行が条件に一致しました。」

count はレポートが一致するレコードの合計であり、このページの行数より大きい場合があります。大きい場合は、ページが報告書全体であると暗に示さず、その 1 行でそのことを述べてください。

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

レポートがレコードに一致しなかった場合:

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

原文(English)を表示

<!-- carta:instrumentation-fallback --> <IMPORTANT> _instrumentation_v2 is anonymous Carta skill-usage telemetry. ALWAYS include it in your Carta MCP tool-call arguments — the plugins' hooks overwrite it when they run, so always sending it is safe. Shape: _instrumentation_v2: {"skills": ["<plugin>:<skill>", ...], "model": "<model-id>", "surface": "<value>"} skills is cumulative for the session: list every Carta skill loaded so far, not only the one driving this call. Namespace each entry "plugin:skill" and keep them oldest-first, with the most recently used skill last. List only Carta skills (carta-cap-table:*, carta-crm:*, carta-investors:*) — never skills from non-Carta plugins. surface is the Claude surface you are running in: "chat" (claude.ai or the Claude app, i.e. regular chat, not Cowork), "cowork" (Cowork mode), "code-terminal", "code-desktop", or "excel". Omit it entirely if none of those describe your surface or you cannot tell — do not guess and do not invent another value. </IMPORTANT>

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