Connect Salesforce to OpenClaw on Operator.io
Salesforce is a leading CRM platform that helps businesses manage sales, service, and marketing. It centralizes customer data, enabling teams to drive growth and build strong relationships.
Automate Salesforce with AI
Operator puts an OpenClaw agent in front of Salesforce. You describe the job from Telegram or Discord and it handles the rest inside Salesforce, picking the right calls from the 179 Salesforce actions and checking its own work as it goes.
Your agent reaches Salesforce directly or through connectors like Composio MCP and Pipedream MCP, which handle the sign in and token refresh for you, so there is nothing to wire up and no API keys to paste.
What your agent can do with Salesforce
Your agent can call any of these Salesforce actions by name as part of a larger task. Ask for the outcome you want and it picks the right ones.
Add contact to campaign
Adds a contact to a campaign by creating a CampaignMember record to track campaign engagement. Fails if the contact is already a member of the campaign; pre-check membership via SOQL before calling.
Add lead to campaign
Adds a lead to a campaign by creating a CampaignMember record, allowing you to track campaign engagement. Both `campaign_id` and `lead_id` must be valid Salesforce IDs of active, existing records — names or emails cannot be substituted,...
Add product to opportunity
Adds a product (line item) to an opportunity. The product must exist in a pricebook entry that's associated with the opportunity's pricebook.
Apply lead assignment rules
Applies configured lead assignment rules to a specific lead, automatically routing it to the appropriate owner based on your organization's rules. Allow a brief propagation delay before querying updated ownership or field values after ru...
Associate contact to account
Associates a contact with an account by updating the contact's AccountId field. Overwrites any existing AccountId on the contact. For broader contact field updates alongside the account association, use SALESFORCE_UPDATE_CONTACT instead.
Clone opportunity with products
Clones an opportunity and optionally its products (line items). Creates a new opportunity with the same field values and products as the original.
Clone record
Creates a copy of an existing Salesforce record by reading its data, removing system fields, and creating a new record. Optionally apply field updates to the clone.
Close or abort a job
Tool to close or abort a Salesforce Bulk API v2 ingest job. Use when you need to finalize job processing by closing (state: UploadComplete) or cancel a job by aborting (state: Aborted). This is required for every ingest job - closing que...
Complete task
Marks a task as completed with optional completion notes. This is a convenience action that updates the task status to 'Completed'.
Create account
Creates a new account in Salesforce with the specified information. Returns the created Account's ID at `data.response_data.id`.
Create a record
Tool to create a Salesforce record using the UI API. Use when you need to create any type of Salesforce record with layout metadata and formatted field values.
Create campaign
Creates a new campaign in Salesforce. Only `name` is universally required, but org-level validation rules commonly enforce `type`, `status`, `start_date`, and `end_date` as well — omitting them may cause creation to fail.
Create contact
Creates a new contact in Salesforce with the specified information. Writes to live CRM data — obtain explicit user confirmation before executing. Failures may reflect org-specific validation rules, permission restrictions, or duplicate r...
Create custom field
Tool to create a custom field on a Salesforce object using the Tooling API. Use when you need to add a new field (Text, Number, Checkbox, Date, Picklist, Lookup, etc.) to any standard or custom object without deploying metadata packages....
Create custom object
Tool to create a custom object in Salesforce using the Metadata API. Use when you need to dynamically create new object types (tables) in Salesforce with custom fields and configurations.
Create lead
Creates a new lead in Salesforce. `LastName` and `Company` are required. Org-level validation rules (e.g., email format, custom required fields) may reject requests beyond these; inspect the error response body for the failing field. The...
Create note
Creates a new note attached to a Salesforce record with the specified title and content. Does not deduplicate — identical calls create duplicate notes. High-volume creation can trigger REQUEST_LIMIT_EXCEEDED; apply exponential backoff on...
Create opportunity
Creates a new opportunity in Salesforce with the specified information.
Create SObject record
Tool to create a new Salesforce SObject record. Use when you need to create any type of standard or custom Salesforce object record by specifying the object type and field values.
Create sObject tree
Tool to create one or more sObject trees with root records of the specified type. Use when creating nested parent-child record hierarchies in a single atomic operation (e.g., Account with Contacts and Opportunities). Supports up to 200 t...
Create task
Creates a new task in Salesforce to track activities, to-dos, and follow-ups related to contacts, leads, or other records. Ensure who_id, what_id, and owner_id reference existing records before calling; invalid IDs cause silent linkage f...
Delete account
Permanently deletes an account from Salesforce. This action cannot be undone.
Delete campaign
Permanently deletes a campaign from Salesforce. This action cannot be undone.
Delete contact
Permanently deletes a contact from Salesforce. This action cannot be undone. Associated records (activities, opportunities) lose the contact reference upon deletion — ensure related data is migrated or acceptable to lose before proceedin...
Delete file
Tool to permanently delete a file from Salesforce. Use when you need to remove a file and its content. This operation cannot be undone.
Delete job query
Tool to delete a Salesforce Bulk API v2 query job. Use when you need to permanently remove a job and its associated data. Only the user who created the job can delete it, and the job must be in a completed state.
Delete lead
Permanently deletes a lead from Salesforce. This action cannot be undone.
Delete note
Permanently deletes a note from Salesforce. This action cannot be undone.
Delete opportunity
Permanently deletes an opportunity from Salesforce. This action cannot be undone.
Delete sObject record
Tool to delete a single Salesforce record by its ID. Use when you need to permanently remove a specific record from Salesforce. This operation is idempotent - deleting the same record multiple times returns success. Works with standard a...
Delete multiple records (SObject Collections)
Tool to delete up to 200 records in one request with optional rollback. Use when you need to delete multiple records efficiently, reducing API calls.
Execute sObject Quick Action
Tool to execute a specific quick action on an sObject to create records with pre-configured defaults. Use when you need to leverage Salesforce Quick Actions to streamline record creation with field mappings and default values.
Execute SOSL search
Execute a SOSL search to search across multiple Salesforce objects. Use when you need to search for text across multiple object types simultaneously.
Get batch of UI API records
Tool to retrieve multiple Salesforce records in a single request with customizable field selection. Use when you need to fetch data for multiple records at once (up to 200 records).
Get account
Retrieves a specific account by ID from Salesforce, returning all available fields.
Get all objects
Retrieves all Salesforce objects (standard and custom) with detailed metadata. Each object includes a 'custom' field to identify custom objects. Use when you need to discover available objects or their capabilities.
Get all fields for an object
Retrieves all fields (standard and custom) for a Salesforce object with complete metadata including field types, constraints, picklist values, and relationships.
Get all navigation items
Gets all navigation items (tabs) that the user has access to. Use when you need to retrieve available navigation tabs for display or navigation purposes.
Get API resources by version
Tool to discover available REST API resources for a specified Salesforce API version. Use when you need to find available endpoints and their URIs for a specific API version.
Get an app
Tool to get metadata about a specific Salesforce app by ID. Use when you need to retrieve app configuration details and navigation items for a particular application.
Get apps
Tool to get metadata for all apps a user has access to. Use when you need to list available Salesforce applications or check app navigation items. Metadata for the selected app includes tabs on the app's navigation bar, while other apps...
Get campaign
Retrieves a specific campaign by ID from Salesforce, returning all available fields.
Get Chatter resources
Tool to access Chatter resources directory. Use when you need to discover available Chatter feeds, groups, users, email digest controls, emojis, extensions, or streams.
Get child records
Tool to get child records for a specified parent record and child relationship name. Use when you need to retrieve related records from a parent-child relationship in Salesforce, such as getting all Contacts for an Account or all Opportu...
Get Compact Layouts
Tool to retrieve compact layout information for multiple Salesforce objects. Use when you need to display object data in compact form for Lightning Experience, mobile apps, or custom interfaces.
Get composite resources
Tool to retrieve a list of available composite resources in Salesforce. Use when you need to discover which composite API endpoints are available for batch operations.
Get multiple records by IDs
Retrieves multiple records of the same object type by IDs with a request body. Use when you need to retrieve more records than URL length limits allow (up to 2000 records vs ~800 via GET).
Get consent preferences
Tool to retrieve aggregated consent preferences across multiple records for a specific action. Use when you need to check if users have consented to email, tracking, fax, or other actions across Contact, Lead, User, Person Account, or In...
Plus 131 more Salesforce actions your agent can call.
How to connect Salesforce
You authorize Salesforce once from your dashboard. Operator holds the connection and refreshes the access tokens on its own, so your agent keeps working with Salesforce without you signing in again. The same setup unlocks every other app your agent can reach, so you only do it once.
When you are ready, the get started guide walks through standing up your OpenClaw agent.
Common questions about Salesforce
- How do I connect Salesforce to Operator?
- You authorize Salesforce once from your Operator dashboard. Operator holds the connection and refreshes the access token for you, so your agent keeps working with Salesforce without you signing in again.
- Can my agent keep my Salesforce records up to date?
- Yes. It can create and update contacts, companies, and deals, log activity against them, and pull a record back when you ask. A common setup is to have it log notes after a call or add new leads automatically, so Salesforce stays current without the manual data entry.
- Do I need to write code or manage Salesforce API keys?
- No code and no API keys. You authorize Salesforce through a normal sign in and Operator handles the connection, so there is nothing to wire up or host.
- Can my agent use Salesforce together with my other apps?
- Yes. The same agent reaches every app you connect, so it can move between Salesforce and tools like Hubspot, Pipedrive, Centralstationcrm in one job, reading from one and acting in another without you wiring anything between them.
Salesforce integrations
Pick an app to see what your agent does across Salesforce and it, or browse all integrations.
Put your agent on Salesforce
Sign in, connect Salesforce, and hand your agent the work. Your first week is free.
Get started