Skip to main content

Documentation Index

Fetch the complete documentation index at: https://agno-v2-docs-align-with-readme.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

SalesforceTools enable an Agent to interact with Salesforce CRM. Query records with SOQL, search with SOSL, manage objects, and run reports. Read-only by default. Write operations (create, update, delete) require explicit opt-in.

Prerequisites

Install the simple-salesforce library and set your Salesforce credentials.
uv pip install -U simple-salesforce
Username / Password auth (most common):
export SALESFORCE_USERNAME="you@example.com"
export SALESFORCE_PASSWORD="your-password"
export SALESFORCE_SECURITY_TOKEN="token-from-email"
export SALESFORCE_DOMAIN="login"
To get your security token: Log into Salesforce > click your avatar (top right) > Settings > “Reset My Security Token”. Session / Instance URL auth (when SOAP login is disabled):
SalesforceTools(
    instance_url="https://your-org.my.salesforce.com",
    session_id="your-session-id",
)

Example

A read-only agent that explores Salesforce objects, runs SOQL queries, and searches across the org.
cookbook/91_tools/salesforce_tools.py
from agno.agent import Agent
from agno.tools.salesforce import SalesforceTools

agent = Agent(tools=[SalesforceTools()])
agent.print_response("Find the top 5 accounts by name", stream=True)
Enable write operations for full CRM management:
from agno.agent import Agent
from agno.tools.salesforce import SalesforceTools

agent = Agent(
    tools=[
        SalesforceTools(
            enable_create_record=True,
            enable_update_record=True,
            enable_delete_record=True,
        )
    ],
)
agent.print_response(
    "Create a new lead: Jane Doe, CTO at Acme Corp, email jane@acme.com",
    stream=True,
)

Toolkit Params

ParameterTypeDefaultDescription
usernameOptional[str]NoneSalesforce username. Falls back to SALESFORCE_USERNAME env var.
passwordOptional[str]NoneSalesforce password. Falls back to SALESFORCE_PASSWORD env var.
security_tokenOptional[str]NoneSalesforce security token. Falls back to SALESFORCE_SECURITY_TOKEN env var.
domainOptional[str]"login"Salesforce login domain. Falls back to SALESFORCE_DOMAIN env var. Use "test" for sandboxes.
instance_urlOptional[str]NoneSalesforce instance URL for session-based auth.
session_idOptional[str]NoneSession ID for session-based auth.
max_recordsint200Maximum number of records to return from queries and listings.
max_fieldsint100Maximum number of fields to return from describe_object.
enable_list_objectsboolTrueEnable the list_objects tool.
enable_describe_objectboolTrueEnable the describe_object tool.
enable_get_recordboolTrueEnable the get_record tool.
enable_queryboolTrueEnable the query tool.
enable_searchboolTrueEnable the search tool.
enable_create_recordboolFalseEnable the create_record tool. Off by default for safety.
enable_update_recordboolFalseEnable the update_record tool. Off by default for safety.
enable_delete_recordboolFalseEnable the delete_record tool. Off by default for safety.
enable_get_reportboolFalseEnable the get_report tool.
allboolFalseEnable all tools including write operations.

Toolkit Functions

FunctionDescription
list_objectsList all available Salesforce objects in the org with metadata (queryable, createable, etc).
describe_objectGet the schema for a Salesforce object including field names, types, picklist values, and reference relationships. Use before creating records.
get_recordGet a single record by its Salesforce ID. Optionally specify which fields to return.
queryExecute a SOQL query against Salesforce. Supports relationship queries and aggregates.
searchExecute a SOSL full-text search across Salesforce objects. Requires explicit RETURNING clause with object names and fields.
create_recordCreate a new Salesforce record. Accepts a JSON string of field name-value pairs.
update_recordUpdate an existing Salesforce record by ID. Accepts a JSON string of fields to update.
delete_recordDelete a Salesforce record by ID.
get_reportRun a Salesforce report by report ID and return the results.
You can use include_tools or exclude_tools to modify the list of tools the agent has access to. See selecting tools.

Developer Resources