Installation Manager

As with everything in life, it's rare that one size fits all—and it's hard to expect your integrations to do the same. Fortunately, we've built our Installation Manager to solve this very problem.

Using Installation Manager, ISVs can craft one-off, user-specific configurations to easily adapt to individual user requests.

Real world example

As an ISV, you've built and launched 5 integrations with SAP, NetSuite, Magento, Sage, and Salesforce CommerceCloud. Now, let's assume you have 100 customers using your Shopify integration to create new Purchase Orders. Of those 100 customers, you have an enterprise customer, ACMECo, (who is coincidentally your largest customer), requesting custom configurations. Seeing as this ACMECo is your single largest client, you're likely to want to support their requirements.

To solve this, we've built Alloy's Installation Manager.

Building a User-specific Configuration

Installation Manager makes it easy to make user-specific configurations. In this tutorial, we'll take a look at how to quickly modify a workflow and publish it to production in under 5 minutes.

To make a user-specific configuration, navigate to the Installations tab and select the Installation you want to make a change for as seen below.


An "installation" is created each time a user installs an integration. For example, let's say you've built a Shopify Integration and have 100 users actively using it. This means you have 100 installations. Each installation has an associated user and workflows.

Once you've selected the installation, you'll be taken to a detail page. This detail page will display all the relevant workflows associated with the installation you've selected.

To make a user-specific configuration, select a workflow. We'll choose the first one. You'll be taken into the workflow editor. From here, click the Create a new user-specific versionbutton.


Behind the scenes, when you click the "Create a new user-specific version" button, Alloy's workflow engine creates a new version, or copy, of the workflow in question. This ensures that when you make changes, your user-specific edits won't affect other users.

Once you've selected this button, you'll be taken into the workflow editor view. From here, you can make modifications to your workflows.

As it stands right now, our workflow creates a new order in Shopify each time a Custom Event is invoked as seen below.

Let's say you want to adjust the workflow so that the order created contains a special tax rate for this user. To do this, we'll add a math block to calculate the tax rate of 5% of the total price.

Next, edit the Shopify block to specify the tax price.

And voilà!

When you're ready to go live, simply press the Release user-specific version and this workflow will automatically be updated for the specific installation you've selected. Note that other users will not be impacted by this one-off change.


Assuming your workflow changes don't add any new blocks which might require the end user's configuration, changes you make will immediately go live upon releasing the new workflow version. If you made a change that is dependent on a user configuration (i.e. added a new block to the canvas that the user had not previously connected to), you'll need to use our SDK to prompt the user to reconnect.

Frontend SDK

Now that we've released the new version, we'll need to prompt the user to install the update it. Fortunately, the frontend SDK offers a handy method to handle workflow updates. By default, Alloy will not change the workflow for an end user unless you explicitly call the .update() method.

  workflowIds: ["64e17737781d52ace5be5fe0"],
  versionIds: ["64e1773c83b5183b6377a68e"],
  callback: () => { console.log(); },

The update()method takes an array of workflowIds you want to update the versions for. If you're updating three workflows, this method expects you to pass in three versionIds.

To pull a list of versionIds for a given workflow, call the GET List Workflow Versions endpoint. This endpoint returns the list of workflows for a given workflow along with a status parameter.

For workflows that do not require user input (i.e. if you just changed a configuration of a workflow but don't require user-input), then the workflow will automatically update once you've invoked this method. For workflows that do require user-input, such as if you added a new block to the workflow which requires the user to authenticate the new block, the Alloy Modal will appear, prompting the user to configure the necessary parameters.