Skip to main content
Version: 5.0.0

Onboarding ERP Customers with Alloys Installation Manager

ERP systems pose a particular challenge when it comes to integration. The systems are loaded with features, multiple ways to do the same thing, different approval flows, custom objects and fields, and other business logic differences between customers that makes building templated integrations between your app and an ERP challenging and in some cases, not possible.

Traditionally, doing these customized, per-client integrations in house involves:

  1. Defining mappings with the customer on a call (usually in a spreadsheet)
  2. Tooling/Setup to input those customizations in the system
  3. Engineering support for non 1:1 field mappings (ex. "Full Name" --> "first_name" "last_name")

With iPaaS, application developers often have an even greater challenge. iPaaS traditionally have been built to create templates that cater to the "vast majority" of your customer integration use-cases. But what about when there is no "majority" to cater to?

Alloy's installation Manager allows you to securely requisition client credentials, build on their customized data, and launch integrations with per-customer customizations. Let's see how.

Base Workflows

First, determine the conceptual architecture for the integration you want to offer, we'll use an Order Sync as our example

To enable a Full Order Sync, we'll want to

  1. Fetch historical Orders
  2. Listen for New and Updated Orders
  3. Write data back to the ERP (like a tracking number after shipment)

All customers will haver this same high-level data flow, though it's likely with ERP customers they may have Custom Objects, Custom Fields, or require additional logic such as filtering or conditionals that need to be handled during onboarding.

Retrieving/Receiving Data from 3rd parties (Netsuite)

In this example for Fetch Historical Orders, the initial flow has a Stop Workflow block. Since each Netsuite user has unique Purchase Order fields, we'll want to do that mapping per-customer, so it doesn't make sense to proceed til we've built that out.

BaseWorkflows

Now we release this workflow, and a user installs it

Netsuite_install

The installation triggers the workflow, and it stops

Customizing Workflows

After the Netsuite user has connected their account. An integration specialist, business analyst, or an onboarding team member should agree on the mappings between Your Application and their Netsuite Purchase Orders. Here's a simple example of how that can look

YourAppNetsuite
external_order_idOrderId
vendor.nameSubsidiary.refName
vendor.emailEmail
lineItems[*].skulines[*].ItemSku
lineItems[*].product_namelines[*].Name
lineItems[*].quantitylines[*].Quantity
lineItems[*].unit_costlines[*].Rate
custom_field_1cust_Assigned_Procurement_Rep
custom_field_2cust_ShippingPriority

In practice, you may have more fields than this to map and Ideally you can bake standard fields like OrderId into the default template, then only add the user-specific customizations in the next step.

Here's an example of how we might pre-map some fields into our destination data structure. This is the default workflow the user installs

Custom JSON API Call

We've pre-mapped some of the standard fields like external_id and email which are usually standard. lineItems today are handled separately in a custom code block, and we've left additional fields blank to be filled in with the User Specific mappings you determine with the end user.

Now, let's customize it according to the mappings in the table for the specific user. Find the installation and workflow for the specific user in Installation Manager.

 Installation Manager

Click into the Initial Sync Workflow and Create New User-Specific Version.

Create User Specific Version

Remove the Stop Workflow Block and fill in the mappings