Ticket Resolution

hubspot/agent-cli-skills/ticket-resolution

作者 hubspota8eea0880838无许可证27 个星标收录于 2026年10月8日更新于 2026年10月8日仓库7天前更新

Create, triage, advance, and close HubSpot support tickets — pipeline discovery, contact/company association, priority queues, bulk stage moves, resolution close-out.

AI 生成的概览

管理 HubSpot 支持工单:发现管道、创建、分诊、批量推进阶段以及解决关闭。

功能
指导智能体通过 hubspot 命令行工具执行 HubSpot 支持工单操作:发现门户专属的管道与阶段、列出允许的枚举选项值、创建工单并关联联系人/公司、执行分诊查询、批量推进阶段、记录解决备注,以及使用解决值关闭工单。它在 HubSpot 门户中生成工单记录、关联关系以及阶段或解决状态更新。它还涵盖从 JSONL 队列批量导入,以及针对不可逆更新的 dry-run/digest/confirm 安全流程。
适用场景
适用于处理 HubSpot 支持工单的场景:创建或批量导入工单、分诊未关闭或未分配的工单、重新分配负责人、在管道阶段之间移动工单,或使用解决值关闭工单。它假定 hubspot 命令行工具以及所引用的 bulk-operations 和 sales-execution 技能可用。
运行要求
需要已通过身份验证并可访问 HubSpot 门户的 hubspot 命令行工具,以及用于 JSONL 数据重塑的 jq。它引用配套技能(bulk-operations、sales-execution),自身不附带脚本。

Read bulk-operations/SKILL.md first — JSONL piping, batch read, pagination, dry-run/digest/confirm, and hubspot history recovery live there. hubspot <command> --help is authoritative. Tickets use the tickets object type (plural, e.g. tickets:45123).

1. Discover pipeline + stages (portal-specific, run every session)

Stage IDs differ in every portal — never hard-code them.

bash
hubspot pipelines list --type tickets --format tablehubspot pipelines stages --type tickets --pipeline <pipeline_id> --format table

The stage table prints each stage's ID and Label ("New", "Waiting on contact", "Closed", etc.). pipelines list/get also return each pipeline's full stages array in jsonl/json, so one call is enough to map a hs_pipeline_stage value to its label.

2. Verify enum option values for THIS portal

hs_ticket_priority, hs_ticket_category, and hs_resolution are all enumeration properties — option values are portal-configurable. List the allowed options directly with properties options-list (the old objects update … --property hs_resolution=__probe__ probe no longer works — updates are digest-gated now). properties get returns the same options array inline if you want values and labels together:

bash
# List the allowed option values for each enumhubspot properties options-list --type tickets hs_ticket_priority | jq -r '.value'hubspot properties options-list --type tickets hs_ticket_category | jq -r '.value'hubspot properties options-list --type tickets hs_resolution      | jq -r '.value'# each row: {"value":"ISSUE_FIXED","label":"Issue fixed","displayOrder":0,"hidden":false}
# Fallback — read values already in use on live records:hubspot objects list --type tickets --limit 10 \  --properties hs_ticket_priority,hs_ticket_category,hs_resolution

Do NOT assume HubSpot defaults — read the portal.

3. Create a ticket and associate it

subject is the only practically-required property. Skipping hs_pipeline/hs_pipeline_stage lands the ticket in the default pipeline's first stage.

bash
hubspot objects create --type tickets \  --property subject="Login error on mobile app" \  --property content="User reports 401 since v3.2 release." \  --property hs_pipeline=<pipeline_id> \  --property hs_pipeline_stage=<new_stage_id> \  --property hs_ticket_priority=<value_from_step_2> \  --property hs_ticket_category=<value_from_step_2># Capture the "id" from the output JSON.
hubspot associations create --from tickets:<ticket_id> --to contacts:<contact_id>hubspot associations create --from tickets:<ticket_id> --to companies:<company_id>

Bulk intake from a JSONL queue (see bulk-operations/resources/json-patterns.md for reshape patterns):

bash
cat support_requests.jsonl \| jq -c '{properties:{subject:.subject, content:.description,    hs_pipeline:"<pipeline_id>", hs_pipeline_stage:"<new_stage_id>",    hs_ticket_priority:"<priority>", hs_ticket_category:"<category>"}}' \| hubspot objects create --type tickets

4. Triage queries

bash
# Open tickets by priorityhubspot objects search --type tickets \  --filter "hs_pipeline_stage=<open_stage_id> AND hs_ticket_priority=HIGH" \  --properties subject,hubspot_owner_id,createdate
# Unassignedhubspot objects search --type tickets \  --filter "!hubspot_owner_id AND hs_pipeline_stage=<open_stage_id>" \  --properties subject,hs_ticket_priority,createdate

Filter by owner with hubspot_owner_id=<id> (find IDs via hubspot owners list --format table).

5. Advance tickets through stages (bulk update from search)

bash
hubspot objects search --type tickets \  --filter "hs_ticket_category=BILLING_ISSUE AND hs_pipeline_stage=<new_stage_id>" \| jq -c '{id, properties:{hs_pipeline_stage:"<waiting_stage_id>"}}' \| hubspot objects update --type tickets --dry-run

objects update is irreversible, so re-pipe the same search with the --digest/--confirm lifted from the preview line — required at every row count, not just >100 (confirm = the row count for a batch). See the --digest/--confirm flow in bulk-operations/SKILL.md ("Safe destructive workflow"). Reassign in bulk works identically with {hubspot_owner_id:"<new>"}.

6. Log a resolution note

Activity creation lives in sales-execution/SKILL.md (notes/calls/meetings/tasks). After creating the note there, link it: hubspot associations create --from notes:<note_id> --to tickets:<ticket_id>.

7. Close the ticket

hs_resolution is an enumeration — pass an allowed option value from Step 2, not free text. HubSpot then computes hs_is_closed=true, closed_date, and time_to_close.

objects update is irreversible — dry-run first, then re-run with the digest and --confirm <ticket_id>:

bash
hubspot objects update --type tickets <ticket_id> \  --property hs_pipeline_stage=<closed_stage_id> \  --property hs_resolution=<allowed_resolution_value> --dry-runhubspot objects update --type tickets <ticket_id> \  --property hs_pipeline_stage=<closed_stage_id> \  --property hs_resolution=<allowed_resolution_value> --digest <hash> --confirm <ticket_id>

Known limitations

  • Enum options: list them with hubspot properties options-list --type tickets <property> (fallback: read live records).
  • Chat/inbox: hubspot conversations reads inboxes, channels, threads, and messages — e.g. hubspot conversations threads list --inbox-id <id> --associated-ticket-id <ticket_id> pulls the chat thread behind a ticket. Run hubspot conversations --help for the full surface.

来源与署名

来源:hubspot/agent-cli-skills位于ticket-resolution提交a8eea08

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架