• 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/スキル
SKILLOfficialproductivity

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

ユースケース
  • Carta CRMのレポートを実行したい
  • 保存されたレポートのデータを表示したい
  • 利用可能なレポート一覧を確認したい
  • 特定のレポートを開きたい
本文(日本語訳)

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

概要

保存済みレポートは、1つのエンティティ(案件、連絡先、企業、投資家、資金調達、手数料のいずれか)に対して、条件絞り込みと表示列をセットにして保存したものです。実行すると、保存された列を使って、該当するデータが表形式で表示されます。

レポートはキーワード検索の対象ではなく、リストから選んで実行する仕組みになっています。そのため、ステップ1が常に先に必要です。

案件フローを業種・情報源・担当者ごとに集計・分析して表示したい場合は、代わりに deal-flow-analytics スキルを使用してください。

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

必ず crm_call_tool を使用してください。crm_view_tool は使わないでください。 list_reports には独立した表示画面がなく、このステップはあなた(AIアシスタント)の作業です。レポートを実行するには 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:plugin-version --> <carta-plugin>carta-crm:1.15.0</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 による自動翻訳です。