Sync Leads Between Marketo and Salesforce

Sync Leads Between Marketo and Salesforce

Use this recipe to synchronize leads between Marketo and Salesforce.

Note: This recipe is available as Marketo — Salesforce | Sync Leads in the Integration Store. Oracle provides this recipe as a sample only. The recipe is meant only for guidance, and is not warranted to be error-free. No support is provided for this recipe.

Overview

This is a bidirectional recipe. It creates a corresponding lead record in Marketo when a lead record is set to Open status in Salesforce. In addition, it creates corresponding lead records in Salesforce for Marketo leads.

To use the recipe, you must install the recipe package and configure the connections and other resources within the package.

When a lead record’s status is set to Open in Salesforce, the app-driven integration flow (Oracle SFDC Marketo Lead2Lead Create) of the recipe is triggered, and it creates a corresponding lead record in Marketo. Further, you can run the scheduled integration flow (Oracle Marketo Salesforce Lead2Lead CreateUpdate) of the package manually or specify an execution schedule for it. When triggered, this integration flow fetches the lead records from the Marketo instance and, in turn, creates or updates corresponding leads in your Salesforce instance. Basic data, such as company, country, phone number, lead status, and so on, are synchronized between the two platforms.

System and Access Requirements

Before You Install the Recipe

You must perform the following configuration tasks on your Salesforce and Marketo instances in order to successfully connect to these external systems using Oracle Integration and synchronize leads between them.

Configure Salesforce

To access Salesforce from Oracle Integration and create/read lead records, you must perform certain configurations on your Salesforce instance.

Create a user account on Salesforce for Oracle Integration. You’ll use the credentials of this user account while configuring the Salesforce connection in Oracle Integration.

Also, identify your Salesforce instance type and your current Salesforce API version. In addition, create an outbound message to trigger the Oracle SFDC Marketo Lead2Lead Create integration flow of the recipe, and create a workflow rule to send the outbound message when a Salesforce lead’s status is set to Open. Finally, create a custom field for Salesforce lead records to store Marketo lead IDs.

Log in to your Salesforce instance as an Administrator and execute the following tasks.

Note: The steps provided here apply to the Salesforce Classic UI. If you’re using the Lightning Experience UI on your Salesforce instance, switch to the Classic UI.

  1. Create an API-enabled custom role. You’ll assign this role to the user account you’ll subsequently create for Oracle Integration.

    1. On the Salesforce Setup page:

      1. Expand Manage Users under the Administer section in the left navigation pane.

      2. Click Profiles.

    2. On the Profiles page, click New Profile.

    3. On the resulting page:

      1. Select Standard User in the Existing Profile field.

      2. Enter a name for the new profile, for example, API Enabled, and click Save.

      The new profile is now saved, and the Profile Detail page of the new profile is displayed.

    4. Click Edit on the Profile Detail page.

    5. On the Profile Edit page:

      1. Scroll to the Administrative Permissions section and ensure that the API Enabled check box is selected.

      2. Scroll to the Standard Object Permissions section and perform the following actions.

        • In the Accounts row, leave the ReadCreateEdit, and Delete boxes checked. Additionally, select the ViewAll check box.

        • In the Contacts row, leave the ReadCreateEdit, and Delete boxes checked. Additionally, select the ViewAll check box.

        • In the Price Books row, leave the Read box checked. Additionally, select the CreateEdit, and Delete check boxes.

        • In the Products row, leave the Read box checked. Additionally, select the CreateEdit, and Delete check boxes.

        • In the Leads row, leave the Read box checked. Additionally, select the CreateEdit, and Delete check boxes.

      3. Scroll to the end of the page and click Save.

  2. Create a user account for Oracle Integration and assign the custom role created previously to this account.

    Note: If you have already created a user account for Oracle Integration, you can assign the API-enabled custom role to the existing account.

    1. On the Profile Detail page of the API Enabled profile, click View Users.

    2. Click New User in the resulting page.

    3. On the New User page:

      1. Enter a first name and last name for the user, for example, Integration User05.

      2. In the Email field, enter a valid email address.
        The email address you enter is automatically populated in the Username field. Note this username.

      3. In the User License field, select Salesforce.

      4. In the Profile field, select the profile you created previously, that is, API Enabled.

      5. Scroll to the end of the page, ensure that the Generate new password and notify user immediately check box is selected, and click Save.
        The user account is now created, and a verification email is sent to the email address you provided for the account.

    4. Log in to the corresponding email account and click the Verify Account button in the email message from Salesforce.
      You’re redirected to the Salesforce instance to set a password for the new user account.

    5. Set a password and note the same.
      Subsequently, you’re signed in to the Salesforce instance with the new account.

      Note: If you’re shown the Lighting Experience UI, switch to the Salesforce Classic UI.

    6. Generate a security token for the new user account. You’ll need this security token along with the password to access Salesforce using Oracle Integration.

      1. Stay signed in as the new user and click the user name at the top of the page to open a menu.

      2. Click My Settings in the menu.

      3. On the My Settings page, in the Quick Links section, click Edit my personal information.

      4. On the resulting page, click Reset My Security Token in the left navigation pane.

      5. Click the Reset Security Token button.
        A new security token is sent to the email address associated with the account. Note the security token.

      6. On the Salesforce instance, click the user name again and select Logout from the menu. Log back in as the Administrator.

  3. Identify your current Salesforce API version. See Find Your Current Salesforce API Version.

  4. Identify your Salesforce instance type. See Identify Instance Type of Your Salesforce Organization.

  5. On your Salesforce instance, create an outbound message to trigger the Oracle SFDC Marketo Lead2Lead Create integration flow of this recipe.

    1. On the Salesforce Setup page:

      1. Scroll to the Build section in the left navigation pane.

      2. Expand Create, then Workflow & Approvals, and then click Outbound Messages.

      If you’re shown the Understanding Workflow page, click Continue.

    2. Click New Outbound Message in the resulting page.

    3. On the New Outbound Message page:

      1. Select Lead in the Object field, and click Next.

      2. Enter the following details for the new outbound message:

        • Enter a name for the outbound message. Note that the Unique Name field is automatically populated based on the name you enter.

        • Optionally, enter a description for the message.

        • In the Endpoint URL field, enter the following URL:
          https://<OIC_FQDN:OIC_SSL_PORT>/ic/ws/integration/v1/flows/salesforce/ORCL-R-SFDC_LEAD_SYNC_TO_MKT_LEA/1.0/

          Where OIC_FQDN and OIC_SSL_PORT are the fully-qualified domain name and port of your Oracle Integration instance (for example, oicinstance.example.com:443).

        • In the User to send as field, select the user account using which you want to send the message.

        • Under Lead fields to send, select the required fields and click Add.

        • Click Save.

    The new outbound message is created and displayed on your browser.

  6. Now, create a workflow rule to send the outbound message (created previously) when a Salesforce lead’s status is set to Open.

    1. On the Salesforce Setup page:

      1. Scroll to the Build section in the left navigation pane.

      2. Expand Create, then Workflow & Approvals, and then click Workflow Rules.

      If you’re shown the Understanding Workflow page, click Continue.

    2. Click New Rule in the resulting page.

    3. On the New Workflow Rule page:

      1. Select Lead in the Object field, and click Next.

      2. Enter the following details for the new workflow rule:

        • Enter the rule’s name.

        • Optionally, enter a description for the rule.

        • In the Evaluation Criteria section, select the created, and every time it’s edited radio button.

        • In the Rule Criteria section, select the formula evaluates to true option, and define the following rule criteria:
          (Lead: Lead Status EQUALS Open – Not Contacted) AND (Lead: Company NOT EQUAL TO null)

        • Click Save & Next.

      3. On the next page, click the Add Workflow Action button and choose Select Existing Action.

      4. On the Select Existing Actions page:

        • Select Outbound Message in the Search field.

        • In the Available Actions box, select the outbound message you created previously, for example, Outbound Message: <name of your outbound message>.

        • Click Add to move your selection to the Selected Actions box.

        • Click Save.

      5. Click Done.

      The new workflow rule is created and displayed on your browser.

    4. Click Activate to activate the rule.

  7. Create a custom field for lead records.
    This recipe uses unique IDs associated with lead records in Marketo to synchronize Marketo leads with Salesforce leads. Create a custom field for Salesforce lead records to hold the Marketo IDs.

    1. On the Salesforce Setup page:

      1. Scroll to the Build section in the left navigation pane.

      2. Expand Customize, then Leads, and then click Fields.

    2. On the Lead Fields page, scroll to the Lead Custom Fields & Relationships section and click New.

    3. On the New Custom Field page:

      1. Find and select the Text radio button, and click Next.

      2. Enter the following details for the new custom field:

        • Enter Lead Extension ID as the field label. Note that the field name is automatically populated based on the label you enter.

        • Enter 50 as the length.

        • Optionally, enter a description for the new field.

        • Select the External ID check box.

        • Click Next.

      3. On the Establish field-level security page, select the Visible check box in the header row to grant edit access to the new field for all profiles. Click Next.

      4. Leave all the layout check boxes selected and click Save.

    On the Lead Fields page, you can see the new field added under the Lead Custom Fields & Relationships section.

Configure Marketo

To access Marketo from Oracle Integration and create/read lead records, you’ll need to perform the following configuration tasks on your Marketo instance.

  1. Create an API-only user role.

  2. Create a customer service.

  3. Obtain the Client ID and Client Secret.

  4. Obtain the Munchkin ID.

For detailed information on the above steps, see Prerequisites for Creating a Connection.

Install and Configure the Recipe

On your Oracle Integration instance, install the recipe package to deploy and configure the integration flows and associated resources.

  1. On the Oracle Integration home page, scroll to the Accelerators & Recipes section.

  2. Click Search All.

  3. Find the recipe package that you want to install.

  4. Select the package, and then click the Install Install icon icon.

  5. After the package is installed, click the Configure Configure icon icon on the recipe card to configure the resources deployed by the package.

    The Configuration Editor page opens, displaying all the resources of the recipe package. Configure the following resources before you activate and run the recipe.

Configure the Oracle Salesforce Connection

  1. On the Configuration Editor page, select Oracle Salesforce Connection, then click Edit Edit icon.
    The connection configuration page appears.

  2. In the Connection Properties section, enter the following details.

    Field Information to Enter
    Select Salesforce.com Instance Type Select Production or Sandbox based on your Salesforce instance type.
    API Version Enter your current Salesforce API version. To obtain the API version, see  Configure Salesforce.
  3. In the Security section, enter the following details.

    Field Information to Enter
    Security Policy Leave Salesforce Username Password Policy selected.
    Username Enter the username of the account created for Oracle Integration on Salesforce. See Configure Salesforce.
    Password

    Enter the password of the account created for Oracle Integration on Salesforce.

    Note: To the password, you must also append the security token generated for the same account.

  4. Click Save. If prompted, click Save for a second time.

  5. Click Test to ensure that your connection is successfully configured. In the resulting dialog, click Test again.
    A confirmation message is displayed if your test is successful.

  6. Click Back Back icon to return to the Configuration Editor page. Click Save again if prompted.

Configure the Oracle Marketo Connection

  1. On the Configuration Editor page, select Oracle Marketo Connection.

  2. Click Edit Edit icon.
    The connection configuration page appears.

  3. In the Connection Properties section, enter the Munchkin ID that you obtained earlier. See Configure Marketo.

  4. In the Security section, enter the following details.

    Field Information to Enter
    Client Id Enter the client ID obtained earlier. See Configure Marketo.
    Client Secret Enter the client secret obtained earlier.
  5. Click Save.

  6. Click Test to ensure that your connection is successfully configured.
    A confirmation message is displayed if your test is successful.

  7. Click Back Back icon to return to the Configuration Editor page. Click Save again if prompted.

Update the Integration Property for the App-Driven Flow

Update the integration property for the Oracle SFDC Marketo Lead2Lead Create integration flow.

This integration flow contains the following property:

For the procedure to update the integration property, see Steps 7 to 9 in Override Design-Time Properties in an Integration.

Configure the Lookup Table

The ORACLE-BRT-MKT_SFDC_LOOKUP table contains a sample mapping of lead-status values. Edit the table to map the lead-status values in your Marketo instance to that of your Salesforce instance.

  1. On the Configuration Editor page, select ORACLE-BRT-MKT_SFDC_LOOKUP, and click Edit Edit icon.

  2. In the Marketo_Value column, enter the lead-status values available in your Marketo instance (in separate rows). For example, Open, Qualified, and so on.

  3. In the Salesforce_Value column, against each Marketo value, enter a corresponding lead-status value available in your Salesforce instance.

  4. Click Save. If prompted, click Save for a second time.

  5. Click Back Back icon to return to the Configuration Editor page.

Activate and Run the Recipe

After you’ve configured the connections and other resources, activate the recipe package and run it.

  1. On the Configuration Editor page, click Activate in the title bar. In the Activate Package dialog, click Activate again.
    A confirmation message is displayed informing that the integrations have been submitted for activation. Refresh the page to view the updated status of the integrations.

    Note: Update the following property of the scheduled integration flow (Oracle Marketo Salesforce Lead2Lead CreateUpdate). You can update the integration property for this flow only after activating it.
    • EmailTo: This integration property holds the email address to which run-time exception emails are sent. Enter an email address of your choice.
      For the procedure to update the integration property, see Steps 7 to 9 in Override Design-Time Properties in an Integration.
  2. Run the recipe to create a Marketo lead when a Salesforce lead’s status is set to Open.

    1. Log in to your Salesforce instance.

    2. On the Salesforce Setup page (in the Classic UI), click the Leads tab.

    3. On the Leads Home page, in the View field, select an option to list the lead records, and click Go! if necessary.
      The leads on your Salesforce instance are displayed.

    4. Search for a lead record that is not in the Open state, and click its name to view it.

    5. On the lead’s page, click Edit.

    6. On the Lead Edit page:

      1. In the Lead Status field, select Open - Not Contacted.

      2. Click Save

    You’ve now successfully triggered the recipe, which creates a corresponding lead record in Marketo.

  3. Run the recipe to create leads in Salesforce for Marketo lead records.

    1. On the Configuration Editor page of the recipe in Oracle Integration, select the scheduled integration flow (Oracle Marketo Salesforce Lead2Lead CreateUpdate).

    2. Click Run Run icon, then click Submit Now.

    3. In the dialog that appears, click Confirm.
      The Schedule Parameters page is displayed, where you can specify a value for the LastRun parameter. This parameter stores the date and time of the most-recent successful run of the integration flow. The parameter’s value is automatically updated after each successful run, and only the Marketo lead records created after the date-time stamp stored as the parameter’s Current Value are processed by the integration in each run. If you want to change the date-time stamp for a specific scenario, enter the date and time of your choice in the New Value field in the format, yyyy-MM-dd HH:mm. To fetch all the lead records from the beginning, set the value as zero.

    4. Click Submit on the Schedule Parameters page.
      You’ve now successfully submitted the integration for execution.

      Note: You can also schedule this integration flow to run at a date, time, and frequency of your choosing. See Define the Integration Schedule.

  4. Monitor the execution of the integration flows in Oracle Integration.

    1. On the Configuration Editor page, select any of the two integration flows.

    2. Click Run Run icon, then click Track Instances.

    3. On the Track Instances page, you’ll see the integration flows of the recipe being triggered and executing successfully.
      The recipe synchronizes leads between Marketo and Salesforce.

  5. Log in to your Marketo instance and check for the new leads created.

    1. On the landing page, click the My Marketo tab.

    2. In the left navigation pane, click All People (APA).

    3. Under the People tab, search for the required lead records.
      You can search for the leads by their names, IDs, or any other configured fields.

  6. Log in to your Salesforce instance and check for the new leads created.

    1. On the Salesforce Setup page (in the Classic UI), click the Leads tab.

    2. On the Leads Home page, in the View field, select an option to list the lead records, and click Go! if necessary.
      The list of leads is displayed, which contains the records imported from Marketo.

    3. To view a lead record, click its name.

Related Documentation