This article will walk you through the process of creating a Guided flow. We will also learn what a flow is and what are its uses.
First, you go to Dashboard-Integry.
Above is the main page showing the Title of the flow, its description, and an app/connector assigned against that flow. All the information of that connector is linked to that flow. Flows are used in deployments and whatever app that flow is linked to, that flow is shown in deployments according to that.
There are two basic structures of flows. This article covers two basic structures of a Guided flow.
1. Trigger Based
When you create an integration, it needs a triggering event against which it can apply any action. All triggers and actions are divided into activities and all activities belong to connectors. So basically, all connectors host activities. There are some connectors created by end-users, while others are provided by Integry.
You can select any app connector as shown in the screen above, and assign accounts in the triggers.
When you set an account, you can see a preview icon against it. This icon shows that, if an end-user using this flow in the Integrations Marketplace creates an integration, the authorization will be shown to the end-user as it is. The end-user needs to add that authorization. The following screen shows a Preview icon in front of 'Connect your Mailchimp Account'.
The preview button on the top indicates an integration form when an end-user creates it using that flow. When you click preview, you will see the following view.
When you click on Configure, the following window can be seen.
Configure section is being shown in Design, which contains Title, Description, and all the required fields for triggers. There are different types of required fields, for example, text fields, dropdowns, dynamic fields or custom fields, and placeholder text.
There are two toggle buttons that can be seen in the above screenshot, Required and Visible. Required if switched on means that the end-user needs to populate this field before moving to the next step in the integration flow. The Visible button when switched off means this field won't even be shown to the end-user when he is creating an integration, and he won't be getting an option to populate this field.
Additionally, in advance settings opened above, there are also a few options available.
There is an Add condition button present in configure section in the above picture. You can allow a trigger to be initiated only when a certain condition is fulfilled.
There are tag icons being shown above against fields which gives the option to select from all the steps being provided by the field. The following screen shows a condition being added for email.
When you click continue, you get to the test section shown below. The fields are the same, but the capability options are different in Configure and Test sections. Configure section simulates the form which actually the end-user will be filling in the Integrations Marketplace while the test section can be directly filled.
When you click the test button, you will have to save the flow if you added a new step.
Click on Save on the screen shown above.
After you hit test, you will see a waiting UI. There is a pre-save run seen in the above screenshot when you click test, which creates a trigger on your website against the list that is created. If you want to test this, we just need to go to your website to create a contact which will be reflected here.
You can see below that a trigger is added, which when opened, will show the contact that you added to your website. All the information is shown in custom fields which are dynamic.
There is a visibility icon 'User will fill fields' being shown in the configure section. This icon means that the Configure fields are populated by asking from the end-user. If you switch off the 'User visible form' button, the end-user cant see the configure section in the preview and hence can`t add any field.
There are some manual fields shown on the right side above, that you can add, for example, Section, Tabs, HTML, Templates, and Buttons. All these fields help control the fields in the preview section shown to the end-user dynamically. Add section will add a section in which you can further add child steps. If you add a template, you can initiate it on the basis of certain conditions. Similarly, you can add an HTML address and Tab heading. Tab heading is used for giving different headings in one section. You can also add buttons in the Integrations Marketplace that can be assigned certain actions. Template if added here can be initiated on the basis of a specific condition.
Further, you can add a child step for which you have various structures or step types, for example, query or action. A child step is added by clicking on the Add Step button shown below. The most commonly used flow is to add action against a trigger.
If 'User visible form' is off then you will see that the test page is opened when you add this step. If you switch on the 'User visible form', it will go back to configure page. You can fill out the configure page exactly like before. The Default value of the Email that you set will be the one selected for the subscriber when action is run against this trigger. If you have made this an automated field that the end-user doesn't have to populate, then you can switch its visibility off like the below screenshot, and it will be added to hidden fields.
When you click on the Subscription Status, you can see in the picture that we can select its value from a drop-down menu.
This is a required field, so we can't turn its visibility off.
Next, when you click on merge fields, the app of the available trigger will be added. If you have more triggers in a flow, they will be shown in the drop-down form where the end-user can do the mapping. This is a visible field and not a required one because an end-user can skip merge fields if he wants. You can now test this step by clicking on the Test button.
2. Setup based
In contrast to this, there is initial sync that can import user data and create integrations using guided flows. The structure of the initial flow is defined as follows. The common step used for importing this is the Setup step shown below. That is, if an end-user creates an integration using guided flow, he can import contacts directly without waiting for any trigger. This is one-time integration sync. The setup step is used to identify it as initial sync.
The data here is coming from a query. 'Get contacts' is a query shown in the screenshot below.
When we select 'Get contacts', we can set a limit for the record, as seen below.
We can see that we have visibility of the account in the screenshot below. We can control user visibility from here. We need to control the list as well. When an end-user creates an integration using this flow, he can simply select the list against which he needs the data to be imported.
Now you can test this by clicking test and saving the flow as shown below.
After a successful run of the test, we will get the first iteration as Iteration1. Queries actually work in iterations. If the size of data exceeds a page, we forward the data in iterations. This query will allow using the Sendinblue list data in an action.
Now you can add a child step as follows.
This provides bulk data. Some apps allow us bulk creations while others don't. For this, we use the loop step. You can give any name to Variable here in configure loop.
Also, the data on which it is iterating is given in Array as below.
Now you save and test it. The first iteration shows the first contact's breakdown, as shown in the screenshot below, while the second iteration shows the second contact's breakdown and so on.
Below is the second structure.
In the above screen, there is a setup identifying that there is an initial sync after initial integration creation. Then there is a query added which identifies which data to import and from which list, app, and account. Loop actually makes the bulk query data handleable.
Next, you can see a floating menu on the right. For the floating menu, we've got five basic fields. The first one, General settings highlighted in the screenshot above, has four basic fields title, description, tooltip, and integration creation button label.
The above screen shows the General settings expanded to show all the fields. The title is what the flow title is going to be in the deployment where the flow is added. If you update the title from here, it gets updated from there as well and vice versa, as seen in the below screenshot. Any description that we add in the Description box will be reflected as it is on the deployment page. You can also add tooltip text, so if an end-user holds on the flows card on the deployment page, it will get tooltip text, so you can simply add whatever string you want as seen.
When an end-user creates an integration using this flow, he has to click a creation button at the end. So you can add that button text from the 'Integration creation button label' as shown in the screenshot above. Anything we add to this would be reflected in the integration creation button.
The above screen shows the next floating menu called Fields. Fields is just like how the Add tag floating menu works. You can see an Add tag menu below.
Here you can select the steps and select any type of tag the step provides us with. In some cases, we've got additional SDK tags as well. If you select a tag from here, you can select a value from the right side as well.
Next from the floating menu is the Flow Behavior highlighted in the screenshot above. It's similar to how our General Settings work. But this UI covers some toggles, for example, Wizard, loop prevention, force update order, and cache output, as shown in the below screen.
We've got different types of flows. There are single trigger-based flows as well as multi. Wizard toggle is enabled for a multistep wizard. For loop prevention, if you've got two-way update cases that will create a looping integration. So we can simply enable this to handle any looping case. Force update order is used when there's a chance to receive numerous Webhooks in the same trigger in a short amount of time. These Webhooks will get executed in the same order as we received them if this toggle is enabled. Additionally, we have cache output with which we can cache the output of this flow.
As seen in the screenshot above, next from the floating menu is Error Handling which is used in case an integration's trigger or the action throws an error. You can send error messages to the end-user in the form of email or app-specific messages. If you enable error handling, we can simply throttle those errors. The throttle error notification for the tab will enable throttling for the time specified. So you can throttle this in case of numerous errors and send one error message in one hour and another error message in the second hour.
In the screenshot above, you can see that you can also use a URL to handle the error handling endpoint where you can forward the error so that the message can be forwarded to wherever a customer would like. They can send an email to the end-user or a personal message by that URL. The Error payload would handle all that stuff.
Lastly, on the floating menu, we have got Product Info as expanded in the above screen. This handles a flow's elegant detailed UI. You can add screenshots, descriptions, categories and keywords to it.
You can see flow's product info like down below. This is how a product info page looks for flows. Any screenshots that you add under the screenshot tab will be reflected on the product's page. Similarly, any descriptions you add to the flow record will be reflected.
This is all on Guided flows, you can check out the article about Custom Flows here.