Using Anypoint Studio to Configure Salesforce Pub/Sub Connector 1.0 | MuleSoft Documentation
# Using Anypoint Studio to Configure Salesforce Pub/Sub Connector 1.0
Anypoint Studio (Studio) editors help you design and update your Mule applications, properties, and configuration files.
To add and configure a connector in Studio:
  1. Create a Mule project.
  2. Add the connector to your Mule project.
  3. Configure a source for the connector’s flow.
  4. Add a connector operation to the flow.
  5. Configure a global element for the connector.
  6. Configure the other connector fields.


When you run the connector, you can view the app log to check for problems in real time, as described in View the App Log.
If you are new to configuring connectors in Studio, refer to Using Anypoint Studio to Configure a Connector. If, after reading this topic, you need additional information about the connector fields, refer to the Salesforce Pub/Sub Connector Reference.
## Create a Mule Project
In Studio, create a new Mule project in which to add and configure the connector:
  1. In Studio, select **File > New > Mule Project**.
  2. Enter a name for your Mule project and click **Finish**.


## Add the Connector to Your Mule Project
Add Salesforce Pub/Sub Connector to your Mule project to automatically populate the XML code with the connector’s namespace and schema location and add the required dependencies to the project’s `pom.xml` file:
  1. In **Mule Palette** , click **(X) Search in Exchange**.
  2. In **Add Dependencies to Project** , type `Salesforce Pub/Sub` in the search field.
  3. Click <Salesforce Pub/Sub> in **Available modules**.
  4. Click **Add**.
  5. Click **Finish**.


Adding a connector to a Mule project in Studio does not make that connector available to other projects in your Studio workspace.
## Configure a Source
A source initiates a flow when a specified condition is met. You can configure one of these sources to use with Salesforce Pub/Sub Connector:
  * Subscribe Channel Listener Subscribes to a streaming channel. This source provides channel-related notification settings for new events that occur after you subscribe.
A channel must be published to Salesforce before a subscription to the channel is created.   
---  
  * HTTP Listener Initiates a flow each time it receives a request on the configured host and port
  * Scheduler Initiates a flow when a time-based condition is met


For example, to configure a **Subscribe channel listener** source, follow these steps:
  1. In the **Mule Palette** view, select **Subscribe channel listener**.
  2. Drag **Subscribe channel listener** to the Studio canvas.
  3. Optionally change the value of the **Display Name** field.
  4. Select a **Channel Name** from the dropdown field.
  5. Select a **Replay Option** from the four types available:
     * `Latest`
Subscriber receives new events that are broadcast after the client subscribes.
     * `Earliest`
Subscriber receives all events, including past events that are within the retention window of the server and new events sent after subscription.
     * `Custom replay id`
Subscriber receives only events with a replay ID higher than the specified value.
     * `Replay id from object store`
Subscriber receives only events with a replay ID higher than the specified value in object store. If no value is found, it defaults to `Earliest`. Provide values for the **Object Store Name** and the **Object Store Key** fields to connect to the desired object store and retrieve the replay ID value. For more information on how to use `Replay id from object store`, refer to Store the Replay ID in the Object Store.
  6. Optionally, specify a value for the **Batch events size** field.
  7. Click the plus sign (**+**) next to the **Connector configuration** field to configure a global element that can be used by all instances of the **Subscribe channel listener** source in the app.
  8. In the **Security** tab, optionally specify the TLS information for the connector.
  9. In the **Advanced** tab, optionally specify reconnection information, including a reconnection strategy.
  10. Click **Test Connection** to confirm that Mule can connect with the specified server.
  11. Click **OK**.


### Store the Replay ID in the Object Store
To use the `Replay id from object store` option for the **Subscribe channel listener** source, you must first save the replay ID value in the object store:
  1. Add the **Subscribe channel listener** source, as described in Configure a Source, to the Studio flow.
  2. In the **Mule Palette** view, select **Store** from **Object Store Connector**.
  3. Drag **Store** to the Studio canvas.
  4. Optionally change the value of the **Display Name** field.
  5. Add a value for the **Key** field, such as replay ID. This is the key that is used later, when retrieving the replay ID from the object store.
  6. Set a value for the **Value** field. This is the replay ID value that you want to store. In this example, it is `payload.replayId`.
  7. Optionally, change the default values for the **Fail if present** and **Fail on null value** fields. The value for **Fail if present** must always be `false` as you must use the same key to store a new value for the replay ID.
  8. Click the plus sign (**+**) next to the **Object store** field to configure the object store. This is the object store in which the replay ID value is stored and from where the source retrieves the replay ID value.
  9. The values declared here for the **Object store** and **Key** fields are the same values that are used for the `Replay id from object store` option on the source.


## Add a Connector Operation to the Flow
When you add a connector operation to your flow, you are specifying an action for that connector to perform.
To add an operation for Salesforce Pub/Sub Connector, follow these steps:
  1. In **Mule Palette** , select **Salesforce Pub/Sub** and then select the desired operation.
  2. Drag the operation onto the Studio canvas, next to the input source.


## Configure a Global Element for the Connector
When you configure a connector, configure a global element that all instances of that connector in the app can use. Configuring a global element requires you to provide the authentication credentials that the connector requires to access the target Salesforce Pub/Sub system. Salesforce Pub/Sub Connector supports Basic Authentication, OAuth v2.0, OAuth JWT, OAuth Username Password, and OAuth SAML.
To configure the global element for Salesforce Pub/Sub Connector, follow these steps:
  1. Select the operation in the Studio canvas.
  2. In the **General** configuration screen for the operation, click the **Add** icon to access the global element configuration fields.
  3. In the **General** tab, in **Connection** , select the authentication method to configure:
     * Basic Authentication
     *      *      * OAuth Username Password
     * You can reference a configuration file that contains ANT-style property placeholders (recommended), or you can enter your authorization credentials in the global configuration properties. For information about the benefits of using property placeholders and how to configure them, refer to Anypoint Connector Configuration.
  4. In the **Advanced** tab, optionally specify reconnection information, including a reconnection strategy.
  5. Click **Test Connection** to confirm that Mule can connect with the specified server.
  6. Click **OK**.
## Configure a Global Element for the Connector
When you configure a connector, configure a global element that all instances of that connector in the app can use. Configuring a global element requires you to provide the authentication credentials that the connector requires to access the target Salesforce Pub/Sub system. Salesforce Pub/Sub Connector supports Basic Authentication, OAuth v2.0, OAuth JWT, OAuth Username Password, and OAuth SAML.
To configure the global element for Salesforce Pub/Sub Connector, follow these steps:
  1. Select the operation in the Studio canvas.
  2. In the **General** configuration screen for the operation, click the **Add** icon to access the global element configuration fields.
  3. In the **General** tab, in **Connection** , select the authentication method to configure:
     * Basic Authentication
     *      *      * OAuth Username Password
     * You can reference a configuration file that contains ANT-style property placeholders (recommended), or you can enter your authorization credentials in the global configuration properties. For information about the benefits of using property placeholders and how to configure them, refer to Anypoint Connector Configuration.
  4. In the **Advanced** tab, optionally specify reconnection information, including a reconnection strategy.
  5. Click **Test Connection** to confirm that Mule can connect with the specified server.
  6. Click **OK**.


### Basic Authentication
Enter the following information in the **General** tab of the **Global Element Properties** screen to configure Basic Authentication:
Field | User Action  
---|---  
Enter the configuration name.  
**Connection** |  Select **Basic Authentication**.  
The following image shows an example of configuring Basic Authentication:
### OAuth v2.0
Use OAuth 2.0 to delegate user authentication to the service hosting the user account. For more information, refer to Configuring OAuth 2.0 for Connectors or Configuring OAuth 2.0 for Connectors on CloudHub.
Enter the following information on the **General** tab of the global element configuration screen to configure OAuth v2.0 authentication:
Field | User Action  
---|---  
Enter the configuration name.  
**Connection** |  Select **OAuth v2.0**.  
**Consumer Key** |  Enter the OAuth consumer key, as registered with the service provider.  
**Consumer Secret** |  Enter the OAuth consumer secret, as registered with the service provider.  
**Listener Config** |  Enter the configuration for the HTTP listener that listens for requests on the access token callback endpoint.  
**Callback Path** |  Enter the path of the access token callback endpoint.  
**Authorize Path** |  Enter the path of the local HTTP endpoint that triggers the OAuth dance.  
The following image shows an example of configuring OAuth v2.0 authentication:
### OAuth JWT
Enter the following information on the **General** tab of the global element configuration screen to configure OAuth JWT authentication:
Field | User Action  
---|---  
Enter the configuration name.  
**Connection** |  Select **OAuth JWT**.  
**Consumer Key** |  Enter the consumer key for the Salesforce connected app.  
Enter the path to the keystore used to sign data during authentication.  
**Store Password** |  Enter the password of the keystore.  
Enter the username of the desired Salesforce user to take action on behalf of.  
The following image shows an example of configuring OAuth JWT authentication:
### OAuth Username Password
Enter the following information on the **General** tab of the global element configuration screen to configure OAuth Username Password authentication:
Field | User Action  
---|---  
Enter the configuration name.  
**Connection** |  Select **OAuth Username Password**.  
**Consumer Key** |  Enter the consumer key for the Salesforce connected app.  
**Consumer Secret** |  Enter your application’s client secret (consumer secret in Remote Access Detail).  
Enter the username used to initialize the session.  
Enter the password used to authenticate the user.  
Enter the username of the desired Salesforce user to take action on behalf of.  
The following image shows an example of configuring OAuth Username Password authentication:
### OAuth SAML
Enter the following information on the **General** tab of the global element configuration screen to configure OAuth SAML authentication:
Field | User Action  
---|---  
Enter the configuration name.  
**Connection** |  Select **OAuth SAML**.  
**Consumer Key** |  Enter the consumer key for the Salesforce connected app.  
Enter the path to the keystore used to sign data during authentication.  
**Store Password** |  Enter the password of the keystore.  
Enter the username of the desired Salesforce user to take action on behalf of.  
The following image shows an example of configuring OAuth SAML authentication:
## Configure Additional Connector Fields
After you configure a global element for Salesforce Pub/Sub Connector, configure the other required fields for the connector. The required fields vary depending on which connector operation you use.
## View the App Log
To check for problems, you can view the app log as follows:
  * If you’re running the app from Anypoint Platform, the app log output goes to the Anypoint Studio console window.
  * If you’re running the app using Mule from the command line, the app log output goes to your operating system console.


Unless the log file path is customized in the app’s log file (`log4j2.xml`), you can also access the app log in the default location `MULE_HOME/logs/<app-name>.log`. You can configure the location of the log path in the app log file `log4j2.xml`.
## See Also
  * Introduction to Anypoint Connectors
  * Using Anypoint Studio to Configure a Connector
  * Salesforce Pub/Sub Connector Reference
  * MuleSoft Help Center