Make your sites more powerful and useful with native Webflow automation.
With Webflow Logic, you can construct and perform automated workflows (also known as “flows”) that collect and route sales leads, connect with your customers, manage your site content, and more — all from within the Webflow Designer.
How to access Logic
You can get started with Webflow Logic by clicking the Logic icon in the left toolbar to open the Logic panel. From here, click the Flows tab to access high-level information about your flows (e.g., flow name, trigger, trigger source, status, etc.) and use the Flow editor to build, manage, and test flows.
How to create and construct flows
Flows are logic sequences built with 3 different parts: triggers, actions, and conditions. You can create a new flow by opening Logic panel > Flows tab and clicking New flow to enter the Flow editor.
In Flow settings, you can give your new flow a name and description to clarify the purpose of your flow and differentiate it from other flows. Here, you can also find your Flow ID, which identifies your flow for troubleshooting.
Then, you can begin to construct your flow by choosing a trigger and clicking and dragging actions and utilities to the connection points (i.e., the points where blocks can be inserted) on the Flow editor canvas.
Important
As you construct your flow, a yellow “wrench” icon will appear on each block until its block settings are configured. Once the block settings have been configured, the yellow “wrench” icon will be replaced with a green “checkmark” icon.
Note
If you leave the Flow editor without applying your changes, the flow will remain in draft mode and your work will be saved.
You can rearrange the blocks in your flow by clicking and dragging them to different connection points. You can also delete blocks from your flow by right-clicking on the block and clicking Remove block, or by selecting the block and pressing Delete on your keyboard.
Triggers
Every flow begins with a trigger – an event that happens either on your site (e.g., a form submission) or outside of your site (e.g., a webhook event) which then starts the flow.
To add a trigger to your flow, click Select a trigger starting this flow and choose the trigger you want to start your flow. There are 2 triggers available:
-
Form submission – runs when the selected form on your Webflow site has been submitted
-
Incoming webhook – runs when an event in an external service occurs
Note
You can only add one trigger per flow. Multiples of the same form cannot be connected to a single flow.
Once you’ve added a trigger, select the trigger block on the canvas and click into the Trigger name field to give your trigger a name. Then, you’ll need to configure your trigger settings based on the type of trigger you select (e.g., Form submission or Incoming webhook).
You can remove or replace the trigger on your flow by right-clicking on the trigger and clicking Remove trigger, or by selecting the trigger and pressing Delete on your keyboard.
You can view the output of any trigger (i.e., the information the trigger shares with subsequent blocks in the flow) in Trigger settings > Output tab.
Following your trigger, you can either execute actions (e.g., Send email notification, Create CMS item, Invite user, etc.) or set conditions with utilities.
If you’re using a Form submission trigger, you’ll first need to add a form to your site. Then, you can connect your flow trigger to that form and when a site visitor submits the form, the flow will run.
Important
Forms can only be connected to one trigger at a time – that is, you can’t use a form as a trigger for two different Logic flows.
To choose the form to connect to your flow:
- Open the Flow editor
- Select the Form submission trigger block on the canvas to open Trigger settings
- Choose your form name from the dropdown menu
You can also add a Form submission trigger from the Designer canvas. Select your form and open Element settings panel > Form settings > Source and change the Source to Logic. Then, either Add new flow or Browse flows to connect your form to a new or existing flow.
If you’d like to disconnect a form from your form submission trigger, open the Flow editor, and go to Trigger settings > Form dropdown and click Disconnect form.
Incoming webhook
The Incoming webhook trigger allows you to pass real-time data from external applications (e.g., Airtable, Make, Twilio, etc.) to your flow in JSON format. In other words, the Incoming webhook trigger allows your external apps to “speak” to your flow.
To use an Incoming webhook trigger, copy your Webhook URL from the trigger settings, then paste it in the third-party app which will send requests to this webhook. For example, you could send a webhook from Mailchimp which would then set off your Logic flow.
Note
Incoming webhook triggers require the use of external third-party services to interact with the webhook. Please reach out to the third-party service directly for support or functionality questions.
Actions
Action blocks let you establish what you want your flow to do. They can optionally accept input data, execute a piece of logic, and always provide output data (i.e., information that will be shared with subsequent blocks).
You can view the output data (i.e., the information the block shares with subsequent blocks in the flow) of Action blocks in Block settings > Output tab.
Let’s take a look at the available Action blocks:
Send email notification
The Send email notification block allows you to send a customized email notification to any content editors of your site or members of your Workspace when the flow is triggered.
Select the block in the Flow editor and go to Send email notification block settings. Then, click into the Send to field to select individual collaborators from the list of available collaborators, or select All collaborators to send an email notification to all collaborators in the list.
You can customize the subject line and message of the email using dynamic data from your trigger. The following data types can be used in the subject and message fields:
- Plain
- Email
- Phone
- Number
- Text Area
- Checkbox
- Timestamp
To unsubscribe a collaborator from email notifications, click the “trash” icon next to their name.
Create CMS item
The Create CMS item block allows you to create a new CMS item within a Collection when the block is triggered. The block settings will display the fields available in the selected Collection.
Note
Make sure you’ve created a CMS Collection prior to setting up your flow to ensure you can connect your Create CMS item block to the Collection.
With this block, you can map static input or dynamic data from your flow (e.g., trigger data from form submissions or block output data) directly to your CMS Collection’s basic info and custom fields. You can only map like data types together (e.g., data from a plain text field in a form can only be mapped to a plain text field in the CMS). Supported bindings include:
Form field type |
CMS field type(s) |
Plain text |
Plain text (includes name and slug) |
Number |
Number, plain text (includes name and slug) |
Checkbox |
Switch (true/false), plain text (includes name and slug) |
Email |
Email, plain text (includes name and slug) |
Phone |
Phone, plain text (includes name and slug) |
Note
We do not currently support mapping from a plain text field to a link-type field in the CMS. We also do not support fields made using custom elements.
Important
You may notice a yellow “wrench” icon appear next to your variables as you map them to your CMS Collection fields. This “wrench” icon next to a variable indicates that you need to set a fallback for that variable. Learn more about using fallbacks.
You can also set the CMS item to draft status, stage it for publish, or live item publish when the flow is triggered. Learn more about publishing options.
Delete CMS item
The Delete CMS item block allows you to delete a CMS item within a Collection when the block is triggered. You can delete by CMS item ID or select a CMS item by name.
Note
Make sure you’ve created a CMS Collection and sample items prior to setting up your flow to ensure you can connect your Delete CMS item block to the Collection.
Update CMS item
The Update CMS item block allows you to update a CMS item’s basic info and custom fields by CMS item ID or by CMS item name using static input or dynamic data from your flow (e.g., trigger data from form submissions or block output data).
Note
Make sure you’ve created a CMS Collection and Collection items prior to setting up your flow to ensure you can connect your Update CMS item block to the Collection.
Just like the Create CMS item block, you can map your form data directly to your CMS Collection’s basic info and custom fields. You can only map like data types together (e.g., data from a plain text field in a form can only be mapped to a plain text field in the CMS). Supported bindings include:
Form field type |
CMS field type(s) |
Plain text |
Plain text (includes name and slug) |
Number |
Number, plain text (includes name and slug) |
Checkbox |
Switch (true/false), plain text (includes name and slug) |
Email |
Email, plain text (includes name and slug) |
Phone |
Phone, plain text (includes name and slug) |
Note
We do not currently support mapping from a plain text field to a link-type field in the CMS. We also do not support fields made using custom elements.
Important
You may notice a yellow “wrench” icon appear next to your variables as you map them to your CMS Collection fields. This “wrench” icon next to a variable name indicates that you need to set a fallback for that variable. Learn more about using fallbacks.
You can keep the current status of the CMS item you’re updating or set it to draft status, stage it for publish, or live item publish when the flow is triggered. Learn more about publishing options.
Search for CMS items
Note
Collections containing required fields that aren’t supported in Logic aren’t available for use in the Search for CMS items block.
The Search for CMS items block allows you to search for CMS items by CMS item ID or by name using data from your flow. This allows you to execute actions using data from the returned CMS item later on in your flow, which can be helpful for sites with user-generated content or marketing sites that collect leads.
For example, if you built a cookbook site that allows site visitors to submit recipes, you could search for recipes in the CMS using the recipe name from your form submission and then, using the Conditional rule utility block and Send email notification blocks, send the submission to site editors if an existing recipe with that name is found. Then, site editors can delete/merge the identical recipes.
Important
If no item is found in a Search for CMS items block followed by a Conditional rule utility block, the flow stops at the Search for CMS items block and does not execute subsequent actions.
Make HTTP request
The Make HTTP request block connects Webflow Logic and your external tech stack (e.g., Mailchimp, Airtable, etc.) by allowing you to automate HTTP requests to any RESTful API endpoint. Then you can execute actions using the response data later on in your flow.
Learn more about the Make HTTP request block.
Invite user
The Invite user block allows you to automate inviting users to your User Accounts site and assigning them to access groups. This block works well, for example, with a Form submission trigger connected to a lead generation form that lets site visitors indicate that they want a user account.
Delete user account
The Delete user account block allows you to automate deleting users from your User Accounts site by user ID or user email. You can also select an existing user on your site.
Update user account
The Update user account block allows you to update a user’s preferences (e.g., for marketing communications) and access groups by user ID or user email. You can also select an existing user on your site to update their preferences.
Utilities
The Conditional rule utility block lets you set conditions that determine what happens next in your flow: If condition A, then do action B – but if condition C, then do action D.
In other words, you can create a condition and set actions to occur if the condition is met (i.e., actions will occur on the “true” branch) and if the condition is not met (i.e., actions will occur on the “false” branch). This enables you to automate email notifications, HTTP requests, manage CMS Collection items, and more, based on rules from the flow’s trigger setting or output data.
For example, if you place a Conditional rule utility block after a form submission trigger, you can create conditional rules based on output data (e.g., name, email, etc.) from form submissions. To further elaborate on this example, you could create a rule that executes a part of your flow if someone named Mike Wazowski submits your form. If Mike Wazowski submits your form, then one part of your flow would run, but if anyone else (not named Mike Wazowski) submits your form, a different part of your flow would run.
Note
You don’t have to set actions on both the “true” and “false” branches. For example, if you want to create a CMS item when a form is submitted with the “name” field set, only include the Create CMS item action on the “true” branch. The “false” branch (which will execute when the form is submitted without a value in the “name” field) has no actions and will do nothing.
You can create conditional rules based on output data from all previous blocks in your flow. For example, if you create a flow where a form submission triggers a Search for CMS items action block, your Conditional rule utility block can use data from form submissions and data from CMS items.
This can be helpful for sites with user-generated content or marketing sites that collect leads. For example, on a cookbook site that allows site visitors to submit recipes, you could create conditional rules to send recipe submissions to different Collections (e.g., “Breakfast,” “Appetizers,” “Desserts”) based on the type of dish. Or, on a marketing site that captures sales leads, you could search for existing leads in the CMS using the company name from form submissions and then either create or update leads in the CMS based on the company name.
To configure a Conditional rule utility block, select the block, then go to Conditional rule settings > Condition. Choose a field from the Select field dropdown, and then a type of logic from the Select logic dropdown (e.g., Is set, Is empty, Ends with, etc.).
The following field types are available for use in the Select field dropdown:
- Plain text
- Email
- Phone
- Number
- Text area
- Checkbox
- Select
- Radio button
If you’ve chosen a type of logic (also called an “operator”) that requires a comparison (e.g., Equals, Contains, Starts with, etc.), an Enter text field will appear. Here, you’ll need to either type in your desired text or add a variable by clicking the purple “dot” icon in the field. Learn more about available operators in Logic.
The variables you’ll have access to in this field will depend on the first field (i.e., data type) and type of logic you’ve chosen. In the example marketing site mentioned above, we would create a comparison to determine whether “company name” in the form equals or contains “name” in the CMS item. The variables in this example are “company name” and “name.”
Important
All comparisons are case sensitive. For example, if the condition is “Name Contains G,” “Grímur” returns true, but “grímur” returns false.
You can unlink your fields or logic at any time by clicking the Condition dropdown and then clicking Unlink.
Available operators
Let’s take a look at the available types of logic, or “operators,” for each data type:
Data type |
Operators |
Plain text |
- Is set
- Is not set
- Equals
- Does not equal
- Contains
- Does not contain
- Starts with
- Does not start with
- Ends with
- Does not end with
|
Number |
- Is set
- Is not set
- Equals
- Does not equal
- Is greater than
- Is less than
- Is greater than or equal
- Is less than or equal
|
Option |
- Is set
- Is not set
- Equals
- Does not equal
- Contains
- Does not contain
|
Boolean (also called “Switch” in the Webflow Designer) |
|
Phone |
- Is set
- Is not set
- Equals
- Does not equal
- Contains
- Does not contain
|
Email |
- Is set
- Is not set
- Equals
- Does not equal
- Contains
- Does not contain
|
Link |
- Is set
- Is not set
- Contains
- Does not contain
- Starts with
- Does not start with
- Ends with
- Does not end with
|
Color |
|
Video link |
- Contains
- Does not contain
- Starts with
- Does not start with
- Ends with
- Does not end with
|
Select |
|
Radio button |
|
Note
The Is set operator tests whether a variable (e.g., form input value) exists. It will return “false” if text contains only whitespace characters (i.e., spaces). The Is empty operator tests whether a variable (e.g., form input value) contains non-empty data. It will return “true” if the variable contains data, or if the variable contains only whitespace characters (i.e., spaces). In other words, if a site visitor submitted a form with only spaces in an input field (e.g., the “name” field), a conditional rule for the input field using Is empty would return “true” and run the “true” branch of the flow, and a conditional rule using Is set for the input field would return “false” and run the “false” branch of the flow.
How to use fallbacks
Fallbacks are default values to be used in place of a variable if the variable is unavailable. You’ll need to set fallbacks when working with data from Incoming webhook triggers or data from Form submission triggers where form field inputs that aren’t required. A yellow “wrench” icon next to a variable indicates that a fallback is needed for that variable.
Let’s say you created a flow that creates CMS items using data from a form submission which triggers the flow. Your goal is to name the CMS items using data from the “name” field in the form, and the “name” field isn’t required to submit the form. If the “name” field was left blank in the form submission, the fallback you set would be used to name the CMS item instead. For instance, if you set a fallback as “No name provided” and a site visitor submitted the form without filling out the “name” form field, your CMS item would be named “No name provided.”
To set a fallback for a variable:
- Click the yellow “wrench” icon next to a variable name
- Type in a fallback value, or click the purple “dot” icon to use another variable as a fallback
To remove a fallback for a variable:
- Click the variable with the fallback value you’d like to remove
- Delete the fallback value from the Fallback field
How to test a flow
It’s best practice to test a flow before publishing it to ensure that your blocks are configured correctly and your flow runs smoothly. This is also helpful for debugging flow issues.
To test a flow, click Test flow in the upper right corner of the Flow editor. This will open a modal menu window where you can enter sample data for the flow’s connected trigger to run the flow (e.g., if you have a Form submission trigger, you’ll fill out a sample form). Once you’ve entered your sample data, click Run test to run a test flow. Your test result will appear in the modal menu window after the test runs.
You can also test Make HTTP request blocks separately from the rest of your flow. Right-click on the Make HTTP request block and select Test this action or select the Make HTTP request block on the canvas and click Run test to complete setup in Block settings — this will open a modal menu window where you can enter sample data for the values you’ve used in Block settings.
Once you’ve entered your sample data, click Run test to run a test of this block. Your test results will appear in the modal menu window after the test runs. You can then click Apply data to use the test response to test the rest of your flow.
Run history
Run history lets you view a log of successful and failed past runs of your flows. To access Run history, open Flow editor > History tab. You can click on any timestamp in Run history to view the input data that triggered that run of your flow.
How to publish flows
The process for publishing your flow will differ depending on the trigger (i.e., Form submission or Incoming webhook) you use to start your flow. You can manage publishing flows separately from site publishing if your flows don’t interact with anything on the site (this won’t be an option for flows with Form submission triggers, since those rely on forms on your site).
Note
It’s not possible to publish flows to a single domain. You must publish flows to all domains connected to your site.
Important
If your flow contains blocks that affect CMS items (e.g., Create CMS item, Delete CMS item, etc.) and you make a change to the CMS Collection schema (e.g., adding or deleting a Collection field), you’ll need to reconfigure your flow and stage it for publish.
To publish your flow using a Form submission trigger, you’ll first need to select the form that triggers your flow from the Form dropdown in the Flow editor. To publish your flow on your next full site publish, click Publish and then Stage flow for publish.
Important
If you make any changes to the form used in the form submission trigger (e.g., adding or removing fields), you’ll need to publish your site again so the modified form is available for use in your flow.
You can also unpublish your flow from your live site immediately by clicking Publish and then Unpublish flow.
If you attempt to publish your site while there are unresolved issues with any of your flows, an alert modal will appear with a list of flows with unresolved issues. If you proceed to publish your site without resolving them, any flows with unresolved issues will be disabled.
Publishing an Incoming webhook flow
Unlike flows that use Form submission triggers, flows that use Incoming webhook triggers don’t necessarily require you to publish your site.
You have 2 options for publishing flows that use Incoming webhook triggers:
- If you’d like to publish the flow on your live site immediately, click Publish and then Publish flow now
- If you’d like to publish the flow on your next full site publish, click Publish and then Stage flow for publish
You can click Publish flow now in the Flow editor any time you want to push new changes to your flow live — without having to publish your full site each time. Future changes you make to your flow will not be reflected on the live site until you click Publish flow now.
You can also unpublish your flow from your live site immediately by clicking Publish and then Unpublish flow.
If you attempt to publish your site while there are unresolved issues with any of your flows, an alert modal will appear with a list of flows with unresolved issues. If you proceed to publish your site without resolving them, any flows with unresolved issues will be disabled.
How to rename, duplicate, and delete flows
You can find the options to rename, duplicate, and delete flows in the dropdown arrow menu next to the flow name.
You can also rename your flows by replacing the Flow name in Flow settings.
Note
To rename an individual block, you can enter or replace the Block name in Block settings. To delete an individual block from your flow, right-click on the block and click Remove block, or select the block and press Delete on your keyboard. Individual blocks cannot be duplicated at this time.
FAQ and troubleshooting tips
How many flows can I have on my site?
To prevent performance issues, there is a limit of 20 flows per site. If you attempt to create more than 20 flows on a site, you’ll be prompted to remove a flow first.
How many conditional rules/action blocks can I use in a single flow?
You can add up to 50 blocks in a single flow. This includes the conditional block. A “Maximum number of 50 blocks reached” error message will appear when the limit is reached.
Is Logic included in my site/Workspace plan?
You don’t need a site or Workspace plan to use Logic, but you may need a site or Workspace plan to increase your usage limits or the number of flows you can create. Check out our plans and pricing page for information on Logic usage limits.
What Workspace roles have permission to build and manage flows?
All Workspace roles have permission to build and manage flows. Please note that Workspace members with site-level Can design or Can design (Limited) roles cannot publish full sites, so these Workspace members may require help from other members to publish flows that interact with elements on the site (e.g., flows that use Form submission triggers). Learn more about Workspace roles and permissions.
Help! I can’t apply changes to my flow!
If you’re using a form submission trigger, make sure you’ve published your site after connecting your flow to the form or making any changes to the form. Once you’ve published your site, you can click Stage for publish to apply changes to your flow on your next full site publish.
If you’ve done this already and are still unable to apply changes to your flow, check that all block settings have been configured appropriately and the green “checkmark” icon appears on all the blocks in your flow. If a yellow “wrench” icon appears anywhere in your flow, this indicates that block settings still need to be configured.
What happens when a form field used in a flow is changed?
The published flow will no longer work. This will occur if a form field is removed, added, or renamed. You’ll need to reconfigure your flow, stage your flow for publish, and publish your site to fix your live flow.
My flow was previously working, but now an exclamation point shows up on my flow trigger.
If you’re using a form trigger and you’ve made changes to your form (e.g., changing the form name, adding or removing form fields, etc.), you’ll need to reset the form trigger to reconfigure your flow. To do this, select your trigger in the Flow editor, go to Trigger settings, and click Reset the form trigger.
My action blocks aren’t working properly.
Please double check that your block settings have been configured appropriately. In the case of Make HTTP request blocks, make sure that your HTTP request and block settings have been structured correctly. If all block settings have been configured correctly, please try republishing your site and applying changes to your flow.
If republishing your site does not resolve your issue, please take a screen recording and submit your issue to the Webflow Logic Bug and Feedback Form. Please be sure to include your Flow ID with your submission.
What happens if a collaborator is removed from a site or Workspace after being added to a Send email notification block?
The former collaborator will no longer receive emails from the Send email notification block. However, they won’t be removed from the collaborator list in the Send email notification block settings — they must be removed manually.
Can I use Logic to change content or a design on my site?
The Create CMS item and Update CMS item blocks can be used to change content on the site when Create as is set to Live. Please note that the site requires a refresh to reflect live changes to CMS content.
However, with the exception of those CMS-related blocks, you can’t use Logic to change content or design on your site at this time.
Will Logic continue to work if I export my site?
Logic flows (along with CMS and Ecommerce content) aren’t included in exported code. Logic requires hosting to function as expected.
Can other Workspace members see any credentials (e.g., third-party API keys, usernames and passwords) I’ve added?
Workspace members can see, manage, and use credentials. However, once a credential has been created, no one, including the original creator of that credential, can see the actual value of the credential in the Webflow UI. In other words, Workspace members can see the user-defined names for the credentials created, but do not have access to the actual tokens or keys.
How does Webflow store and handle credentials?
Credentials are stored securely — always encrypted in transit and always encrypted at rest. Once a credential has been created, no one, including the original creator of that credential, can see the actual value of the credential in the Webflow UI. You’ll only be able to see the user-defined names for the credentials created.
Please note that although Webflow stores credentials in a secure way, Webflow does not have control over any server or third-party service you may send that credential to using Logic flows.
What happens to credentials when a site is cloned or transferred?
Credentials are not preserved when a site is cloned or transferred. Any credentials used in your flows will need to be recreated after the site has been cloned or transferred.
If I clone a site from the showcase, will this include any flows? Can I share flows with others via cloneable sites?
Yes. Cloning a site is equivalent to duplicating a site. Everything related to the site, including flows, will be cloned as well, with the exception of credentials. Any credentials used in your flows will need to be recreated after the site has been cloned.
If I transfer a site with flows, will the transferred site also include flows?
Yes. Everything related to the site, including flows, will be transferred, with the exception of credentials. Any credentials used in your flows will need to be recreated after the site has been cloned.
How are flows affected when a site is restored from backup? Are they restored or do they remain unchanged?
A backup restore will restore flows to their state at the time the backup was created. However, because your site’s forms and CMS schemas may diverge between the current site and the backup, a backup restore may break published flows.