Examine an Integration Use Case
Learning Objectives
After completing this unit, you’ll be able to:
- Describe the challenge of keeping updated inventory items in NetSuite in sync with products and associated price book entries in Salesforce.
- Explain how to use MuleSoft Composer to sync updated inventory items in NetSuite with products and associated price book entries in Salesforce.
- Prepare to create a flow.
Before You Start
This module builds on MuleSoft Composer Installation and Configuration, so make sure you've completed it before you continue. Recall from that module, you need to have the MuleSoft Composer User permission set if you want to build and run integration flows.
In this module, we assume you’re an authorized MuleSoft Composer user. If you’re not a MuleSoft Composer user, that’s OK. Read along to learn how they perform the steps. Don’t try to follow the steps in a Trailhead Playground, because MuleSoft Composer isn't available in the Trailhead Playground.
In this unit, you step into the role of admin for Northern Trail Outfitters (NTO), an outdoor and recreational gear retailer. First, you examine an integration challenge faced by NTO, and then you learn about a MuleSoft Composer integration solution. Finally, you learn how to prepare to create your flow.
Integration Challenge
Let’s take a look at an integration challenge NTO is facing. Your sales team at NTO uses NetSuite to manage and maintain inventory items. The team also uses Sales Cloud to manage and maintain products and associated price book entries that they use to sell to customers.
Currently, the sales team is performing these tasks manually. Every time there’s an inventory item that must be updated, a sales rep first updates the item with relevant details in NetSuite. Next, the rep determines if a corresponding product exists in Sales Cloud.
- If the product doesn’t exist, the rep creates a product with relevant inventory item details, including the item’s internal ID, in Sales Cloud. Next, the rep updates the inventory item with its associated product ID in NetSuite. Then, the rep creates a price book entry for the product in Sales Cloud.
- If the product exists, the rep updates the product with relevant inventory item details in Sales Cloud. Then, the rep updates the associated price book entry for the product in Sales Cloud.
This process is time-consuming and highly error-prone, so the team wants to automate it.
Integration Solution
As a solution, you need to automate the integration between NetSuite and Sales Cloud to achieve near real-time integration. To do this, you use MuleSoft Composer to create an integration flow that automatically syncs updated inventory items in NetSuite with products and associated price book entries in Salesforce. Specifically, the flow must perform the following tasks.
- Find any updated inventory item in NetSuite.
- Determine if a corresponding product exists in Sales Cloud.
- If the product doesn’t exist:
- Create a product with relevant inventory item details, including the inventory item’s internal ID, in Sales Cloud.
- Update the inventory item with its associated product ID in NetSuite.
- Create a price book entry for the product in Sales Cloud.
- If the product exists:
- Update the product with relevant inventory item details in Sales Cloud.
- Update the associated price book entry for the product in Sales Cloud.
To implement the solution using MuleSoft Composer, you perform these flow creation tasks.
- Prepare to create a flow.
- Design and test a flow.
- Activate a flow.
- Monitor and troubleshoot a flow.
You learn how to perform these tasks in the rest of this module.
Prepare to Create a Flow
Ready to get started?
First, gather all required information about the systems and assets your flow is going to use. The following table describes the systems the flow needs to connect to and the information you need for those systems.
System | Required Information |
---|---|
NetSuite |
|
NTO’s Sales Cloud |
|
As a best practice, use a test environment for these systems and data when you design and test your flows. After you’re done with testing, run the flows using your production systems and data.
Next, you learn about the prerequisites for your NetSuite and Salesforce environments.
Prerequisites for the NetSuite Environment
MuleSoft Composer’s NetSuite connector enables NetSuite users with the administrator role to perform integration tasks between NetSuite and other MuleSoft Composer-supported systems. Before you use MuleSoft Composer to create a connection to NetSuite, ensure that your NetSuite user has been assigned the NetSuite administrator role.
First, to capture the associated product ID for each updated inventory item, you must create a free-form text custom field called Salesforce Product ID for the Inventory Item entity in NetSuite. Follow these steps.
- Log in to NetSuite using your username and password.
- Click Customization | Lists, Records, & Field | Item Field | New.
- Populate the field with the following values.
- Label:
Salesforce Product ID
- Type: Free-Form Text
- Label:
- In the Applies To tab, select INVENTORY ITEM.
- In the Display tab, select Main from the SUBTAB picklist, and then click Save.
- Click Lists | Accounting | Items | New.
- Click Inventory Item. The Salesforce Product ID appears.
Next, to be able to view internal IDs in NetSuite, click Home | Set Preferences, select the Show Internal IDs checkbox, and then click Save.
Finally, let’s find out values for a NetSuite connection.
NetSuite Connection Parameters
When you create a connection to NetSuite using MuleSoft Composer, you must specify values for the following parameters.
Connection Display Name
The connection display name is any name of your choice.
Account
To find your NetSuite account, follow these steps.
- In NetSuite, click Setup | Integration | SOAP Web Services Preferences.
- Copy the account ID into a text file of your choice and save it.
Consumer Key and Consumer Secret
To generate a consumer key and consumer secret for a NetSuite connection, follow these steps.
- Click Setup | Company | Enable Features.
- Click SuiteCloud.
- Scroll down to the Manage Authentication section and select the Token-based Authentication checkbox.
- Click I Agree on the SuiteCloud Terms of Service page.
- Click Save.
- Click Setup | Integration | Manage Integrations | New.
- Configure your integration as follows and then click Save to generate a consumer key and consumer secret.
- Name:
Composer Integration
- State: Enabled
- Token-based Authentication: selected
- TBA: Authorization Flow: deselected
- OAuth 2.0 Authorization Code Grant: deselected
- User Credentials: deselected
- Name:
- Copy the consumer key and consumer secret into the text file and save it.
Token ID and Token Secret
To generate a token ID and token secret for a NetSuite connection, follow these steps.
- Click Setup | Users/Roles | Access Tokens | New.
- Configure the access token as follows, and then click Save to generate a token ID and token secret.
- Application Name:
Composer Integration
- Token Name:
Composer Integration - [yourusername], Administrator
- Application Name:
- Copy the token ID and token secret into the same text file. You’ll use all the values in this text file when you configure a NetSuite connection using MuleSoft Composer.
Prerequisites for the Salesforce Environment
First, it’s assumed that you have a sandbox org and a production org to build and run flows that sync with Salesforce.
Note: If you don’t have a sandbox org to design and test your flows, you can use a developer org.
Follow these steps to sign up for a free developer org.
- Go to https://developer.salesforce.com/signup.
- Enter your contact information.
- Enter a unique username.
- Click Sign me up, and wait for your welcome email.
- In the welcome email, click the link to set your password.
Next, when you create a connection to Salesforce using MuleSoft Composer, you’re prompted to grant MuleSoft Composer permissions. Ensure your Salesforce accounts for both your sandbox and production orgs are ready to grant MuleSoft Composer the following permissions.
- Access the identity URL service.
- Manage user data via APIs.
- Perform requests at any time.
Then, to capture an updated inventory item’s internal ID in a Salesforce product, ensure a text custom field called NetSuite Item ID is created for the Product object in the NTO org. Here’s an example of NetSuite Item ID for Product in the NTO org.
To learn how to create custom fields, see Customize a Salesforce Object.
Finally, recall that in Sales Cloud every product has a standard price and is associated with the standard price book. Your flow must access the standard price book in your org to create a price book entry associated with the product. To look up the ID of the standard price book, follow these steps.
- Log in to your NTO org using your username and password.
- From the App Launcher, enter
price books
and select Price Books. - Click Standard Price Book. The Standard Price Book appears. Make a note of the ID near the end of the URL because you will use this ID in your flow. In this example, it’s 01s1U000005mSpYQAU.
You’ve taken the first steps to prepare to create your flow with MuleSoft Composer. In the next unit, you learn how to design your flow.