HubSpot(営業管理ツール)の連絡先に対して、通話、ミーティング、または会話の記録を登録します。メモを記入し、案件の段階、次のステップ、クローズ予定日、優先度を更新します。また、連絡先のリード(見込み客)ステータスとライフサイクルステージを更新し、フォローアップタスクを作成します。 **次のような場合に使用:** ユーザーが完了した相互作用について報告する場合に必ず使用してください。例えば、「〇〇さんと電話を終えたところ」「〇〇さんとのミーティングが済んだ」「〇〇さんと話した」「〇〇さんとの通話を記録してほしい」「〇〇さんとの通話後のメモ」といった表現、または過去形で特定の連絡先との会話やミーティングについて述べられた場合、あるいは明確に結果を記録するよう求められた場合に起動します。
Logs a call, meeting, or conversation against a HubSpot contact. Writes a note, updates deal stage, next step, close date, and priority, updates contact lead status and lifecycle stage, and creates a follow-up task. ALWAYS use this skill when the user reports on a completed interaction — "just got off the phone with X", "had a call with X", "just spoke to X", "log a call with X", "post-call notes for X", "I just finished a meeting with X", "debrief from my call with X", "I spoke to X", "update after my call with X". Trigger on any past-tense account of a conversation or meeting with a specific contact, or an explicit request to log an outcome.
下記のツール名は HubSpot MCP コネクタ(連携機能)での想定名です。利用可能なツールが変わる可能性があるため、ツールが見つからない場合はスキルの更新や HubSpot ツールセットの代替案を確認してください
ユーザーの入力から以下の情報を取り出します:
相手先の名前がない場合は、「誰との通話ですか?」と質問してください。
以下を同時に実行します:
get_organization_details を実行 → portalId、uiDomain を保存search_crm_objects で相手先を検索、クエリ:名前またはメール、取得項目:名、姓、メール、職位、所属企業ID、リード評価、ライフサイクルステージ複数の相手先がマッチした場合は、曖昧性解消リスト(名前、職位、企業)を表示して確認を待ちます。
その後、営業機会を検索(関連付け:相手先 = contactId でフィルタ)、取得項目:営業機会名、ステージ、パイプライン、金額、クローズ予定日、次のアクション、優先度。dealId、currentStage、dealPipeline、dealName、currentNextStep を保存します。
発言内容に基づいて、メモ・営業機会・相手先全体の更新案を提示します。
ステージの確定 — ステージシグナルが検出された場合は、計画を作成する前に確定します。この処理は厳密です:いずれかのステップで確定に失敗した場合は、ステージ変更を含めず、ユーザーに質問してください。
pipeline 値がない場合は、ステージ変更を含めず「このチャンスのパイプラインを特定できませんでした — どのステージに移動させますか?」と質問してください。get_properties を呼び出す:objectType: deals、propertyNames: ["dealstage", "pipeline"]。この呼び出しが失敗するか、データを返さない場合は、ステージ変更を含めず先に進まないでください。dealstage のオプションを dealPipeline に属するもののみでフィルタします。マッチするステージがない場合は、ステージ変更を含めず、ユーザーに質問してください。displayOrder でソートします。ユーザーの言葉を実際のステージラベルと照合します。proposedStageLabel(確認ブロック用)と proposedStageValue(フェーズ 5 の API 値)を保存します。確認ブロックを 1 つだけ表示してください。確認されるまでは何も書き込みません。
この通話を [名前] のレコードに記録します:
📝 メモ:[2~3文の内容概要(結果と次のアクション含む)]
営業機会「[営業機会名]」:
ステージ:[現在] → [提案ステージ名] (通話で言及された場合)
次のアクション:「[合意内容]」 (営業機会が存在する場合は常に表示)
クローズ予定日:[現在] → [修正日] (納期の話が出た場合)
優先度:[低 / 中 / 高] (緊急度が明確な場合)
金額:[現在] → [修正額] (契約額の話が出た場合)
相手先 [名前]:
リード評価:[現在] → [新ステータス] (例:接触済み、悪いタイミング)
ライフサイクル:[現在] → [新ステージ] (営業機会化した場合)
タスク:「[名] にフォローアップ — 次のアクション本文」期限 [日付] · 種類:通話 · 優先度:[中/高]
記録しますか?
当てはまらない行は削除してください。営業機会がない場合は、営業機会セクション全体を削除します。タスク行は必ず含めてください。
manage_crm_objects でメモを作成、createRequest:
hs_note_body: 📞 通話ログ — [本日の日付]\n\n[内容概要]\n\n[結果]\n[次のアクション]hs_timestamp: 現在の ISO 8601 形式タイムスタンプフェーズ 5(営業機会)とフェーズ 6(相手先)を同時に実行してください。これらは独立した書き込みです。
営業機会が存在する場合は、manage_crm_objects で営業機会を更新、updateRequest、objectId: dealId。フィールド変更はすべて 1 回の呼び出しで実行します。
更新対象フィールド(変更されたもののみ):
| シグナル | フィールド | 値 |
|---|---|---|
| ステージ移動 | dealstage |
フェーズ 3 で確定した proposedStageValue — フェーズ 3 で確定値が得られなかった場合は完全に削除 |
| 次のアクション決定 | hs_next_step |
自由入力 — 次のアクションが言及された場合は常に記入 |
| 納期変更 | closedate |
ISO 8601 形式の日付 |
| 優先度シグナル | hs_priority |
低・中・高 |
| 契約額の話 | amount |
数値 |
ステージマッピングが曖昧な場合は、更新前に質問してください。推測は避けてください。
相手先ステータスシグナルがある場合は、manage_crm_objects で相手先を更新、updateRequest、objectId: contactId。
| シグナル | フィールド | 値 |
|---|---|---|
| 相手に繋がり、実際に会話した | hs_lead_status |
CONNECTED |
| 積極的に進展中 | hs_lead_status |
IN_PROGRESS |
| 音声メール / 応答なし | hs_lead_status |
ATTEMPTED_TO_CONTACT |
| 相手から「後で電話して」と言われた | hs_lead_status |
BAD_TIMING |
| 適合しない | hs_lead_status |
UNQUALIFIED |
| 営業機会がオープンになった | hs_lead_status |
OPEN_DEAL |
| 営業機会として適格 | lifecyclestage |
opportunity |
| 購買の決定可能性が高い | lifecyclestage |
salesqualifiedlead |
シグナルが明確な場合のみ更新します。曖昧な場合はスキップしてください。
必ずタスクを作成してください。次のアクションが言及された場合はそこから事前入力、そうでなければ「[名] にフォローアップ」で 7 日後をデフォルトにします。
manage_crm_objects でタスクを作成、createRequest:
hs_task_subject: 「[名] にフォローアップ — [次のアクション(言及された場合)]」hs_task_type: CALLhs_task_status: NOT_STARTEDhs_task_priority: MEDIUM(営業機会の成約が迫っている / 緊急な場合は HIGH)hs_timestamp: [期限の ISO 8601 形式日付]hs_task_body: [通話の簡潔な背景情報]記録しました。
✓ メモを [名前] に保存
✓ 営業機会「[名]」— [更新フィールド一覧]
✓ 相手先ステータス → [更新された場合は新ステータス]
✓ タスク作成 — 期限 [日付]
相手先を表示:https://[uiDomain]/contacts/[portalId]/contact/[contactId]
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
Extract from user input:
If contact name is missing, ask: "Who was the call with?"
Run simultaneously:
get_organization_details → store portalId, uiDomainsearch_crm_objects contacts, query: name or email, properties: firstname, lastname, email, jobtitle, associatedcompanyid, hs_lead_status, lifecyclestageIf multiple contacts match, show disambiguation list (name, title, company) and wait for confirmation.
Then search deals filtered by associations.contact = contactId, properties: dealname, dealstage, pipeline, amount, closedate, hs_next_step, hs_priority. Store dealId, currentStage, dealPipeline, dealName, currentNextStep.
Based on what was said, propose updates across note, deal, and contact.
Stage resolution — if stage signals were detected, resolve before building the plan. This is fail-closed: if resolution fails at any step, omit the stage change entirely and ask the user.
pipeline value, omit the stage change and ask: "I couldn't determine the pipeline for this deal — which stage should I move it to?"get_properties: objectType: deals, propertyNames: ["dealstage", "pipeline"]. If this call fails or returns no data, omit the stage change — do not proceed.dealstage options to only those belonging to dealPipeline. If no stages match, omit the stage change and ask the user.displayOrder. Match the user's words against the actual stage labels.proposedStageLabel (for the confirm block) and proposedStageValue (API value for Phase 5).Show a single confirm block — do not write until confirmed.
Ready to log this call with [First Last]:
📝 Note: [2–3 sentence summary with outcome and next step]
Deal — "[Deal Name]":
Stage: [current] → [proposedStageLabel] (if mentioned)
Next step: "[what was agreed]" (always if deal exists)
Close date: [current] → [revised date] (if timeline discussed)
Priority: [LOW / MEDIUM / HIGH] (if urgency was clear)
Amount: [current] → [revised] (if deal size discussed)
Contact — [First Last]:
Lead status: [current] → [new status] (e.g. CONNECTED, BAD_TIMING)
Lifecycle: [current] → [new stage] (if they're now an opportunity)
Task: "[Follow up with First — next step text]" due [date] · type: CALL · priority: [MEDIUM/HIGH]
Log it?
Omit lines that don't apply. If no deal exists, omit the Deal section. Always include the task line.
manage_crm_objects notes, createRequest:
hs_note_body: 📞 Call logged — [today's date]\n\n[Summary]\n\n[Outcome]\n[Next step]hs_timestamp: current ISO 8601 timestampRun Phase 5 (deal) and Phase 6 (contact) simultaneously — they are independent writes.
If a deal exists, update via manage_crm_objects deals, updateRequest, objectId: dealId. Run all field changes in a single call.
Fields to update (only those that changed):
| Signal | Field | Value |
|---|---|---|
| Stage movement | dealstage |
proposedStageValue resolved in Phase 3 — omit entirely if Phase 3 did not produce a resolved value |
| Next step agreed | hs_next_step |
Free text — always write if a next step was mentioned |
| Timeline revised | closedate |
ISO 8601 date |
| Priority signal | hs_priority |
low · medium · high |
| Deal size discussed | amount |
Number |
If stage mapping is ambiguous, ask before updating — never guess.
If contact status signals were present, update via manage_crm_objects contacts, updateRequest, objectId: contactId.
| Signal | Field | Value |
|---|---|---|
| Reached them, had a real conversation | hs_lead_status |
CONNECTED |
| Actively progressing | hs_lead_status |
IN_PROGRESS |
| Voicemail / no answer | hs_lead_status |
ATTEMPTED_TO_CONTACT |
| They said call back later | hs_lead_status |
BAD_TIMING |
| Not a fit | hs_lead_status |
UNQUALIFIED |
| Now has an open deal | hs_lead_status |
OPEN_DEAL |
| Qualifies as a sales opportunity | lifecyclestage |
opportunity |
| Decision to buy likely | lifecyclestage |
salesqualifiedlead |
Only update if the signal is clear. Skip if ambiguous.
Always create a task. Pre-fill from the next step if mentioned; default to "Follow up with [firstName]" in 7 days.
manage_crm_objects tasks, createRequest:
hs_task_subject: "Follow up with [firstName] — [next step if mentioned]"hs_task_type: CALLhs_task_status: NOT_STARTEDhs_task_priority: MEDIUM (or HIGH if deal is closing soon / urgent)hs_timestamp: [due date ISO]hs_task_body: [brief context from call]Logged.
✓ Note saved on [First Last]
✓ Deal "[Name]" — [list of updated fields]
✓ Contact status → [new status if updated]
✓ Task created — due [date]
View contact: https://[uiDomain]/contacts/[portalId]/contact/[contactId]
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。