Salesforce Connector 10.20 | MuleSoft Documentation
# Salesforce Connector 10.20
Anypoint Connector for Salesforce (Salesforce Connector) enables you to create apps that react to Salesforce events such as adding, changing, or deleting objects, topics, documents, and channels.
Salesforce Connector enables you to connect to the Salesforce APIs. This connector exposes methods for accessing Salesforce, including working with the Salesforce Apex classes.
This connector works with the Salesforce SOAP API, REST API, Bulk API, and Streaming API, depending on the operation you configure. Each API call uses a request/response pattern over an HTTPS connection. All required request headers, error handling, and HTTPS connection configurations are built into the connector.
For compatibility information and fixed issues, see the Salesforce Connector release notes.
## Before You Begin
To use this connector, you must be familiar with:
  * The Salesforce SOAP, REST, Bulk, and Streaming APIs
  * Anypoint Connectors
  * Mule runtime engine (Mule)
  * Elements and global elements in a Mule flow
  * Creating a Mule app using Anypoint Studio (Studio)


Before creating an app, you must have:
  * Access to the Salesforce target resource, which requires a Salesforce developer account and Salesforce security token.
You can receive a new security token by email if you run **Reset Security Token** through **My Personal Information** from the Salesforce Setup pages.
  * A consumer key and secret (available in your Salesforce developer account)
  * The namespace and schema location, if you are using OAuth authentication.
If you plan to create the XML for your Mule app, include the correct namespace and schema location in your XML file. Studio adds this information to the XML file automatically when you add Salesforce Connector to a flow in a Mule app.


## Limitations
  * Salesforce Connector does not expose all possible operations of the Salesforce APIs.
  * Salesforce Connector does not provide access to the Chatter API or Tooling API.


## Audience
  * New users
Read this document and create your Mule app in Anypoint Studio.
The Additional Configuration Information topic helps you extend your understanding of the connector.
  * Advanced users
Read XML and Maven Support, the Additional Configuration Information topic, and Examples.


## Common Use Cases for the Connector
Common use cases for Salesforce Connector include:
  * **ERP Integration**
Give your sales team access to all relevant customer data from one system via real-time synchronization of data between Salesforce and your ERP & finance applications. For example, use Anypoint Connector for SAP (SAP Connector) to sync data between Salesforce and SAP and Anypoint Connector for NetSuite (NetSuite Connector) to sync data between Salesforce and NetSuite.
  * **Data Aggregation**
Collect data from multiple Salesforce orgs, other CRMs, ERP systems, and databases into one Salesforce instance or use that information to generate reports.
  * **Legacy Modernization**
Easily manage data post-acquisition, move off of a legacy CRM system, or migrate ERP data into Salesforce by automatically moving your data into Salesforce.
  * **Customer Experience**
Deliver a consistent, connected customer experience across channels, increase customer satisfaction, and drive revenue growth by integrating Salesforce to applications such as ServiceNow, Marketo, and others.


For examples of these use cases, refer to Salesforce Connector Examples.
## Authentication Types
Salesforce Connector connections use the following authentication types:
  * Basic authentication
Uses a username and password for authentication
  * OAuth 2.0
Delegates user authentication to the service hosting the user account
  * OAuth JWT
Uses OAuth 2.0 with a JSON Web token (JWT) request for user authentication
  * OAuth SAML
Uses OAuth 2.0 with a signed SAML 2.0 assertion to request an access token
  * OAuth Username password
Uses OAuth 2.0 with a user and password for authentication


For information about configuring these authentication types, see Using Anypoint Studio to Configure Salesforce Connector.
## Salesforce Connector Configurations and Examples
The following table provides links to specific Salesforce Connector information:
Subject | Description  
---|---  
Accept and Transform Data | Accept and transform data from Salesforce example  
| Configure for APEX SOAP API and APEX REST API  
List of Salesforce APIs that this connector can access  
Application Development | Process order and integration patterns  
Batch data using the Salesforce Bulk API  
Lead Convert Request ID | Specify a lead ID using DataWeave  
Parent Child Relationships | Create and update parent and child relationships example  
Anypoint Exchange Templates and Examples | Simplify Salesforce Connector development with a template or example  
| Subscribe to a Salesforce topic  
Subscribe Streaming Channel | Subscribe to a Salesforce streaming channel  
Replay events from a Topic  
Replay Streaming Channel | Replay Events from a Salesforce streaming channel  
Custom Event Notifications | Get custom event notifications over a streaming channel  
Push Event Notifications | Push Events to a Streaming Channel  
| Object Store usage and limitations  
## Develop an Application
To build an app, perform the following tasks:
  1. Configure the connector.
  2. Test the connection.
  3. Build the rest of your flow.
  4. Add and configure DataWeave.


When developing an app, Salesforce Connector provides these integration patterns you can use with the Salesforce APIs:
  * Batch Data Synchronization
An external system accesses, changes, deletes, or adds data in Salesforce in batches, and vice versa (Salesforce to external system).
  * Remote Call-In
An external system accesses, changes, deletes, or adds data in Salesforce, and vice versa (Salesforce to external system).
  * Fire and Forget Remote Process Invocation
Salesforce initiates a process in a third-party system and receives an acknowledgment that the process has started. The third-party system continues processing independent of Salesforce.
  * Request-Reply Remote Process Invocation
Salesforce initiates a process in a remote system, waits for the remote system to finish processing, and accepts control returned from the remote system.
  * User Interface Update Based on Data Changes
The Salesforce UI updates in response to a change in a third-party system.


## Salesforce APIs
Salesforce Connector works with the Salesforce Apex SOAP API, Apex REST API, Bulk API, Metadata API, and Streaming API, but does not provide access to the Chatter API or the Tooling API. Each API call uses a request/response pattern over an HTTPS connection. All required request headers, error handling, and HTTPS connection configurations are built into the connector.
  * Apex SOAP API
Salesforce Apex SOAP API exposes Apex class methods as custom SOAP web service calls. This allows an external app to invoke an Apex web service to perform an action in Salesforce.
  * Apex REST API
Salesforce Apex REST API creates your own REST-based web services using Apex. This API has all of the advantages of the REST architecture, while adding the ability to define custom logic and including automatic argument or object mapping.
  * Bulk API
Salesforce Bulk API quickly and securely loads batches of your organization’s data into Salesforce. See also Load Data in Batches.
  * Metadata API
Salesforce Metadata API manages customizations and build tools that work with the metadata model, not the data itself.
  * SOAP API
Salesforce SOAP API provides secure access to your organization’s information on Salesforce. Most of the operations that Salesforce Connector performs map to this API.
All the Salesforce operations performed through the SOAP API have an optional parameter called `Headers` that can take any of the Salesforce SOAP headers.
  * Streaming API
Salesforce Streaming API securely receives notifications about changes to your organization’s information in Salesforce. See Create a Streaming Channel to Receive Data from Salesforce for more information about the use of the Streaming API.


## Anypoint Exchange Templates and Examples
Anypoint Exchange provides templates you can use as a starting point for your app, as well as examples that illustrate a complete solution.
### Salesforce Connector Templates in Exchange
Anypoint Exchange templates provide starting points for Studio projects such as:
  * Account Broadcast template
Salesforce to Salesforce, Workday, SAP, and database account broadcast
  * Aggregation
  * Bidirectional Sync template
    * Between Salesforce organizations
accounts, contacts, custom objects, opportunities, users
    * Other sources
database, Microsoft Dynamics CRM, Siebel
  * Migration


### Salesforce Connector Examples in Exchange
Anypoint Exchange examples enable you to create complete Studio projects such as:
  * Batch processing
  * 

## Next Steps
After you complete the prerequisites and experiment with templates and examples, you are ready to create an app with Anypoint Studio.
## See Also
  * Introduction to Anypoint Connectors
  * Use Exchange to Discover Connectors, Templates, and Examples
  * Salesforce APIs: What they are and when to use them
  * Which Salesforce API should I use?
  * Salesforce Connector Release Notes
  * Salesforce Connector in Exchange
  * MuleSoft Help Center