Using Salesforce with IBM App Connect Enterprise

Salesforce is a work management and project tracking application that provides projects, tasks, conversations, and dashboards that enable teams to collaborate and track progress online. IBM® App Connect Enterprise provides Salesforce Input and Salesforce Request nodes, which you can use to interact with Salesforce applications.

Before you begin

You must install IBM App Connect Enterprise 12.0.6.0 or later to use this feature.

Watch the following video that demonstrates how to use the Salesforce Input node in IBM App Connect Enterprise.

Video: Using the new Salesforce Input node in IBM App Connect Enterprise 12.0.6.

About this task

IBM App Connect Enterprise communicates synchronously with Salesforce through the Salesforce Input and Salesforce Request nodes, which are available on Windows, AIX, and Linux® systems.

Use the Salesforce Input node to monitor Salesforce for new objects, such as new accounts, campaigns, contacts, leads, opportunities, and orders. For more information about using a Salesforce Input node to interact with Salesforce resources, see Salesforce Input node.

Use the Salesforce Request node to connect to Salesforce and perform actions such as creating, retrieving, updating, and deleting Salesforce objects such as accounts, attachments, campaigns, cases, contacts, events, leads, opportunities, and orders. For more information, see Salesforce Request node.

In order to work with App Connect Enterprise, your edition of Salesforce must be enabled for API access. If you want to create a free Salesforce account to test with App Connect Enterprise, you can create and use a Developer account, which is enabled for API access. Salesforce Trial accounts are not API enabled and do not work with App Connect Enterprise.

There is a limit to the number of Salesforce requests that can be in progress concurrently using the same Salesforce account. If the limit is reached, any more requests using the same Salesforce account are rejected by Salesforce, with an error telling you that you have exceeded your organization's concurrent user limit for your Salesforce account.

Salesforce has a limit of five connected apps per user for your organization. After a fifth approval is made for a connected app, the oldest approval is revoked. In instances of an App Connect service, avoid creating more than five accounts across all Salesforce applications in the App Connect catalog. The maximum five accounts might also be reduced by other Salesforce connected apps, such as user-agent flows. For more information, see Manage OAuth-Enabled Connected Apps Access to Your Data in the Salesforce documentation.

The following steps show you how to connect to a Salesforce account and configure a Salesforce Request node by using connector discovery. You can follow the same procedure to configure a Salesforce Input node to monitor Salesforce for new objects, by creating a flow containing a Salesforce Input node and configuring it through connector discovery.

Procedure

  1. In the IBM App Connect Enterprise Toolkit, create a flow containing a Salesforce Request node.
  2. Select the Salesforce Request node in the flow to show the node properties in the editor.
  3. On the Basic tab, click Launch Connector Discovery.
    A panel is displayed in which you specify the name of the policy project and vault details to be used during connector discovery.
  4. Specify the details of the policy project and vault to be used during connector discovery:
    1. In the Policy Project field, specify the policy project that is used to store the policies that are created during connector discovery.
      Alternatively, you can create a new policy project by clicking New and then specifying the name of the new policy project. Then click Finish.
    2. Specify the vault to be used during connector discovery. By default, credentials that are used during connector discovery are stored in an external directory vault, which is an App Connect Enterprise vault that can be used by any integration server. Alternatively, you can store the credentials in an integration server vault, which is created in the integration server's work directory and can be used only by that specific integration server.
      To specify the vault to be used for storing the credentials, complete the steps in the Using the Connector Discovery wizard section of one of the following topics:
    3. In the Vault key field, enter the vault key that is used to access the credentials stored in the vault. The vault key must be at least 8 characters in length.
    4. Optional: By default, the specified vault location and vault key are saved as preferences in the Toolkit so that the values are preset when you launch Connector Discovery. If you do not want the preferences to be saved, deselect Save in vault preferences.
  5. Click Launch Discovery to start the Connector Discovery wizard for the Salesforce connector.
    The Connector Discovery window is displayed. If existing Salesforce connections (accounts) are available, a list of those connections is displayed. If there are no existing connections, the status of the Salesforce connector is shown as Not connected.
    • If one or more Salesforce connections (accounts) are available, complete the following steps:
      1. Select the connection (account) that you want to use by clicking on it.
      2. Click the required object type and then select the action that you want to perform on the object. For example, to retrieve contact details, click Contacts and then Retrieve contacts.
    • If there are no existing connections (accounts), complete the following steps:
      1. Click the required object type and then select the action that you want to perform on that object. For example, to retrieve contact details from Salesforce, click Contacts and then Retrieve contacts.
      2. Click Connect to create the new connection.
      3. Select the Authorization method that you want to use for the connection to Salesforce, by clicking one of the following options from the drop-down list:
        1. Provide a username, password, and client credentials (OAUTH 2.0 PASSWORD)
        2. Provide credentials for App Connect to use (BASIC OAUTH)
      4. Click Continue.
      5. A window is displayed in which you enter the connection details for your account, according to the authorization method that you selected in the previous step (OAUTH 2.0 PASSWORD or BASIC OAUTH):
        • If you selected OAUTH 2.0 PASSWORD authentication, enter the following details:
          • Login URL: The URL of your Salesforce instance, in the format https://login.salesforce.com
          • Username: The username of your Salesforce account
          • Password: The password for your Salesforce account, suffixed with your Salesforce security token
          • Client ID: The consumer key that is generated when you create a connected app for App Connect in Salesforce
          • Client secret: The consumer secret that is generated when you create a connected app for App Connect in Salesforce
        • If you selected BASIC OAUTH authentication, enter the following details:
          • Custom URL:
            • For a production instance, leave the field blank or enter <instance>.salesforce.com
            • For a sandbox, enter test.salesforce.com or <instance>.salesforce.com.
            • For subdomains:
              • Enter <subdomain>.my.salesforce.com for production
              • Enter <subdomain>--<sandboxname>.<instance>.my.salesforce.com for a sandbox
              • Enter <subdomain>-dev-ed.my.salesforce.com for Developer Edition
          • Client ID: The consumer key that is generated when you create a connected app for App Connect in Salesforce
          • Client secret: The consumer secret that is generated when you create a connected app for App Connect in Salesforce
          • Access token: The access token generated from the application client ID and client secret
          • Refresh token: The refresh token generated from the application client ID and client secret
      6. Click Connect.

        The credential is stored in the vault, and the other connection details are saved in the Salesforce policy.

        For more information about connecting to Salesforce, see How to use IBM App Connect with Salesforce in the IBM App Connect Enterprise as a Service documentation.

  6. Set the required connector properties in the wizard.
    You can add conditions for the retrieval of the data, by clicking Add condition and then selecting the property that you want to filter on. For example, to retrieve contacts with a particular last name, click Add condition, then Last Name, and then enter the required value. You can also set properties that specify the maximum number of records to retrieve and the action to be taken if that limit is exceeded.

    When you have finished specifying the properties in the Connector Discovery wizard, click Save. The values of the properties that you set in the wizard are returned to the Salesforce Request node in the IBM App Connect Enterprise Toolkit.

  7. When you have finished discovery and saved the property values, exit the Connector Discovery wizard by clicking the X in the upper-right corner of the window.
  8. Return to editing the Salesforce Request node in the IBM App Connect Enterprise Toolkit.

    The connector properties that were set in the Connector Discovery wizard (in step 6) are now visible in the Salesforce Request node.

    The Basic tab shows the values of the Action and Object properties that you set in the wizard. For example, if you selected Contacts > Retrieve contacts in the wizard, the following properties will be visible on the Basic tab of the node:

    • Action - RETRIEVEALL
    • Object - Contact

    The values of the Action and Object properties are displayed in read-only format. If you want to change these values, you can do so by clicking Launch Connector Discovery again and setting new values in the Connector Discovery wizard. You can modify other properties (if any have been set) by clicking the Edit button next to the property.

    The Schema base name property specifies the base name of the schema files that describe the format of the request and response messages sent and received from the Salesforce connector. The schema base name is set automatically the first time you run discovery for the node, and it is based on the current flow name and node name. If you set this property manually before running discovery for the first time, the value that you set will be used. If you rename the schemas after discovery, you must edit this property so that it matches the schema base name used by the renamed schemas in the project. If you change this property after discovery, you must either rename the schema names to match or run discovery again.

    Depending on the action that was selected during discovery, the Connector Discovery wizard generates either a request schema and a response schema, or a response schema only. A request schema is generated only if the selected action and object require a request message. The generated request schema is used for validation of the request message. If the action was RETRIEVE or DELETE, only the response schema is returned by the connector.

    The generated schema files are added to the project and can be used by a Mapping node for transforming input or output data. The full filename of the schema is derived from the schema base name, suffixed with either response.schema.json or request.schema.json. You can open the schema by clicking Open request schema or Open response schema.

  9. Check that the property settings on the Salesforce Request node are correct and then save the message flow.
  10. On the Connection tab of the Salesforce Request node, the Policy property shows the name of the policy that contains the details of the security identity to be used for the connection. The policy has a type of Salesforce.
  11. Optional: Set the Timeout property on the Connection tab to specify the time (in seconds) that the node waits for Salesforce to process the operation. The default is 60 seconds.
  12. The Filter tab of the Salesforce Request node contains properties that control the way in which the message flow selects data. The initial values of these properties are taken from the property values that were set for the Salesforce connector in the Connector Discovery wizard (as described in step 6). If you subsequently return to the Connector Discovery wizard and change the values of any properties (by adding new conditions, for example) those updates are reflected in the properties set on the node.

    The Filter Options properties control which objects are to be operated upon when the Salesforce Request node executes. The Filter Limit properties control the maximum number of items to be retrieved and the action to be taken if the limit is exceeded.

    You can modify the values by clicking Edit next to the value that you want to modify in the Filter Options section, and by changing the property values that have been set in the Filter Limit section.

    The property values can be either text values or ESQL or XPATH expressions that are resolved from the contents of the message passed to the Salesforce Request node as it executes.

  13. On the Request tab, set the Data location property to specify the location in the incoming message tree that contains the object data to be created in Salesforce. This data forms the request that is sent from the Salesforce Request node to the Salesforce system.
  14. On the Result tab, set the Output data location property to specify the location in the output message tree that will contain the data of the record that is created in Salesforce.
  15. By default, request messages are validated against the request schema that was generated during connector discovery. You can turn off request validation or change the validation settings by using the Validation properties of the Salesforce Request node.
  16. Save the message flow.