一键导入
pipeline-history
Guides the multi-step workflow of exporting deals and fetching field change history via MCP tools to analyze pipeline progression over time.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Guides the multi-step workflow of exporting deals and fetching field change history via MCP tools to analyze pipeline progression over time.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Runs xaffinity CLI commands directly in bash to search, export, filter, and manage Affinity CRM data.
Primary skill for Affinity CRM data access when MCP tools are available (discover-commands, execute-read-command, execute-write-command, query, get-entity-dossier). Prefer this over direct CLI when MCP tools are present.
Executes structured JSON queries against Affinity CRM data with filtering, aggregation, and relationship traversal via the query MCP tool.
Writes Python code using the Affinity SDK for CRM data access and automation.
基于 SOC 职业分类
| name | pipeline-history |
| description | Guides the multi-step workflow of exporting deals and fetching field change history via MCP tools to analyze pipeline progression over time. |
| when_to_use | Use when analyzing deal pipeline history, stage transitions, funnel conversion, time-in-stage metrics, deal velocity, or stalled deals. Triggers on "pipeline funnel", "how long in stage", "deal progression", "stage duration", "deal history", "conversion rate by stage". |
All commands use execute-read-command. Do not pass --json in argv — JSON output is automatic.
execute-read-command(command: "field ls", argv: ["--list-id", "YOUR_LIST_NAME"])
Look for a dropdown field tracking deal stages (typically named "Status", "Stage", or "Pipeline Stage"). Note its fieldId (e.g., field-260415).
execute-read-command(command: "list export", argv: ["YOUR_LIST_NAME", "--field", "Status", "--max-results", "50"])
JSON output key is data.rows. Each row contains listEntryId, entityId, entityName, and current field values.
execute-read-command(command: "field history-bulk", argv: ["<field-id>", "--list-id", "YOUR_LIST_NAME", "--dry-run"])
Check estimatedApiCalls before proceeding. Each list entry = 1 API call.
execute-read-command(command: "field history-bulk", argv: ["<field-id>", "--list-id", "YOUR_LIST_NAME", "--max-results", "50"])
For all entries (only after confirming cost via dry-run is acceptable):
execute-read-command(command: "field history-bulk", argv: ["<field-id>", "--list-id", "YOUR_LIST_NAME", "--all"])
Each row has: id, fieldId, entityId, listEntryId, entityName, actionType, value, changedAt, changerName.
Reconstruct transitions: Sort events per entity by changedAt. Each row's value is the value AT that point. Compare consecutive rows to derive old→new transitions.
Common analyses:
value = each stagechangedAt timestamps for the same entityactionType meanings: create (initial value set), update (value changed), delete (value cleared)value, not oldValue/newValue — derive transitions by sortingchangedAt is UTCcreate event)--list-entry-ids, entityName is null — join with list export data if names needed--dry-run first to estimate API calls on large lists