Communication History

hubspot/agent-cli-skills/communication-history

作者 hubspota8eea0880838無授權條款27 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫7 天前更新

Retrieve activity history (calls, emails, notes, meetings, tasks) for a CRM record and assemble pre-call briefs.

AI 產生的概覽

透過 hubspot CLI 取得 CRM 活動歷史與通話逐字稿,並整理通話前簡報。

功能
此技能說明如何使用 hubspot CLI 抓取 HubSpot CRM 記錄的活動歷史(通話、電子郵件、備註、會議、任務),包含用戶端日期篩選與精簡時間軸輸出。它也示範如何整合聯絡人、公司、未結交易與近期活動來產生通話前簡報,以及如何取得或批次匯出通話與會議逐字稿。它僅為說明文件,未附帶指令碼。
適用情境
適用於通話前研究、會議準備,或檢視某筆 CRM 記錄的近期的溝通歷史。也適合需要取得或匯出聯絡人、交易、公司或工單的通話逐字稿時使用。
執行需求
需要 hubspot CLI(含 activities、objects 與 associations 指令)、jq 以及 POSIX shell;文件引用了 bulk-operations/SKILL.md 與 resources/json-patterns.md。隱含需要連線至 HubSpot 的網路存取與相應帳號憑證。未附帶指令碼。

Read bulk-operations/SKILL.md first — JSONL piping, batch read, and jq reshape patterns (resources/json-patterns.md) apply. hubspot activities list --help is the source of truth.

Output shape

activities list returns one flat row per activity, sorted newest-first: {id, type, timestamp, lastModified, title, body, status, owner_id}. timestamp and lastModified are ISO 8601; type is CALL|EMAIL|NOTE|MEETING|TASK. Different from the raw hs_call_* / hs_timestamp (Unix ms) on the underlying objects — fetch those with hubspot objects get --type calls if needed.

For point-in-time filtering compare lastModified (hs_lastmodifieddate, when the body was last edited), not timestamp (engagement creation time) — otherwise you include content edited after your cutoff.

All activity for a record

Pass exactly one of --contact, --deal, --company, --ticket (or --type <object_type> --record <id> for any other object type). Use --activity-type CALL|EMAIL|NOTE|MEETING|TASK to filter by activity kind, --limit N for the most recent N. Note --type is now the object-type flag, not the activity-kind filter:

bash
hubspot activities list --contact 73235hubspot activities list --deal 67890 --activity-type CALLhubspot activities list --type subscriptions --record 45123 --activity-type NOTEhubspot activities list --contact 73235 --limit 10

Client-side date filter

ISO 8601 strings compare lexicographically.

bash
CUTOFF=$(date -v-30d +%Y-%m-%dT%H:%M:%SZ)          # macOS# CUTOFF=$(date -u -d '30 days ago' +%Y-%m-%dT%H:%M:%SZ)  # Linuxhubspot activities list --contact 73235 \| jq -c --arg cutoff "$CUTOFF" 'select(.timestamp > $cutoff)'

Compact timeline

bash
hubspot activities list --contact 73235 --limit 20 \| jq -r '"\(.timestamp[0:10])  \(.type)  \(.title)"'

Pre-call brief

Four piped commands: contact + company + open deals + activity. Use batch objects get over stdin — never xargs -I{} (see bulk-operations/SKILL.md).

bash
cid=73235echo "=== Contact ==="hubspot objects get --type contacts $cid \  --properties email,firstname,lastname,phone,jobtitle,lifecyclestage --format table
echo "=== Company ==="hubspot associations list --from contacts:$cid --to companies \| jq -c '{id}' \| hubspot objects get --type companies --properties name,domain,industry,annualrevenue --format table
echo "=== Open Deals ==="hubspot associations list --from contacts:$cid --to deals \| jq -c '{id}' \| hubspot objects get --type deals --properties dealname,amount,dealstage,closedate,hs_is_closed \| jq -c 'select(.properties.hs_is_closed != "true")'
echo "=== Recent Activity ==="hubspot activities list --contact $cid --limit 10 \| jq -r '"\(.timestamp[0:10])  \(.type)  \(.title)"'

Transcripts

Fetch the transcript for a single call or meeting by its activity ID (from hubspot activities list). Defaults to CALL; pass --activity-type MEETING for a meeting, and --fields to limit which enrichment fields are fetched:

bash
hubspot activities transcript get 54321hubspot activities transcript get 54321 --activity-type MEETINGhubspot activities transcript get 54321 --fields recordingUrl,aiSummary

Dump all call transcripts to a file:

bash
hubspot objects list --type calls --limit 100 --properties hs_call_title \| jq -r '.id' \| while read -r call_id; do    hubspot activities transcript get "$call_id"  done > /tmp/transcripts.jsonl

Output shape: {"transcriptId":"...","activityId":...,"transcriptSource":"...","transcriptStatus":"READY","numUtterances":3,"recordingUrl":"...","aiSummary":"...","transcriptionProvider":null,"utterances":[...],"createdAt":"...","updatedAt":"..."}. transcriptStatus, numUtterances, recordingUrl, aiSummary, and transcriptionProvider are the five enrichment fields — present only on enriched transcripts, and --fields limits which are fetched. The utterances array holds the speech content; empty if no transcript was recorded or uploaded.

Deleting a transcript is irreversible: hubspot activities transcript delete <id> --dry-run first, then re-run with --digest/--confirm (confirm the target name from the preview line).

Constraints

  • --limit defaults to 100 and there is no --after cursor — long histories can't be paged. body can be long; use the compact timeline for skimming.

來源與署名

來源:hubspot/agent-cli-skills位於communication-history提交a8eea08

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架