Salesforce

Polar Sponsor
爱发电 赞助
.NET 9.0

使用 `sf` CLI 查询 Salesforce 数据并管理销售管道。支持 SOQL 查询(从简单到复杂)、商机管道分析、预测报表、数据导出、数据模型探索以及 CRM 数据操作。还可用于高管级工作流,例如按名称查找交易(deal)、查找联系人信息以向潜在客户(prospects)发送邮件、准备管道评审(pipeline reviews),以及将 CRM 数据与其他工具进行交叉比对。触发场景包括:Salesforce、SOQL、管道(pipeline)、商机(opportunity)、预测(forecas

销售力 DX — 数据与管道 – 用 sf CLI.

功能概述

销售力 DX — 数据与管道 – 用 sf CLI.是一项面向实际任务的技能,主要用于Prerequisites. 如果没有列出任何 Org , 请认证 :.;Chema Discovery. 在查询前, 探索可用的对象和 fie。

核心要点

  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。

使用与执行

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;

结果检查与注意事项

若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

Salesforce DX — 数据与销售管道

使用 sf CLI 查询数据并管理销售管道。

前提条件

# 验证 CLI 版本及认证状态
sf --version
sf org list

若未列出任何组织,请先完成认证:

sf org login web --alias my-org --set-default

模式发现(Schema Discovery)

执行查询前,先探索可用的对象与字段:

# 列出所有对象
sf sobject list --target-org my-org

# 描述对象字段
sf sobject describe --sobject Opportunity --target-org my-org

# 快速获取字段名列表(仅显示名称)
sf sobject describe --sobject Opportunity --target-org my-org | grep -E "^name:|^type:"

SOQL 查询

基础模式

# 简单查询
sf data query -q "SELECT Id, Name, Amount FROM Opportunity LIMIT 10"

# 带 WHERE 子句的查询
sf data query -q "SELECT Id, Name FROM Opportunity WHERE StageName = 'Closed Won'"

# 日期筛选
sf data query -q "SELECT Id, Name FROM Opportunity WHERE CloseDate = THIS_QUARTER"

# 导出为 CSV 文件
sf data query -q "SELECT Id, Name, Amount FROM Opportunity" --result-format csv > opps.csv

关联关系查询

# 父级查找(从 Opportunity 查 Account)
sf data query -q "SELECT Id, Name, Account.Name, Account.Industry FROM Opportunity"

# 子查询(从 Account 查其下的 Opportunities)
sf data query -q "SELECT Id, Name, (SELECT Id, Name, Amount FROM Opportunities) FROM Account LIMIT 5"

聚合查询

# COUNT 统计
sf data query -q "SELECT COUNT(Id) total FROM Opportunity WHERE IsClosed = false"

# SUM 与 GROUP BY
sf data query -q "SELECT StageName, SUM(Amount) total FROM Opportunity GROUP BY StageName"

# 多重聚合
sf data query -q "SELECT StageName, COUNT(Id) cnt, SUM(Amount) total, AVG(Amount) avg FROM Opportunity GROUP BY StageName"

批量查询(适用于大数据集)

# 当结果超过 2000 条记录时,使用 --bulk 参数
sf data query -q "SELECT Id, Name, Amount FROM Opportunity" --bulk --wait 10

销售管道管理

管道快照

# 按阶段划分的管道
sf data query -q "SELECT StageName, COUNT(Id) cnt, SUM(Amount) total FROM Opportunity WHERE IsClosed = false GROUP BY StageName ORDER BY StageName"

# 按负责人划分的管道
sf data query -q "SELECT Owner.Name, SUM(Amount) total FROM Opportunity WHERE IsClosed = false GROUP BY Owner.Name ORDER BY SUM(Amount) DESC"

# 按预计关闭月份划分的管道
sf data query -q "SELECT CALENDAR_MONTH(CloseDate) month, SUM(Amount) total FROM Opportunity WHERE IsClosed = false AND CloseDate = THIS_YEAR GROUP BY CALENDAR_MONTH(CloseDate) ORDER BY CALENDAR_MONTH(CloseDate)"

赢单/输单分析

# 各阶段赢单率
sf data query -q "SELECT StageName, COUNT(Id) FROM Opportunity WHERE IsClosed = true GROUP BY StageName"

# 本季度已赢单的交易
sf data query -q "SELECT Id, Name, Amount, CloseDate FROM Opportunity WHERE StageName = 'Closed Won' AND CloseDate = THIS_QUARTER ORDER BY Amount DESC"

# 本季度已输单的交易及其原因
sf data query -q "SELECT Id, Name, Amount, StageName, Loss_Reason__c FROM Opportunity WHERE StageName = 'Closed Lost' AND CloseDate = THIS_QUARTER"

预测类查询

# 加权管道(假设存在 Probability 字段)
sf data query -q "SELECT StageName, SUM(Amount) gross, SUM(ExpectedRevenue) weighted FROM Opportunity WHERE IsClosed = false GROUP BY StageName"

# 本月即将关闭的交易
sf data query -q "SELECT Id, Name, Amount, StageName, CloseDate FROM Opportunity WHERE CloseDate = THIS_MONTH AND IsClosed = false ORDER BY Amount DESC"

# 滞留交易(过去 30 天无活动)
sf data query -q "SELECT Id, Name, Amount, LastActivityDate FROM Opportunity WHERE IsClosed = false AND LastActivityDate < LAST_N_DAYS:30"

数据操作

创建记录

sf data create record -s Opportunity -v "Name='New Deal' StageName='Prospecting' CloseDate=2024-12-31 Amount=50000"

更新记录

# 按 ID 更新
sf data update record -s Opportunity -i 006xx000001234 -v "StageName='Negotiation'"

# 批量更新(通过 CSV 文件)
sf data upsert bulk -s Opportunity -f updates.csv -i Id --wait 10

导出与导入

# 导出含关联关系的数据
sf data export tree -q "SELECT Id, Name, (SELECT Id, Subject FROM Tasks) FROM Account WHERE Industry = 'Technology'" -d ./export

# 导入数据
sf data import tree -f ./export/Account.json

面向脚本的 JSON 输出

添加 --json 参数以获得结构化输出:

sf data query -q "SELECT Id, Name, Amount FROM Opportunity WHERE IsClosed = false" --json

配合 jq 解析:

sf data query -q "SELECT Id, Name FROM Opportunity LIMIT 5" --json | jq '.result.records[].Name'

常用日期字面量(Date Literals)

字面量 含义
TODAY 当前日期
THIS_WEEK 当前周
THIS_MONTH 当前月
THIS_QUARTER 当前季度
THIS_YEAR 当前年份
LAST_N_DAYS:n 过去 n 天
NEXT_N_DAYS:n 未来 n 天
LAST_QUARTER 上一季度

故障排查

“Malformed query”(查询格式错误) —— 请检查字段 API 名称(而非标签名)。可使用 sf sobject describe 命令确认字段是否存在及拼写是否正确。

“QUERY_TIMEOUT”(查询超时) —— 添加更多筛选条件、使用 --bulk 参数,或显式添加 LIMIT 子句。

“INVALID_FIELD”(无效字段) —— 该字段可能在目标对象上不存在,或当前用户配置文件无访问权限。

结果集过大 —— 对返回记录数超过 2000 条的查询,请务必使用 --bulk 参数。

高管工作流

快速交易查找

按交易名称或所属客户查找:

# 按机会名称模糊匹配(fuzzy)
sf data query -q "SELECT Id, Name, Amount, StageName, CloseDate, Owner.Name, Account.Name FROM Opportunity WHERE Name LIKE '%Acme%' ORDER BY Amount DESC"

# 按客户名称匹配
sf data query -q "SELECT Id, Name, Amount, StageName, CloseDate FROM Opportunity WHERE Account.Name LIKE '%Microsoft%' AND IsClosed = false"

# 我负责的近期交易
sf data query -q "SELECT Id, Name, Amount, StageName, CloseDate, Account.Name FROM Opportunity WHERE OwnerId = '' AND IsClosed = false ORDER BY CloseDate"

外联所需联系人信息

查找某公司的可联系人员:

# 某客户的联系人
sf data query -q "SELECT Id, Name, Email, Phone, Title FROM Contact WHERE Account.Name LIKE '%Acme%'"

# 决策者(按职位筛选)
sf data query -q "SELECT Name, Email, Title, Account.Name FROM Contact WHERE Title LIKE '%CEO%' OR Title LIKE '%VP%' OR Title LIKE '%Director%'"

# 某笔交易相关的联系人
sf data query -q "SELECT Contact.Name, Contact.Email, Contact.Title, Role FROM OpportunityContactRole WHERE Opportunity.Name LIKE '%Acme%'"

销售管道评审准备

快速生成高管摘要:

# 本季度即将关闭的 Top 10 交易
sf data query -q "SELECT Name, Account.Name, Amount, StageName, CloseDate, Owner.Name FROM Opportunity WHERE CloseDate = THIS_QUARTER AND IsClosed = false ORDER BY Amount DESC LIMIT 10"

# 按销售代表划分的交易(用于 1:1 会议)
sf data query -q "SELECT Owner.Name, COUNT(Id) deals, SUM(Amount) total FROM Opportunity WHERE IsClosed = false GROUP BY Owner.Name ORDER BY SUM(Amount) DESC"

# 需重点关注的交易(滞留)
sf data query -q "SELECT Name, Amount, StageName, LastActivityDate, Owner.Name FROM Opportunity WHERE IsClosed = false AND LastActivityDate < LAST_N_DAYS:14 ORDER BY Amount DESC LIMIT 10"

客户情报(Account Intelligence)

会前/通话前快速了解客户:

# 客户概览
sf data query -q "SELECT Id, Name, Industry, BillingCity, Website, OwnerId FROM Account WHERE Name LIKE '%Acme%'"

# 该客户的全部未关闭交易
sf data query -q "SELECT Name, Amount, StageName, CloseDate FROM Opportunity WHERE Account.Name LIKE '%Acme%' AND IsClosed = false"

# 最近活动记录
sf data query -q "SELECT Subject, Status, ActivityDate FROM Task WHERE Account.Name LIKE '%Acme%' ORDER BY ActivityDate DESC LIMIT 5"

跨工具工作流

Salesforce + 邮件(通过 gog/gmail):

  1. 查找联系人邮箱:sf data query -q "SELECT Email FROM Contact WHERE Account.Name LIKE '%Acme%'"
  2. 在您的邮件工具中使用该地址起草邮件

Salesforce + 日历(Calendar):

  1. 查找即将关闭的交易:sf data query -q "SELECT Name, Account.Name, CloseDate FROM Opportunity WHERE CloseDate = THIS_WEEK"
  2. 对照日历确认后续跟进已安排妥当

通话后快速更新 CRM:

# 记录一项任务
sf data create record -s Task -v "Subject='Call with John' WhatId='' Status='Completed' ActivityDate=$(date +%Y-%m-%d)"

# 更新交易阶段
sf data update record -s Opportunity -i  -v "StageName='Negotiation' NextStep='Send proposal'"

查找您的用户 ID

用于“我负责的交易”类查询:

sf data query -q "SELECT Id, Name FROM User WHERE Email = 'your.email@company.com'"

建议将该 ID 存入本地配置,便于后续快速引用。

参考资料

  • soql-patterns.md —— 高级 SOQL 模式(多态查询、半连接、公式字段等)
  • pipeline-queries.md —— 即用型销售管道与预测查询模板

相关专题

更多
Postman身份认证怎么配置
Postman身份认证怎么配置

本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。

2026.11.06

0

12

Postman请求头Headers怎么设置
Postman请求头Headers怎么设置

围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。

2026.11.06

0

13

Postman接口请求发送教程
Postman接口请求发送教程

详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。

2026.11.06

0

10

DBeaver怎么导入数据
DBeaver怎么导入数据

DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。

2026.11.05

0

12

DBeaver安全防护教程大全
DBeaver安全防护教程大全

DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。

2026.11.05

0

12

DBeaver连接创建与配置教程
DBeaver连接创建与配置教程

本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。

2026.11.04

0

16

XORM框架结构体映射与表结构同步
XORM框架结构体映射与表结构同步

本专题围绕XORM框架的结构体映射展开,说明表名与字段的命名策略、xorm标签常用属性、主键自增与时间字段自动填充,并演示Sync2自动建表、增量字段升级、索引声明与反向生成结构体的完整流程。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

15

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

2026.11.04

0

16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.7万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 134.1万人学习