How to add a form to a flow
You will learn
Learn how to add a sign-up form to a flow, so it appears for only profiles that trigger the flow, instead of for everyone who visits your site or app.
Forms in flows is in Preview. The Form action appears in your flow builder only after Klaviyo adds your account to the Preview.
Before you begin
Confirm that sign-up form functionality is enabled on your website or in your mobile app.
- Web forms require Klaviyo's onsite JavaScript on your website. To check whether it is installed, see how to verify that sign-up forms are enabled.
- In-app forms require Klaviyo’s mobile SDK installed in your app. Additionally, you need to configure push notifications in your account to create in-app forms. Until you set them up, the In-app option stays disabled and reads Set up push notifications to create in-app forms.
Add a form to your flow
- Navigate to the Flows tab.
- Click the name of the flow to which you want to add a form.
- Add a form to the desired point of your flow. You can either drag Form from the Actions panel under Messages or click the plus icon on a connector and select Form.

- In the Form details panel, enter a Form name.
- Under Choose a channel, select Web to display the form on a website or In-app to display it inside your mobile app.
- If you choose Web, select an Email subscriber list. Select a Phone number list if the form will collect phone numbers. Email submissions go to the email list, and phone number submissions go to the phone number list. You do not need to select lists for an in-app form.
The Phone number list field selects your SMS Subscribers list if one is available. Check the selected list before creating the form so phone number submissions go to the correct list.
- Click Create form.

- In Select template, pick a template, or click Create blank form and choose a type under Select form type.
- Design the form in the form editor.
- If you chose an embedded web form, open Targeting & display behavior > Display, copy the Embed code, and paste it into your website where you want the form to appear.
- Click Save & exit to return to your flow.
Define the expiration period
Forms are not sent like an email or text message. When a profile reaches a live Form step in a flow, the profile becomes eligible to see the form. The form can appear on a subsequent page load on your website or in a new session in your mobile app, provided Klaviyo recognizes the profile and the form’s targeting and display rules are met.
Expiration settings control how long a profile stays eligible to see the form. Once a form expires, it will not appear when the profile returns to your website or app.
The default is 30 days. The lowest value you can set is 1, and the highest depends on the unit: 365 days, 168 hours, 1,440 minutes, or 86,400 seconds.
In Form details, under Settings, find the Expiration section, then:
- In Expires after, enter a whole number.
- Choose a time unit: Days, Hours, Minutes, or Seconds.
- Click Save to apply the expiration period.
The Form step on your canvas displays the setting you chose as a badge reading "Stop showing after" plus the duration.
The expiration period does not affect how a profile advances through a flow. Profiles do not wait for a form to display. Instead, they advance to the next step immediately. If you would like for a profile to advance only after the expiration period, add a Time delay of equal length to the expiration period to the flow after the Form step.

Set your form live
A Form step has its own Status control in the Form details panel, separate from whether the flow itself is live. The control stays disabled until you have created the form.
When the form is ready, set Status to Live and click Save. Profiles who reach the step while it is still set to Draft do not see the form.
Saving the form from the form editor does not make the step live on its own. Editing a form and publishing it while the step is still a draft is expected, and the Status control on the Form step is what decides whether profiles see it.
When does a profile see the form?
Reaching the Form step does not display anything on its own. It adds the profile to the audience that is eligible for that form.
The form can appear when the profile loads a page on your website or starts a new session in your mobile app, provided Klaviyo recognizes the profile and the form’s targeting and display rules are met. Profiles stop being eligible once any of the following happens:
- They view the form.
- The form expires.
- You set the form step back to Draft and click Save.
Because display depends on website or app activity, the time between a profile entering the flow and seeing the form varies from profile to profile.
If a profile reaches the same live Form step again, their expiration period starts again from that most recent entry. Multiple entries before the next page load or app session do not queue separate copies of the form.
Form priority
A profile can be eligible for more than one form at the same time, whether from different flows or standalone forms. Klaviyo uses display priority to decide which eligible form waiting to display appears first.
For web forms, turn on Don't show multiple forms at the same time in your form settings to use display priority. Embedded forms do not use display priority.
In the form editor, go to Targeting & display behavior > Display and use Display priority to choose Highest, High, Medium (default), or Low. Use different priorities when 1 form should appear before another; equal priorities do not guarantee a particular order. Click Save & exit to save the change and return to your flow. See understanding targeting and behavior settings for sign-up forms.
Review your form performance
The Form details panel has a Performance card covering the last 30 days. It shows an engagement rate and your conversion metric rate. Click View details to open the full reporting page for that form, then Done to go back to your flow. The card appears only if your user role has access to flows reporting.
On the reporting page, the Recipient activity tab breaks profiles out by what they did. A web form shows Waiting, Needs Review, Viewed, Clicked, Submitted, and Completed.
An in-app form shows Waiting, Needs Review, Viewed, and Clicked. Submitted and Completed are omitted because in-app forms do not currently support input fields. When a conversion metric is selected, Converted is also available for both web and in-app forms.
Klaviyo records four profile-level events you can use in segments, reporting, and other flows:
- Form viewed by profile fires when the form is displayed to a profile.
- Form clicked by profile fires when a profile clicks a button with a navigational action (e.g., go to URL, go to app screen) in the form.
- Form submitted by profile fires when an identified profile submits the form.
- Form completed by profile fires when a visitor reaches the last step of the form.
A visitor can view, click, or complete a form without submitting it. Form submitted by profile requires an identified profile.
Troubleshooting
- If Form does not appear under Messages in the Actions panel, your account has not been added to the Preview. Contact your Klaviyo account manager.
- If the In-app channel option is disabled, set up push notifications in your Klaviyo account.
- If profiles have become eligible to view a form but the form is not appearing:
- Confirm the Form step is set to Live.
- Check the expiration period. The form may have expired before the profile returned to your site or app.
- Reload the website page or start a new app session after the profile reaches the Form step. Klaviyo must recognize that profile on the website or in the app, and the form’s targeting and display rules must be met.
- If a profile reaches the same live Form step multiple times, the expiration period starts again from the most recent entry. Multiple entries before the next page load or app session do not queue separate copies of the form.
- If a form should have expired for a profile but still appears, check whether that profile was merged into another profile. If the remaining profile did not already have eligibility for the form, the merge can restart the expiration period. If it already had eligibility, its existing expiration period is kept.
Additional resources
- Getting started with sign-up forms
Learn how to create and customize sign-up forms in Klaviyo to publish on your website so you can engage shoppers, collect emails and phone numbers, and build long-lasting customer relationships.
- Getting started with flows
Learn how to use flows, also known as automations or drip campaigns, in Klaviyo for personalized and automated communications to your customers, and learn how to set your first flow live.
- Understanding in-app forms
Learn about in-app forms and how you can use them to share important messaging with your mobile app users.
- How to verify that sign-up forms are enabled
Learn how to verify that sign-up form functionality is enabled on your website. This makes sure that sign-up forms published in Klaviyo display as expected on your site and sync all necessary data to Klaviyo.