• 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

log-call

プラグイン
HubSpot Sales
ソース
GitHub で見る ↗
説明

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 ツールセットの代替案を確認してください

フェーズ 1 — メッセージを解析する

ユーザーの入力から以下の情報を取り出します:

  • 相手先の名前またはメールアドレス
  • 内容概要 — 何を話したか
  • 結果 — 決定事項や成果
  • 次のアクション — 具体的なフォローアップ内容
  • 営業機会(ディール)のシグナル — ステージの変化、納期変更、優先度の変動、契約額の修正
  • 相手先ステータスのシグナル — 相手に繋がったか、関心を示しているか、タイミングが悪いか

相手先の名前がない場合は、「誰との通話ですか?」と質問してください。


フェーズ 2 — 相手先と営業機会を検索する

以下を同時に実行します:

  • get_organization_details を実行 → portalId、uiDomain を保存
  • search_crm_objects で相手先を検索、クエリ:名前またはメール、取得項目:名、姓、メール、職位、所属企業ID、リード評価、ライフサイクルステージ

複数の相手先がマッチした場合は、曖昧性解消リスト(名前、職位、企業)を表示して確認を待ちます。

その後、営業機会を検索(関連付け:相手先 = contactId でフィルタ)、取得項目:営業機会名、ステージ、パイプライン、金額、クローズ予定日、次のアクション、優先度。dealId、currentStage、dealPipeline、dealName、currentNextStep を保存します。


フェーズ 3 — 更新計画を作成する

発言内容に基づいて、メモ・営業機会・相手先全体の更新案を提示します。

ステージの確定 — ステージシグナルが検出された場合は、計画を作成する前に確定します。この処理は厳密です:いずれかのステップで確定に失敗した場合は、ステージ変更を含めず、ユーザーに質問してください。

  • 営業機会に pipeline 値がない場合は、ステージ変更を含めず「このチャンスのパイプラインを特定できませんでした — どのステージに移動させますか?」と質問してください。
  • get_properties を呼び出す:objectType: deals、propertyNames: ["dealstage", "pipeline"]。この呼び出しが失敗するか、データを返さない場合は、ステージ変更を含めず先に進まないでください。
  • dealstage のオプションを dealPipeline に属するもののみでフィルタします。マッチするステージがない場合は、ステージ変更を含めず、ユーザーに質問してください。
  • マッチするステージを displayOrder でソートします。ユーザーの言葉を実際のステージラベルと照合します。
  • ステージラベルが明確に適合しない場合、または複数が妥当な場合は、ステージ変更を含めず質問してください。推測は避けてください。
  • 単一の明確なマッチが見つかった場合のみ:proposedStageLabel(確認ブロック用)と proposedStageValue(フェーズ 5 の API 値)を保存します。

確認ブロックを 1 つだけ表示してください。確認されるまでは何も書き込みません。

この通話を [名前] のレコードに記録します:

📝 メモ:[2~3文の内容概要(結果と次のアクション含む)]

営業機会「[営業機会名]」:
  ステージ:[現在] → [提案ステージ名]       (通話で言及された場合)
  次のアクション:「[合意内容]」           (営業機会が存在する場合は常に表示)
  クローズ予定日:[現在] → [修正日]  (納期の話が出た場合)
  優先度:[低 / 中 / 高]              (緊急度が明確な場合)
  金額:[現在] → [修正額]              (契約額の話が出た場合)

相手先 [名前]:
  リード評価:[現在] → [新ステータス]    (例:接触済み、悪いタイミング)
  ライフサイクル:[現在] → [新ステージ]  (営業機会化した場合)

タスク:「[名] にフォローアップ — 次のアクション本文」期限 [日付] · 種類:通話 · 優先度:[中/高]

記録しますか?

当てはまらない行は削除してください。営業機会がない場合は、営業機会セクション全体を削除します。タスク行は必ず含めてください。


フェーズ 4 — メモを作成する

manage_crm_objects でメモを作成、createRequest:

  • hs_note_body: 📞 通話ログ — [本日の日付]\n\n[内容概要]\n\n[結果]\n[次のアクション]
  • hs_timestamp: 現在の ISO 8601 形式タイムスタンプ
  • 関連付け:相手先 → contactId、営業機会 → dealId(存在する場合)

フェーズ 5 — 営業機会と相手先のフィールドを更新する

フェーズ 5(営業機会)とフェーズ 6(相手先)を同時に実行してください。これらは独立した書き込みです。

営業機会が存在する場合は、manage_crm_objects で営業機会を更新、updateRequest、objectId: dealId。フィールド変更はすべて 1 回の呼び出しで実行します。

更新対象フィールド(変更されたもののみ):

シグナル フィールド 値
ステージ移動 dealstage フェーズ 3 で確定した proposedStageValue — フェーズ 3 で確定値が得られなかった場合は完全に削除
次のアクション決定 hs_next_step 自由入力 — 次のアクションが言及された場合は常に記入
納期変更 closedate ISO 8601 形式の日付
優先度シグナル hs_priority 低・中・高
契約額の話 amount 数値

ステージマッピングが曖昧な場合は、更新前に質問してください。推測は避けてください。


フェーズ 6 — 相手先のフィールドを更新する

相手先ステータスシグナルがある場合は、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 — フォローアップタスクを作成する

必ずタスクを作成してください。次のアクションが言及された場合はそこから事前入力、そうでなければ「[名] にフォローアップ」で 7 日後をデフォルトにします。

manage_crm_objects でタスクを作成、createRequest:

  • hs_task_subject: 「[名] にフォローアップ — [次のアクション(言及された場合)]」
  • hs_task_type: CALL
  • hs_task_status: NOT_STARTED
  • hs_task_priority: MEDIUM(営業機会の成約が迫っている / 緊急な場合は HIGH)
  • hs_timestamp: [期限の ISO 8601 形式日付]
  • hs_task_body: [通話の簡潔な背景情報]
  • 関連付け:相手先 → contactId、営業機会 → dealId(存在する場合)

フェーズ 8 — 確認

記録しました。
  ✓ メモを [名前] に保存
  ✓ 営業機会「[名]」— [更新フィールド一覧]
  ✓ 相手先ステータス → [更新された場合は新ステータス]
  ✓ タスク作成 — 期限 [日付]

相手先を表示:https://[uiDomain]/contacts/[portalId]/contact/[contactId]

エラー処理

  • 相手先が見つからない:詳細を確認してください。確認されるまで何も書き込みません。
  • 複数マッチした:曖昧性解消リストを表示して待ちます。
  • 営業機会が見つからない:メモを記録してタスクを作成します。営業機会更新フェーズはスキップします。
  • ステージマッピングが不明確:更新前に質問してください。推測は避けてください。
  • メモ保存失敗:作成したメモをチャットに表示して何も失われないようにします。
  • 部分的失敗:成功した更新と失敗した更新を報告します。失敗した更新の再試行を提案します。
原文(English)を表示

Log Call

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

Phase 1 — Parse the message

Extract from user input:

  • Contact name or email
  • Summary — what was discussed
  • Outcome — any decision or result
  • Next step — any specific follow-up action mentioned
  • Deal signals — stage movement, timeline change, priority shift, deal size revision
  • Contact status signals — did you reach them? Are they engaged? Bad timing?

If contact name is missing, ask: "Who was the call with?"


Phase 2 — Find the contact and deal

Run simultaneously:

  • get_organization_details → store portalId, uiDomain
  • search_crm_objects contacts, query: name or email, properties: firstname, lastname, email, jobtitle, associatedcompanyid, hs_lead_status, lifecyclestage

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


Phase 3 — Build the update plan

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.

  • If the deal has no pipeline value, omit the stage change and ask: "I couldn't determine the pipeline for this deal — which stage should I move it to?"
  • Call get_properties: objectType: deals, propertyNames: ["dealstage", "pipeline"]. If this call fails or returns no data, omit the stage change — do not proceed.
  • Filter dealstage options to only those belonging to dealPipeline. If no stages match, omit the stage change and ask the user.
  • Sort matching stages by displayOrder. Match the user's words against the actual stage labels.
  • If no stage label clearly fits, or more than one is plausible, omit the stage change and ask — never guess.
  • Only when a single unambiguous match is found: store 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.


Phase 4 — Write the note

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 timestamp
  • associations: contact → contactId, deal → dealId (if present)

Phase 5 — Update deal and contact fields

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


Phase 6 — Update contact fields

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.


Phase 7 — Create follow-up task

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: CALL
  • hs_task_status: NOT_STARTED
  • hs_task_priority: MEDIUM (or HIGH if deal is closing soon / urgent)
  • hs_timestamp: [due date ISO]
  • hs_task_body: [brief context from call]
  • associations: contact → contactId, deal → dealId (if present)

Phase 8 — Confirm

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]

Error handling

  • Contact not found: Ask to clarify. Do not write anything until confirmed.
  • Multiple matches: Show disambiguation list, wait.
  • No deal found: Log the note and create the task. Skip deal update phases.
  • Stage mapping unclear: Ask before updating — never guess.
  • Note save fails: Show the composed note in chat so nothing is lost.
  • Partial failure: Report which updates succeeded and which failed. Offer to retry failed ones.

原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。