How to create integration Templates

Saas partners can create integration templates, that are made available in their Hub, or that can be fully embedded in their own platform.

Warning:

SaaS Admin features are not available in free trial accounts. Please contact your account manager to have your account upgraded to a SaaS Admin account.

A template is a Blend that has a setting Is template. Once a Blend is turned into a template, it can be made available to customers of the SaaS partner. Towards the customer, the template is referred to as an integration, for example, the ACME Salesforce integration.

If you have never created an integration (a Blend) on Blendr.io, check the Getting started video video. Please contact your Blendr.io account manager if you would like Blendr.io to create one or more integration templates for you.

A customer will typically click on the button Use integration, and this will create a copy of the template in the account of the customer. The copy is an actual Blend that will e.g. run automatically according to its schedule or that will be triggered by a Webhook.

Creating a new template

Make sure you are logged in to Blendr.io with your SaaS Admin account. Go to the tab My integration templates and click on Add new template: alt text

This will open the Blend editor with a new blank Blend, and the setting Is template will already be turned on. Please make sure to double-check a few Settings in the right-hand pane under the tab Settings, at the bottom: alt text

  • Template: should be set to Yes
  • Status: should be set to Live to make the template visible to customers
  • Name: e.g. ACME Salesforce integration
  • Description: describe the features and limitations of this integration, you can use markdown to add e.g. titles, bold text, hyperlinks, etc. (HTML is not accepted)

Adding a Setup, Settings and Delete flow

When the toggle Is template is turned on, you can add extra Start blocks to your Blend, Setup, Settings and a Delete Start block: alt text

Setup flow

Add a Setup block if you want to create a Setup flow. The Setup flow is a Setup Wizard that the customer will see after clicking the button Use integration. The Setup flow is executed only once. If the customer wants to run the Setup again, she will have to delete the integration and add it again.

Settings flow

Add a Settings block if you want to create a Settings flow. The Settings flow is a Settings Wizard that the customer will see, each time she clicks on the Settings button, on the detail page of the integration. The Settings flow can thus be executed multiple times. Please note that the Settings flow is also executed automatically after the Setup flow, so the Settings Wizard screens are displayed immediately after the Setup Wizard screens.

Delete flow

Add a Delete block if you want to create a Delete flow. The Delete flow is executed when the template is deleted by the user. This flow can perform clean-ups, e.g. removing data from the Data Store or the CDP.

Defining user inputs for the Setup Wizard

If you want to allow the customer to set options during Setup, add one or more input blocks in the Setup flow. Each block will be displayed as a new consecutive screen in the Setup Wizard. Example: alt text

In the Setup flow, you will typically perform one-time actions, e.g. creation of custom fields, one-time imports, etc. You will typically add Conditions to take into account the choices made by the customer. Example: alt text

Make sure to Persist the user inputs, in case you want to remember the choices made by the customer. This is needed when you add e.g. a Condition in the normal run flow of the Blend (under the regular Start block), that references an input from the Setup flow: alt text

Defining user inputs for the Settings Wizard

If you want to allow the customer to set options under Settings, add one or more input blocks in the Settings flow. Each block will be displayed as a new consecutive screen in the Settings Wizard. Example: alt text

Similar to the Setup flow, please make sure to persist user inputs, since you will most likely read these inputs during each run of your Blend: alt text

Reading user inputs from Settings

You will typically read Settings from the customer, in each run of your Blend: alt text

Settings of the template

Make sure to set all the settings of the template on its detail screen: alt text

Settings:

  • Disable Run: typically this is set to Yes so that the customer will not see a Run button to run the integration manually. This setting should only be set to No for integrations that have to be executed manually, e.g. for a one time import or export
  • Run immediately after Setup: set to Yes
  • Real-time: set to No
  • Template: set to Yes

Setting a schedule

If your integration needs to run on fixed intervals, make sure to add a schedule on the detail page of the template (cannot be done inside the Blend editor): alt text

Settings:

  • Schedule every: set the interval, only use short intervals (e.g. every 30 seconds or every minute) for short running Blends, typically Blends that use incremental blocks that only process new or updated data
  • Automatically set start time: change this to No if your integration needs to run e.g. always at night at 2AM. If set to Yes, the actual start time will depend on the time the integration was activated by the customer
  • Schedule can be changed by user: typically this is set to No so that your customer cannot change the schedule
  • Run immediately after Setup: set to Yes

Add the template to a category (group)

Make sure to add the template to at least one category or Group to make it visible in your Hub. Start typing a category name to add it, e.g. Root to add it to the main page of the Hub:

alt text

Your template in your Hub for customers

Your customer will now be able to find the integration in your Hub or Market Place: alt text

The user can click the integration and click on Use integration on its detail screen: alt text

The user will now have to connect the tools used in the integration, and then complete the Setup Wizard (including the Settings Wizard): alt text

alt text

Once this is done, the integration is live, and running according to its Schedule or triggered by Webhooks. The user can click on Settings at any point in time to change the Settings of the integration. The user can disable the integration or delete it to fully remove it from its account.

Pushing updates of templates to customer accounts

An instance of a template (Blend or Bundle of Blends) is always a copy of that template in the customer account, so it will never be updated automatically after a template has been updated in the SaaS admin account.

You can find an overview of all instances of a template under the tab Instances on the template home page: alt text

The list will show which version a customer is using (date & time) and if the instance is still compatible, meaning it can be updated to the current (new) version. To update the instances in customer account, you can select one or more instances with the checkboxes, or click Select all. Next click the Update button.

There are two reasons why an instance is not compatible anymore with the current version of the template:

  • The Blend was manually changed in the customer account. Note: this includes any change that was made to the Blend (Save was clicked or Blend was executed manually inside the Blend editor which automatically saves the Blend).
  • The Blend has different persisted inputs, e.g. a new required field was added in the Setup or Settings flow in the template.

What to do when an update is needed and the current instance is not compatible ?

  • You can make changes manually in the Blend inside the customer account
  • You can remove the instance and install it again. Templates should be created best on patterns that will e.g. avoid duplicates, so doing a full rerun of the template should not cause issues in terms of the data being synced. More info: Design patterns overview

Note that the pointers (from incremental blocks) of active Blends will not be affected when you push a template update, the pointers will not be reset.