需先在salesforce启用api并创建connected app,配置oauth2权限与回调地址,获取consumer key/secret;再于dify配置custom tool及openapi schema;最后构建含webhook触发、id映射、状态判断的工作流,确保whoid为合法15或18位id。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

确认Salesforce API权限与连接准备
要在Dify中实现客户交互记录自动同步,必须先确保Salesforce环境已启用API访问并授予Dify所需最小权限。登录Salesforce管理员后台,进入【Setup】→【App Manager】→ 点击【New Connected App】创建新连接应用。
勾选【Enable OAuth Settings】,在Callback URL中填入Dify平台的OAuth回调地址(格式为https://your-dify-domain.com/oauth/callback/salesforce),Scopes至少勾选:【api】、【web】、【refresh_token】、【offline_access】。保存后记下Consumer Key和Consumer Secret——这两项将用于Dify侧配置,【丢失后无法再次查看,必须重新生成】。
在Dify中配置Salesforce自定义工具
进入Dify控制台 → 【Plugins】→ 【+ Create Plugin】→ 选择【Custom Tool】类型 → 命名为“Salesforce Sync Interaction”。
在Authentication配置区选择OAuth2,填入上一步获取的Consumer Key与Consumer Secret;Authorization URL设为https://login.salesforce.com/services/oauth2/authorize,Token URL设为https://login.salesforce.com/services/oauth2/token。
关键操作:在Tool Schema中粘贴以下OpenAPI 3.0规范片段(仅保留核心字段,避免冗余):
{ "openapi": "3.0.0", "info": { "title": "Salesforce Interaction Sync" }, "paths": { "/sobjects/Event": { "post": { "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "Subject": { "type": "string" }, "WhatId": { "type": "string" }, "WhoId": { "type": "string" }, "ActivityDate": { "type": "string", "format": "date" }, "Description": { "type": "string" } } } } } }, "responses": { "201": { "description": "Created" } } } } } } }
构建客户交互同步工作流
进入【Workflows】→ 【+ Create Workflow】→ 命名为“CRM-Interaction-Auto-Sync”。
第一步:添加触发器 → 选择【HTTP Webhook】→ 设置路径为/webhook/salesforce-interaction → 启用签名验证(X-Dify-Signature头必填)。
第二步:添加「Salesforce Sync Interaction」工具节点 → 将Webhook传入的JSON数据映射至工具参数:把payload.customer_id映射为WhoId,payload.opportunity_id映射为WhatId,payload.summary映射为Subject,payload.notes映射为Description。
注意:Salesforce的WhoId必须是Contact或Lead的15位或18位ID,若传入邮箱或手机号会直接报错400且不写入日志——【务必在前置逻辑中完成ID查表转换】。
第三步:添加条件分支 → 判断工具执行返回状态码是否为201 → 是则结束;否则触发钉钉机器人告警(可选)。
部署Webhook接收端并测试连通性
使用Postman向https://your-dify-domain.com/webhook/salesforce-interaction发送POST请求,Headers中加入X-Dify-Signature: your-hmac-sha256-hash(密钥为Dify环境变量DIFY_WEBHOOK_SECRET计算得出),Body为标准JSON:
{ "event": "customer_interaction", "payload": { "customer_id": "003XXXXXXXXXXXXXXX", "opportunity_id": "006XXXXXXXXXXXXXXX", "summary": "电话咨询产品试用", "notes": "客户明确表示下周安排POC演示", "timestamp": 1722237240 } }
成功响应应返回HTTP 200,且Salesforce中对应Contact页面的“Activity History”区域出现新Event记录。若失败,请检查Dify日志中工具调用详情页的Raw Request与Response原始内容,重点比对WhoId格式与OAuth token有效期。











