跳到主要内容
一个使用 LangChain 与 Salesforce CRM 交互的工具。

概览

langchain-salesforce 包将 LangChain 与 Salesforce CRM 集成,允许您从 LangChain 应用程序中查询数据、管理记录和探索对象模式。

主要特点

  • SOQL 查询:执行 Salesforce 对象查询语言 (SOQL) 查询
  • 对象管理:对 Salesforce 对象进行创建、读取、更新和删除 (CRUD) 操作
  • 模式探索:描述对象模式并列出可用对象
  • 异步支持:支持异步操作
  • 错误处理:详细的错误消息
  • 环境变量支持:从环境变量加载凭据

设置

安装所需的依赖项
 pip install langchain-salesforce

身份验证设置

这些环境变量将由集成自动识别。

获取您的安全令牌

如果您需要安全令牌
  1. 登录 Salesforce
  2. 前往设置
  3. 在“我的个人信息”下点击“重置我的安全令牌”
  4. 检查您的电子邮件以获取新令牌
将您的 Salesforce 凭据设置为环境变量
export SALESFORCE_USERNAME="your-username@company.com"
export SALESFORCE_PASSWORD="your-password"
export SALESFORCE_SECURITY_TOKEN="your-security-token"
export SALESFORCE_DOMAIN="login"  # Use "test" for sandbox environments

实例化

import os

from langchain_salesforce import SalesforceTool

username = os.getenv("SALESFORCE_USERNAME", "your-username")
password = os.getenv("SALESFORCE_PASSWORD", "your-password")
security_token = os.getenv("SALESFORCE_SECURITY_TOKEN", "your-security-token")
domain = os.getenv("SALESFORCE_DOMAIN", "login")

tool = SalesforceTool(
    username=username, password=password, security_token=security_token, domain=domain
)

调用

def execute_salesforce_operation(
    operation, object_name=None, query=None, record_data=None, record_id=None
):
    """Executes a given Salesforce operation."""
    request = {"operation": operation}
    if object_name:
        request["object_name"] = object_name
    if query:
        request["query"] = query
    if record_data:
        request["record_data"] = record_data
    if record_id:
        request["record_id"] = record_id
    result = tool.invoke(request)
    return result

查询

此示例查询 Salesforce 中的 5 个联系人。
query_result = execute_salesforce_operation(
    operation="query", query="SELECT Id, Name, Email FROM Contact LIMIT 5"
)

描述一个对象

获取特定 Salesforce 对象的元数据。
describe_result = execute_salesforce_operation(
    operation="describe", object_name="Account"
)

列出可用对象

检索 Salesforce 实例中所有可用的对象。
list_objects_result = execute_salesforce_operation(operation="list_objects")

创建新联系人

在 Salesforce 中创建一个新的联系人记录。
create_result = execute_salesforce_operation(
    operation="create",
    object_name="Contact",
    record_data={"LastName": "Doe", "Email": "doe@example.com"},
)

更新联系人

更新现有联系人记录。
update_result = execute_salesforce_operation(
    operation="update",
    object_name="Contact",
    record_id="003XXXXXXXXXXXXXXX",
    record_data={"Email": "updated@example.com"},
)

删除联系人

从 Salesforce 中删除联系人记录。
delete_result = execute_salesforce_operation(
    operation="delete", object_name="Contact", record_id="003XXXXXXXXXXXXXXX"
)

链接

from langchain_anthropic import ChatAnthropic
from langchain.messages import HumanMessage
from langchain_salesforce import SalesforceTool

# Initialize the Salesforce tool
tool = SalesforceTool(
    username=username, password=password, security_token=security_token, domain=domain
)

# Initialize Anthropic LLM
llm = ChatAnthropic(model="claude-sonnet-4-5-20250929")

# First, let's query some contacts to get real data
contacts_query = {
    "operation": "query",
    "query": "SELECT Id, Name, Email, Phone FROM Contact LIMIT 3",
}

contacts_result = tool.invoke(contacts_query)

# Now let's use the LLM to analyze and summarize the contact data
if contacts_result and "records" in contacts_result:
    contact_data = contacts_result["records"]

    # Create a message asking the LLM to analyze the contact data
    analysis_prompt = f"""
    Please analyze the following Salesforce contact data and provide insights:

    Contact Data: {contact_data}

    Please provide:
    1. A summary of the contacts
    2. Any patterns you notice
    3. Suggestions for data quality improvements
    """

    message = HumanMessage(content=analysis_prompt)
    analysis_result = llm.invoke([message])

    print("\nLLM Analysis:")
    print(analysis_result.content)

API 参考

有关全面的文档和 API 参考,请参阅

附加资源


以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.