内容
# Salesforce 无界面访问 - Agentforce - MCP -
本部分解释了 **不同类型的 AI 代理**(语音、服务、SDR等)如何使用以下方式与 Salesforce 进行交互:
* **无界面 360 API**
* **MCP(模型上下文协议)**
* **代理工具(函数调用 / 操作)**
---
# 🧠 核心概念
在无界面架构中:
```text
代理 → MCP → Salesforce API → 业务逻辑执行
```
* ❌ 不需要 Salesforce 用户界面
* ✅ 代理直接执行 CRM 操作
* ✅ 基于上下文的决策
---
# 🔗 访问层
## 1. 🔹 代理层(Agentforce)
代理作为 **Salesforce 的主要用户**。
每个代理:
* 通过 LLM(大型语言模型)理解意图
* 调用工具(函数)
* 通过 API 执行操作
---
## 2. 🔹 MCP 层(上下文 + 协调)
MCP 提供:
* 统一的客户上下文
* 工具抽象
* 安全访问 Salesforce API
---
## 3. 🔹 Salesforce 无界面层
暴露:
* 数据(通过 REST API 的 SObjects)
* 自动化(流程,Apex)
* 事件(平台事件)
---
# 🤖 代理 → 无界面访问模式
---
# 📞 1. 语音代理访问模式
## 🔁 流程
```text
语音输入 → 语音转文本 → 代理 → MCP → Salesforce API → 响应
```
---
## 🛠 使用的工具
| 工具 | 目的 |
| ------------------ | ----------------- |
| getCustomerByPhone | 确定呼叫者 |
| getSubscriptions | 获取计划 |
| triggerRenewal | 执行续期 |
| logCallSummary | 存储交互 |
---
## 🔗 API 映射
| 工具 | API |
| ------------------ | --------------- |
| getCustomerByPhone | SOQL 查询 |
| triggerRenewal | 流程 API |
| logCallSummary | 案例 / 任务 API |
---
## 🧪 示例
```json
{
"tool": "getCustomerByPhone",
"input": { "phone": "+919999999999" }
}
```
→ MCP 翻译为:
```http
GET /services/data/v60.0/query?q=SELECT+Id+FROM+Contact+WHERE+Phone='9999999999'
```
---
# 💬 2. 服务代理(聊天)访问模式
## 🔁 流程
```text
聊天输入 → 代理 → MCP 上下文 → 解决方案 / 案例 → Salesforce
```
---
## 🛠 使用的工具
| 工具 | 目的 |
| ---------------- | -------------- |
| createCase | 记录问题 |
| updateCaseStatus | 跟踪进度 |
| fetchKnowledge | 检索 FAQ |
| escalateCase | 转交给人工 |
---
## 🔗 API 映射
| 工具 | API |
| ---------------- | ------------------- |
| createCase | POST /sobjects/Case |
| updateCaseStatus | PATCH /Case |
| escalateCase | Omni-Channel / 流程 |
---
## 🧪 示例
```json
{
"tool": "createCase",
"input": {
"subject": "支付失败",
"priority": "高"
}
}
```
---
# 📈 3. SDR 代理访问模式
## 🔁 流程
```text
线索事件 → 代理 → 资格审查 → CRM 更新 → 任务创建
```
---
## 🛠 使用的工具
| 工具 | 目的 |
| --------------- | ------------- |
| fetchLead | 获取线索信息 |
| updateLeadScore | 给线索评分 |
| createTask | 跟进 |
| scheduleMeeting | 预约演示 |
---
## 🔗 API 映射
| 工具 | API |
| --------------- | ----------- |
| fetchLead | GET /Lead |
| updateLeadScore | PATCH /Lead |
| createTask | POST /Task |
---
## 🧪 示例
```json
{
"tool": "updateLeadScore",
"input": {
"leadId": "00QXX",
"score": 90
}
}
```
---
# 🔁 4. 续期代理访问模式
## 🔁 流程
```text
调度器 / 事件 → 代理 → 检测到期 → 通知 → 续期
```
---
## 🛠 使用的工具
| 工具 | 目的 |
| ------------------------ | ----------------- |
| getExpiringSubscriptions | 确定续期 |
| sendReminder | 通知 |
| applyDiscount | 提供优惠 |
| processRenewal | 执行续期 |
---
## 🔗 API 映射
| 工具 | API |
| ------------------------ | ------------------------ |
| getExpiringSubscriptions | SOQL |
| processRenewal | 流程 API |
| sendReminder | 外部 API / 消息传递 |
---
---
# 🔗 MCP(模型上下文协议)详情
## 🧠 MCP 的角色
MCP 作为:
* 上下文聚合器
* 工具注册表
* 安全执行层
---
## 🔧 MCP 工具定义示例
```json
{
"name": "getCustomerData",
"description": "从 Salesforce 获取客户详细信息",
"input_schema": {
"type": "object",
"properties": {
"customerId": { "type": "string" }
}
}
}
```
---
## 🔁 MCP 执行流程
```text
代理 → 选择工具 → MCP → API 调用 → 响应 → 代理
```
---
## 🧪 MCP 响应示例
```json
{
"customer": {
"id": "003XX",
"name": "John Doe",
"plan": "高级"
}
}
```
---
# 🛠️ 无界面 API 分类
---
## 📊 1. 数据 API
* 查询(SOQL)
* SObjects 的 CRUD 操作
```http
GET /services/data/v60.0/query
POST /services/data/v60.0/sobjects/{对象}
```
---
## ⚙️ 2. 自动化 API
* 流程执行
* Apex REST
```http
POST /services/data/v60.0/actions/custom/flow/{流程名称}
```
---
## 📡 3. 事件 API
* 平台事件
* 变更数据捕获
```http
POST /services/data/v60.0/sobjects/Event__e
```
---
## 🔐 4. 身份验证 API
* OAuth 2.0
```http
POST /services/oauth2/token
```
---
# 🔄 端到端执行示例
```text
客户聊天 →
代理检测到 "续订订阅" →
调用 MCP 工具 →
MCP 调用 Salesforce 流程 →
流程更新 CRM →
代理确认给客户
```
---
# 🧠 主要设计原则
* 🔌 API 优先(无界面)
* 🧠 基于上下文(MCP)
* 🤖 代理执行的 workflows
* 🔐 安全和受控
---
# 🚀 总结
Salesforce 无界面 360 使能:
* AI 代理作为 **主要操作员**
* MCP 作为 **上下文 + 协调层**
* API 作为 **执行引擎**
---