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 で連絡先を検索、クエリは名前またはメール、取得項目は firstname、lastname、email、jobtitle、associatedcompanyid、hs_lead_status、lifecyclestage複数の連絡先がマッチした場合は、絞込みリスト(名前、役職、企業名)を表示して確認待ち。
その後、associations.contact = contactId でフィルタリングした取引案件を検索、取得項目は dealname、dealstage、pipeline、amount、closedate、hs_next_step、hs_priority。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 notes、createRequest:
hs_note_body:📞 通話ログ記録 — [本日の日付]\n\n[要約]\n\n[結果]\n[次のアクション]hs_timestamp:現在時刻(ISO 8601形式)フェーズ5(取引案件)とフェーズ6(連絡先)を同時に実行します。これらは独立した書き込みです。
取引案件が存在する場合、manage_crm_objects deals、updateRequest、objectId: dealId で更新します。すべてのフィールド変更を1回の呼び出しで実行します。
更新対象フィールド(変更があったもののみ):
| シグナル | フィールド | 値 |
|---|---|---|
| ステージの移動 | dealstage |
フェーズ3で解決した proposedStageValue — フェーズ3で解決値が得られなかった場合は完全に省略 |
| 次ステップの合意 | hs_next_step |
自由入力 — 次のアクションが話に出た場合は常に記入 |
| 期限の変更 | closedate |
ISO 8601形式の日付 |
| 優先度シグナル | hs_priority |
low · medium · high |
| 取引金額の変更 | amount |
数値 |
ステージの判定が曖昧な場合は、更新前に確認してください。推測は決してしません。
相手の状態シグナルがある場合、manage_crm_objects contacts、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 tasks、createRequest:
hs_task_subject:「[名前] にフォローアップ — [話に出た次のアクション]」hs_task_type:CALLhs_task_status:NOT_STARTEDhs_task_priority:MEDIUM(取引案件がまもなく終了予定、または緊急の場合は HIGH)hs_timestamp:[期限 ISO形式]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 による自動翻訳です。