営業電話や会議の前に、必要な情報をまとめた簡潔な準備資料を作成します。CRM(顧客管理システム)の履歴、進行中の案件、最近のメモ、メールのやり取り、企業ニュースを集めます。対象の連絡先がHubSpotにまだ登録されていない場合は、カレンダーとメールから情報を取得します。 **次のような場合に使用:** - 「〇〇との電話の前に準備してほしい」 - 「△△会社との会議があります」 - 「〇〇さんについて教えてほしい」 - 「電話前に〇〇について何を知っているか確認したい」 - 「〇〇について調べてほしい」 - 「今日は誰と会議ですか」 - 「〇〇の準備をしています」 - または単に人名と「電話」「会議」という言葉の組み合わせ 電話や会議の直前には必ずこのスキルを使用してください。ユーザーが電話に出ようとしているのに準備を実行していない場合は、こちらから積極的に提案してください。
Prepares a focused brief before a sales call or meeting. Pulls CRM history, open deals, recent notes, email threads, and company news. Falls back to calendar and email if the contact isn't in HubSpot yet. ALWAYS use this skill before a call or meeting — "prep me for my call with X", "I have a meeting with [company]", "brief me on [name]", "what do I know about X before my call", "research X", "who am I meeting with today", "prepping for X", or just a name paired with "call" or "meeting". Trigger proactively when the user seems about to get on a call and hasn't run prep.
以下に記載するツール名は、HubSpot MCP コネクタ(連携機能)の標準的な名称です。ツール名が見当たらない場合は、スキルの更新を確認するか、HubSpot ツールセット内の別のツールを探してください。利用可能なツールは変更される場合があります。
ユーザーが相手の名前または会社名を一切提供していない場合は、以下のように聞いてください:
「誰との通話ですか?」
他の情報はまだ聞かないでください。名前が得られたら、次へ進みます。
以下を同時に実行:
get_organization_details → portalId(ポータルID)と uiDomain(ドメイン)を保存search_crm_objects:
複数の候補が見つかった場合 → 選択肢の一覧を表示して確認を待ちます。contactId(連絡先ID)と companyId(企業ID)を保存した上で、その contactId に紐付いた案件(deals)を検索して dealId(案件ID)を保存します。
HubSpot に見つからない場合、以下の連携アプリを同時に検索:
連携アプリで見つかった場合は、externalContact: true として記録してください。利用可能なデータで進みます。フェーズ 2A はスキップされます。
どのアプリにも見つからない場合は、ここで中断: 「[名前]を HubSpot または接続されたアプリで見つけられませんでした。名前をもう一度確認するか、HubSpot に追加してから試してください。」
以下を同時に実行:
externalContact: true の場合はスキップ)get_crm_objects で contacts を取得(objectId: contactId、associations: deals、notes、tasks)。以下を取得:
その相手のメールアドレスに関連するスレッドを検索(直近 3~5 件)。最後の返信者、トーン、未回答の質問、件名の背景情報を記録。
次の 7 日間の会議の中から、その相手のメールアドレスが参加者として含まれているものを検索。時間、参加者、議題を抽出。
利用可能な Web 検索ツールを使って 「[企業名] ニュース [現在の年]」 と 「[企業名]」 を検索。具体的な情報 3~4 件を収集。Web 検索ツールがない場合は、無言でスキップしてください。
調査後、ユーザーの元のメッセージから不足している情報を確認:
| 不足情報 | 質問内容 |
|---|---|
| 通話の種類 | 「この通話はどのタイプですか?初回面談、デモ、フォローアップ、経営層向けレビュー(定期的な進捗確認)など」 |
| 目的・カバーしたい内容 | 「この通話でどんなことをカバーしたいですか?」 |
| 望ましい成果 | 「理想的な成果は何ですか?」 |
本当に不足していて、準備資料に役立つ項目だけを聞いてください。CRM の情報から通話の種類が明らかな場合(例:案件が「デモ」ステージにある)は、それを推測して聞かないでください。調査内容が十分に充実していれば、このフェーズ全体をスキップして次に進んでも構いません。
もし質問する場合は、フォーム形式ではなく、会話的なトーンで 1 メッセージにまとめてください。見つけた情報を参照すると効果的です:
「[名前]さんを見つけました。現在[ステージ]にいて、[金額]の案件が進行中。最後の接触は[X 日前]です。準備資料を作成する前に、いくつか確認したいことがあります:
- この通話はどのタイプですか?
- どういう結果を期待していますか?」
回答を以下として保存:callType(通話種別)、purpose(目的)、desiredOutcome(望ましい成果)。
| 信号 | 見方 |
|---|---|
| 最近の返信、案件が進展、活発な関わり | ポジティブ |
| ある程度の活動はあるが、勢いが不明 | ニュートラル |
| 3 週間以上返信なし、案件が 30 日以上停滞、関心が薄い様子 | 要注意 |
ブロッカー(進める上での障害):メモやタスク、メールから読み取れる具体的な支障
ハードル(やや柔らかい摩擦):評価待ち、意思決定者の変更、タイミングの問題など
案件の背景:ステージ、金額、クローズ予定日、次の確約済みアクション
callType と desiredOutcome が提供されていれば、トーキングポイント(話すべき内容)と次のステップをそれに合わせます。
## 通話準備:[名前] @ [企業名]
[日付] · [通話種別] · 目標:[望ましい成果]
### 概要
- 職位:[職位]
- 案件:[案件名] · [ステージ] · [金額] · [クローズ予定日]に完了予定
- 見方:[ポジティブ / ニュートラル / 要注意] — [理由を 1 文で]
- 最後の接触:[X 日前、メール / 通話 / 会議で連絡 — 内容]
### 未解決事項
- [ブロッカーまたは未解決の質問]
- [まだ処理されていない確約]
### 企業の背景情報
- [具体的なニュース — 出典と日付]
- [関連する 2 番目の情報]
### トーキングポイント
1. [個人的なオープニング — 具体的なメール、ニュース、メモを参照]
2. [主要なブロッカーまたは未解決事項に対応]
3. [具体的な次のステップと期限]
### 推奨される次のステップ
[1 つの具体的で実行可能なクローズ — 望ましい成果に紐付けたもの]
データが不足している場合は、セクションを cleanly に削除してください。プレースホルダーは入れないでください。
externalContact: true の場合はスキップして、フェーズ 7 に進みます。
manage_crm_objects:objectType: notes、createRequest:
確認メッセージ: 「通話準備を保存しました。連絡先を確認:https://[uiDomain]/contacts/[portalId]/contact/[contactId]」
externalContact: true の場合、準備資料の後に以下を表示:
[名前]さんはまだ HubSpot に登録されていません。 追加しますか?名前、メールアドレス、企業名で連絡先を作成します。
はい、追加する·今はいい
「はい、追加する」を選択時:manage_crm_objects の createRequest で objectType: contacts を指定し、フェーズ 1 で取得したフィールドを含めます。新しいレコードへのリンク付きで確認してください。
Tool names below are expected names for the HubSpot MCP connector. If a named tool isn't available, check for updates to the skill and/or alternates in the HubSpot toolset as available tools may change
If the user gave no name or company at all, ask only:
"Who's the call with?"
Do not ask for anything else yet. Once you have a name, proceed.
Run simultaneously:
get_organization_details → store portalId, uiDomainsearch_crm_objects: objectType: contacts, query: name or email, properties: firstname, lastname, email, jobtitle, hs_lead_status, associatedcompanyid, notes_last_contacted, hs_email_last_send_date, createdateMultiple matches → show disambiguation list, wait for confirmation. Store contactId, companyId. Then search deals filtered by associations.contact = contactId → store dealId.
If not found in HubSpot, search available connectors simultaneously:
If found in a connector, store as externalContact: true. Proceed with available data — Phase 2A will be skipped.
If no connector finds the contact either, stop: "I couldn't find [name] in HubSpot or your connected apps. Double-check the name or add them to HubSpot first."
Run simultaneously:
externalContact: true)get_crm_objects contacts, objectId: contactId, associations: deals, notes, tasks. Retrieve:
Search threads for contact's email, last 3–5. Note: last reply direction, tone, unanswered questions, subject context.
Find meeting in next 7 days with contact's email as attendee. Extract: time, attendees, agenda.
Using an available web search tool, search "[company name] news [current year]" and "[company name]". Capture 3–4 concrete findings. Skip silently if no web search tool is available.
After research, check what's missing from the user's original message:
| Missing | Ask |
|---|---|
| Call type | "What type of call is this — discovery, demo, follow-up, QBR?" |
| Purpose / what they want to cover | "What are you trying to cover on this call?" |
| Desired outcome | "What would a good outcome look like?" |
Ask only for what's genuinely missing and useful for the brief. If CRM context makes the call type obvious (e.g. deal is at Demo stage), infer it — don't ask. If research is rich enough to write a strong brief, skip this phase entirely and proceed.
If you do ask, do it in one message, conversationally — not as a form. Reference what you found:
"Found [Name] — they're at [stage] with an open deal worth [amount], last contacted [X days ago]. Before I write up the brief:
- What type of call is this?
- What are you hoping to walk away with?"
Store responses as: callType, purpose, desiredOutcome.
| Signal | Sentiment |
|---|---|
| Recent reply, deal advancing, active engagement | Positive |
| Some activity, no clear momentum | Neutral |
| No reply 3+ weeks, deal stuck 30+ days, disengaged tone | At-risk |
Blockers — concrete deal-stoppers from notes, tasks, email
Hurdles — softer friction (evaluation pending, champion change, timing)
Deal context — stage, value, close date, next committed action
Tailor talking points and next step to callType and desiredOutcome if provided.
## Call Prep: [First Last] @ [Company]
[Date] · [Call type] · Goal: [desiredOutcome]
### Quick snapshot
- Role: [Job title]
- Deal: [Deal name] · [Stage] · [Value] · closes [Close date]
- Sentiment: [Positive / Neutral / At-risk] — [one sentence reason]
- Last contact: [X days ago via email/call/meeting — topic]
### Open items
- [Blocker or outstanding question]
- [Any commitment not yet closed out]
### Company context
- [Specific news item — source and date]
- [Second relevant finding]
### Talking points
1. [Personal opener — reference a specific email, news item, or note]
2. [Address the main blocker or open item]
3. [Named next step with a timeframe]
### Suggested next step
[One specific actionable close — tied to desiredOutcome]
Omit sections cleanly if data is missing — no placeholders.
Skip if externalContact: true — go to Phase 7.
manage_crm_objects: objectType: notes, createRequest:
Confirm: "Call prep saved. View contact: https://[uiDomain]/contacts/[portalId]/contact/[contactId]"
If externalContact: true, after the brief:
[Name] isn't in HubSpot yet. Want me to add them? I'll create a contact with their name, email, and company.
Yes, add to HubSpot·Not now
On "Yes": manage_crm_objects createRequest, objectType: contacts, with fields from Phase 1. Confirm with a link to the new record.
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。