关于 communication-history
communication-history 是使用 HubSpot CLI 查看 CRM 活动及通话或会议转录的技能,可帮助 CRM 用户整理时间线、筛选活动记录,并结合相关记录准备通话简报。
主要功能
- 01按 CRM 记录列出活动
- 02按活动类型和日期筛选
- 03生成精简活动时间线
- 04获取通话和会议转录
- 05限制转录增强字段
适用场景
- 01查看联系人的近期互动
- 02为销售通话准备简报
- 03收集通话转录以供审阅
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ hubspot/ agent-cli-skills --skill communication-history安装后在 Claude Code 中输入/communication-history确认已加载。
详细介绍
先阅读 bulk-operations/SKILL.md——JSONL 管道传输、批量读取和 jq 重塑模式(resources/json-patterns.md)都适用。hubspot activities list --help 是事实依据。
输出格式
activities list 按时间从新到旧排序,每条活动返回一行扁平记录:{id, type, timestamp, lastModified, title, body, status, owner_id}。timestamp 和 lastModified 为 ISO 8601 格式;type 为 CALL|EMAIL|NOTE|MEETING|TASK。这与底层对象上的原始 hs_call_* / hs_timestamp(Unix 毫秒)不同——如有需要,可使用 hubspot objects get --type calls 获取。
进行特定时间点的筛选时,应比较 lastModified(hs_lastmodifieddate,即正文最后编辑时间),而不是 timestamp(活动创建时间),否则会包含截止时间之后编辑的内容。
某条记录的所有活动
传入 --contact、--deal、--company、--ticket 中的一个(且只能一个);对于其他对象类型,可使用 --type <object_type> --record <id>。使用 --activity-type CALL|EMAIL|NOTE|MEETING|TASK 按活动类型筛选,使用 --limit N 获取最近的 N 条。注意,--type 现在是对象类型标志,不再是活动类型筛选标志:
hubspot activities list --contact 73235
hubspot activities list --deal 67890 --activity-type CALL
hubspot activities list --type subscriptions --record 45123 --activity-type NOTE
hubspot activities list --contact 73235 --limit 10
客户端日期筛选
ISO 8601 字符串可以按字典序比较。
CUTOFF=$(date -v-30d +%Y-%m-%dT%H:%M:%SZ) # macOS
# CUTOFF=$(date -u -d '30 days ago' +%Y-%m-%dT%H:%M:%SZ) # Linux
hubspot activities list --contact 73235 \
| jq -c --arg cutoff "$CUTOFF" 'select(.timestamp > $cutoff)'
精简时间线
hubspot activities list --contact 73235 --limit 20 \
| jq -r '"\(.timestamp[0:10]) \(.type) \(.title)"'
通话前简报
通过管道执行四条命令:联系人 + 公司 + 未结交易 + 活动。使用从标准输入读取的批量 objects get——切勿使用 xargs -I{}(参见 bulk-operations/SKILL.md)。
cid=73235
echo "=== 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)"'
转录文本
通过活动 ID(从 hubspot activities list 获取)获取单条通话或会议的转录文本。默认类型为 CALL;对于会议,传入 --activity-type MEETING;使用 --fields 限制要获取的补充字段:
hubspot activities transcript get 54321
hubspot activities transcript get 54321 --activity-type MEETING
hubspot activities transcript get 54321 --fields recordingUrl,aiSummary
将所有通话转录文本转储到文件:
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
输出格式:{"transcriptId":"...","activityId":...,"transcriptSource":"...","transcriptStatus":"READY","numUtterances":3,"recordingUrl":"...","aiSummary":"...","transcriptionProvider":null,"utterances":[...],"createdAt":"...","updatedAt":"..."}。transcriptStatus、numUtterances、recordingUrl、aiSummary 和 transcriptionProvider 是五个补充字段——仅在已补充信息的转录文本中出现,且可通过 --fields 限制要获取的字段。utterances 数组包含语音内容;如果没有录制或上传转录文本,则该数组为空。
删除转录文本不可撤销:先运行 hubspot activities transcript delete <id> --dry-run,然后使用 --digest/--confirm 重新运行(根据预览行确认目标名称)。
限制
--limit默认值为 100,且没有--after游标——无法对较长的历史记录进行分页。body可能很长;浏览时请使用精简时间线。