Salesforce Skill技能使用说明
2026-04-01
新闻来源:网淘吧
围观:14
电脑广告
手机广告
主要技能定义(含前置信息、CLI参考、SOQL模式)
---
name: salesforce
description: Manage Salesforce CRM - query records, create/update contacts, accounts, opportunities, leads, and cases. Use when the user asks about CRM data, sales pipeline, customer records, or Salesforce operations.
metadata: {"moltbot":{"emoji":"☁️","requires":{"bins":["sf"],"env":["SALESFORCE_ACCESS_TOKEN"]},"primaryEnv":"SALESFORCE_ACCESS_TOKEN","install":[{"id":"npm","kind":"node","package":"@salesforce/cli","bins":["sf"],"label":"Install Salesforce CLI (npm)"},{"id":"brew","kind":"brew","formula":"salesforce-cli","bins":["sf"],"label":"Install Salesforce CLI (brew)"}]}}
homepage: https://developer.salesforce.com/tools/salesforcecli
---
Salesforce CRM 技能
使用官方 Salesforce CLI (sf) 和 REST API 与 Salesforce CRM 交互。

先决条件
- Salesforce CLI(
sf) 已通过 npm 或 Homebrew 安装 - 身份验证通过以下任一方式配置:
sf org login web(OAuth 浏览器流程 - 推荐用于交互式操作)sf org login jwt(JWT 用于无头/自动化操作)SALESFORCE_ACCESS_TOKEN环境变量(直接使用令牌)
快速参考
身份验证与组织管理
# Login to org (opens browser)
sf org login web --alias myorg
# Login with JWT (headless)
sf org login jwt --client-id <consumer-key> --jwt-key-file <path-to-key> --username <user> --alias myorg
# List connected orgs
sf org list
# Set default org
sf config set target-org myorg
# Display org info
sf org display --target-org myorg
查询记录 (SOQL)
# Query contacts
sf data query --query "SELECT Id, Name, Email, Phone FROM Contact LIMIT 10" --target-org myorg
# Query with WHERE clause
sf data query --query "SELECT Id, Name, Amount, StageName FROM Opportunity WHERE StageName = 'Prospecting'" --target-org myorg
# Query accounts by name
sf data query --query "SELECT Id, Name, Industry, Website FROM Account WHERE Name LIKE '%Acme%'" --target-org myorg
# Export to CSV
sf data query --query "SELECT Id, Name, Email FROM Contact" --result-format csv > contacts.csv
# Export to JSON
sf data query --query "SELECT Id, Name FROM Account" --result-format json
创建记录
# Create a Contact
sf data create record --sobject Contact --values "FirstName='John' LastName='Doe' Email='john.doe@example.com'" --target-org myorg
# Create an Account
sf data create record --sobject Account --values "Name='Acme Corp' Industry='Technology' Website='https://acme.com'" --target-org myorg
# Create an Opportunity
sf data create record --sobject Opportunity --values "Name='Big Deal' AccountId='001XXXXXXXXXXXXXXX' StageName='Prospecting' CloseDate='2025-06-30' Amount=50000" --target-org myorg
# Create a Lead
sf data create record --sobject Lead --values "FirstName='Jane' LastName='Smith' Company='NewCo' Email='jane@newco.com' Status='Open - Not Contacted'" --target-org myorg
# Create a Case
sf data create record --sobject Case --values "Subject='Support Request' Description='Customer needs help' Status='New' Priority='Medium'" --target-org myorg
更新记录
# Update a Contact
sf data update record --sobject Contact --record-id 003XXXXXXXXXXXXXXX --values "Phone='555-1234' Title='VP Sales'" --target-org myorg
# Update an Opportunity stage
sf data update record --sobject Opportunity --record-id 006XXXXXXXXXXXXXXX --values "StageName='Negotiation/Review' Amount=75000" --target-org myorg
# Update Account
sf data update record --sobject Account --record-id 001XXXXXXXXXXXXXXX --values "Description='Key strategic account'" --target-org myorg
删除记录
# Delete a record
sf data delete record --sobject Contact --record-id 003XXXXXXXXXXXXXXX --target-org myorg
# Bulk delete via query (careful!)
sf data delete bulk --sobject Lead --file leads-to-delete.csv --target-org myorg
批量操作
# Bulk insert from CSV
sf data import bulk --sobject Contact --file contacts.csv --target-org myorg
# Bulk update from CSV
sf data upsert bulk --sobject Account --file accounts.csv --external-id Id --target-org myorg
# Check bulk job status
sf data bulk status --job-id <job-id> --target-org myorg
架构与元数据
# Describe an object (get fields)
sf sobject describe --sobject Account --target-org myorg
# List all objects
sf sobject list --target-org myorg
# Get field details
sf sobject describe --sobject Opportunity --target-org myorg | jq '.fields[] | {name, type, label}'
常见SOQL模式
管道报告
SELECT StageName, COUNT(Id) NumDeals, SUM(Amount) TotalValue
FROM Opportunity
WHERE IsClosed = false
GROUP BY StageName
近期活动
SELECT Id, Subject, WhoId, WhatId, ActivityDate
FROM Task
WHERE OwnerId = '<user-id>'
AND ActivityDate >= LAST_N_DAYS:7
ORDER BY ActivityDate DESC
按客户查看联系人
SELECT Account.Name, Id, Name, Email, Title
FROM Contact
WHERE Account.Name = 'Acme Corp'
未解决案例
SELECT Id, CaseNumber, Subject, Status, Priority, CreatedDate
FROM Case
WHERE IsClosed = false
ORDER BY Priority, CreatedDate
按状态查看潜在客户
SELECT Status, COUNT(Id) Total
FROM Lead
WHERE IsConverted = false
GROUP BY Status
REST API(替代方案)
对于CLI未涵盖的操作,请使用curl配合REST API:
# Set variables
INSTANCE_URL="https://yourorg.salesforce.com"
ACCESS_TOKEN="$SALESFORCE_ACCESS_TOKEN"
# Query via REST
curl -s "$INSTANCE_URL/services/data/v59.0/query?q=SELECT+Id,Name+FROM+Account+LIMIT+5" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json"
# Create record via REST
curl -s "$INSTANCE_URL/services/data/v59.0/sobjects/Contact" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"FirstName":"Test","LastName":"User","Email":"test@example.com"}'
错误处理
- INVALID_SESSION_ID:令牌已过期。请使用以下命令重新认证:
sf org login web - MALFORMED_QUERY:检查SOQL语法。字符串请使用单引号。
- ENTITY_IS_DELETED:记录已被删除。更新前请先查询确认。
- REQUIRED_FIELD_MISSING:检查对象架构中的必填字段。
提示
- 使用别名设置
--alias登录时,然后使用--target-org 别名 - JSON输出: 添加
--json标志以便进行程序化解析 - 试运行: 在批量操作上使用
--dry-run标志以预览 - 字段名称: 使用API名称(例如,
FirstName),而非标签(例如,“First Name”) - 日期格式: 使用
YYYY-MM-DD表示日期,YYYY-MM-DDThh:mm:ssZ表示日期时间
限制
- 批量操作有每日API限制(因Salesforce版本而异)
- 某些对象(例如ContentDocument)有特殊的处理要求
- 复杂查询可能会触及监管限制
文章底部电脑广告
手机广告位-内容正文底部


微信扫一扫,打赏作者吧~