Landing Pages & Forms
Build web pages that collect data directly into Batch Profiles.
Landing pages are standalone web pages you build in the Batch composer. A landing page can include a form that collects data directly into Batch, and every submission then creates or updates a Batch Profile.
What you can build
A landing page is a single page built around one intent. It combines content blocks and, when you need to collect data, form fields that map to Profile attributes.
Common use cases include:
Newsletter sign-up: collect an email address or phone number to grow your newsletter audience.
Event registration: collect contact details for a webinar, a store opening, or a conference.
Prize draw entry: collect the data required to enter a giveaway.
Profile enrichment: ask known customers for a favorite store, or a product preference.
Content page: publish contest rules, an event recap, or a confirmation page, without collecting anything.
Creating a landing page
Open the Content tab, then go to Landing pages. To create a landing page, click New page in the top-right corner.
Once on the composer:
First, you need to give a Name to your page.
The name is visible in the dashboard only and never appears to visitors.
The name is how you are going to be able to distinguish the page from the many others you are going to create, so try to be as specific as possible.
Then you need to compose your page by dragging blocks into the content area.
Content adapt to the screen available size, up to a maximum of 960px.
Available blocks
Landing pages are composed with the blocks of the shared composer: Text, Button, Image, Divider, Spacer and Columns, plus two blocks specific to landing pages: Field block and [Coming soon] Choice block. The description of each commun block, its settings and the color picker are documented in Composer.
Button actions
Every button of a landing page carries an action, which defines what happens when the visitor clicks it. Two actions are available:
Submit: validates the form of the page and writes the submitted values to a Batch Profile. Refer to after the submission for what happens next.
Redirect URL: sends the visitor to an external page, without submitting anything.
Page settings
Open the settings panel of the composer to configure the page you are editing.
Tab title
Required. The title displayed in the browser tab.
URL slug
Optional. The readable part of the public URL.
Dark mode
Enables a dark variant of the page that follows the visitor device setting.
Content position
Controls the vertical alignment of the content when it does not fill the viewport. Values: top, middle, bottom.
Padding
The inner spacing between the content and the page edges.
Background color
The background color of the page.
Dark mode is a shared capability of the editor: refer to Composer for how color values are defined per theme.
Collecting data with the Field block
Adding a Field block turns your page into a form. Add one Field block for each piece of information you want to collect.
Field types
The type of a Field block determines where the submitted value is written, and whether the field identifies the visitor.
The native email address of the Profile.
Phone number
The native phone number of the Profile.
Text
The custom Profile attribute you select in Linked to.
Email and Phone number fields always write to the native Profile attributes. They cannot be mapped to a custom attribute, so an Email field is not a way to collect a secondary address.
These two types are also validated on submit: a value that is not a valid email address or a valid phone number blocks the submission. Text input fields accept any text value.
The accepted formats are the same as the ones enforced on the native attributes everywhere else in Batch: an email address of 256 characters at most, and a phone number following the E.164 international standard. Refer to the attributes object in the Profile API documentation for the exact rules.
Identifying the visitor
An Email or Phone number field is what allows Batch to recognize the person filling in your form. On submit, Batch looks for Profiles that already have the submitted email address or phone number:
One or several Profiles matche
Batch updates the Profile(s) with the submitted values.
No Profile matches
Batch creates a new Profile with the submitted values.
Submitted values overwrite the existing value of the corresponding attribute. A visitor who submits a second time replaces what the first submission wrote.
A form submission can overwrite data coming from your own systems. Reconciliation relies on the submitted email address or phone number alone: there is no authentication on a landing page. Anyone who submits your form with an email address or a phone number that already exists in your base updates that Profile, including the Profile of a logged-in customer, and including a visitor who enters an address that is not theirs.
Keep this behavior in mind when choosing what a field is Linked to. When an attribute is also fed by your account, CRM or back-office data, consider using separate attribute names for the declarative value collected on the page and the value coming from the user account, for example favorite_store_form next to favorite_store. You then keep both sources side by side and decide which one to trust in your segments and your personalization, instead of letting a form submission silently replace your reference data.
A form identifies the visitor through either an email address or a phone number, never both. Add one Email field or one Phone number field per page, and use Text input fields for everything else.
Field settings
Label
The text displayed above the input.
All types
Placeholder
The hint text displayed inside the empty input.
All types
Required
Marks the field as mandatory. A required field displays an asterisk and blocks the submission until it is filled in.
All types
Linked to
The custom Profile attribute the value is written to. The list contains the string attributes of your project, and [coming soon] lets you create a new one. Refer to creating an attribute from the composer.
Text input only
When a visitor submits an invalid or empty required field, an error message appears inline under the field and the submission is blocked.
The following visual customization options are available for the Field block:
Margin
Configures the spacing around the field block, independently for top, bottom, left, and right sides.
0/XXS/XS/S/M/L/XL/XXL
Padding
Configures the internal spacing between the text typed in the input and the border of the input.
0/XXS/XS/S/M/L/XL/XXL
Width
Sets the width of the field relative to its container.
Percentage
Label color
Sets the color of the label displayed above the input.
Color
Label size
Sets the size of the label using predefined scale options.
XS/S/M/L/XL
Background color
Sets the background color of the input.
Color
Border
Sets the color of the border around the input, including opacity.
Color
Radius
Controls the roundness of the input corners.
Pixels
Font size
Sets the size of the text typed in the input.
XS/S/M/L/XL
Text color
Sets the color of the text typed in the input.
Color
[Coming soon] Offering choices with the Choice block
The Choice block lets a visitor pick from a list of options you define, instead of typing a value. Like the Field block, it writes to a Profile attribute on submission and is available on landing pages only.
Choosing the attribute
Start by choosing the Profile attribute the block writes to. The attribute’s type determines whether the options are displayed as checkboxes or radio buttons.
Array
A list of checkboxes
Any number of options
2 at least
String
A list of radio buttons
Exactly one option
2 at least
Boolean
A single checkbox
The box, or nothing
None
A Choice block on a boolean attribute is a single box with nothing to configure: checked writes true, unchecked writes false. Use it for a yes or no answer, such as a consent checkbox.
Options
Each option has two parts:
The label, written inline on the page, which is what the visitor reads.
The technical value, set in the settings panel, which is what is actually written to the attribute.
Keeping the two apart means you can reword a label, or translate it, without touching the data already collected.
How values are written on submit
Array
Checked options are added to the array, and options displayed by the block but left unchecked are removed from it. Values already stored on the Profile that the block does not display are left untouched.
String
The technical value of the selected option replaces the current value of the attribute.
Boolean
The attribute is set to true when the box is checked, to false when it is not.
Choice settings
Linked to
The Profile attribute the block writes to. [Coming soon] You can also create a new one from this list.
Profile attribute
Required
If set to true, on an array, at least one option must be checked. On a boolean, the one box must be checked.
Yes / No
Label
Optional. Turn it on to display a label above the options, and edit its text.
Yes / No
The following visual customization options are available for the Choice block:
Margin
Configures the spacing around the Choice block.
0/XXS/XS/S/M/L/XL/XXL
Spacing
Sets the space between two options.
Pixels
Content alignment
Controls the horizontal alignment of the options in the block.
left, middle, right
Options alignment
Lays the options out vertically or horizontally.
vertical, horizontal
Checked color
Sets the color of an option once it is selected.
Color
Border color
Sets the color of the outline of an option.
Color
Font size
Sets the size of the option labels.
XS/S/M/L/XL
Text color
Sets the color of the option labels.
Color
[Coming soon] Creating an attribute from the composer
Every place where you pick an attribute also lets you create one through New attribute.
An attribute created this way is a normal Profile attribute: it is available everywhere else in Batch, in your segments, your personalization and your automations.
After the submission
Send the visitor to a confirmation page
By default, a landing page does not send the visitor anywhere. When they click the submit button and the form is valid:
The submitted values are written to their Batch Profile.
The submit button becomes inactive and a confirmation icon takes its place, so the visitor can see that the form went through and cannot send it a second time by mistake.
The visitor stays on the page they were reading.
A redirect URL can be added on the submit button. The visitor is then taken to that address as soon as the form is accepted. You can build a landing page with your thank-you message, publish it, copy its public URL, and paste that URL in the redirect of your first page. A page of your own website works exactly the same way.
[Coming soon] Set profile attributes on submit
On the Submit action of your button, Set profile attribute writes a value to the Profile with no visible field on the page. You configure the attributes and values once, and every accepted submission writes them.
Two typical uses:
Record a status the page implies. On a page whose only field is an email address, set Email opt-in to Yes on submit. The subscription state is up to date without asking a second question.
Mark that this page was submitted. Set
last_landing_updatetolanding_page_back_to_school. Nothing appears on the page, and you now hold a reliable marker of who submitted it, which is the cleanest way to trigger a confirmation message.
These values are written only when the submission is valid, and they overwrite the existing value of the attribute like any field does.
Send a confirmation message by email, SMS or push
To send a confirmation message:
On the Submit action of your button, add a [Coming soon] Set profile attribute that writes a value identifying this page, for example
last_landing_updateset tolanding_page_back_to_school.Create a trigger automation that starts when that attribute changes.
Add the message you want to send as the first step of that automation.
A visitor submits your form, Batch writes the value on their Profile, that change starts the automation, and the message goes out. Refer to Omnichannel Trigger Automations for more details.
Security
Landing page submissions include anti-abuse protections: bot user-agent detection, a honeypot field, strict server-side validation, payload limits, and IP-based rate limiting at the proxy layer. Suspected bot traffic is isolated and excluded from profile reconciliation, preventing automated submissions from creating or modifying user profiles.
Managing languages
Enable Multi-language in the composer header to write several versions of the same page. Each language has its own content and its own tab title, while the structure and the styling stay shared.
Form blocks follow that same split. The label of a Field, its placeholder, and the label of each Choice option are content: you write them once per language. What the form writes to Batch is structure, and stays shared across all languages: the attribute a block is linked to, the technical value of each option, and the Set profile attribute actions of your submit button. A visitor filling in the German version of your page therefore writes exactly the same values as one filling in the French version.
Batch selects the language from the lang query parameter appended to the URL:
When the lang parameter is absent, Batch serves the default language.
Testing a landing page
Click Test in the composer to open a preview of your page in a new tab.
Preview links stay valid for 24 hours and use a temporary URL that differs from the public one. Views and submissions generated from a preview are excluded from the metrics of the page.
Global settings
These settings are defined once for your project, in the project settings, and apply to every landing page you publish.
Pages URL
Required. The subdomain your landing pages are served from.
Favicon
Optional. The icon displayed in the browser tab of your landing pages. It applies to every page of the project and cannot be overridden page by page.
The Pages URL and the URL slug of a page together form its public URL:
Editing the slug of a published page does not break its URL: the {id} segment is what identifies the page.
Managing a landing page
A landing page has two statuses: Published, when its public URL serves the page, and Unpublished, when it does not.
Stopping a landing page
Use Stop to unpublish a page. Its public URL stops serving the page.
An unpublished page no longer counts toward your published pages limit.
Modifying a landing page
A landing page can be modified at any point, including after publication.
You can modify its content, its settings and its URL slug.
Changes to a published page go live without a new publication step.
Deleting a landing page
Any deletion is definitive, you will no longer be able to access your landing page, and its URL stops serving content.
Landing pages are cached up to 15 minutes. After you modify, stop or delete a published page, visitors may still see the previous version for that period.
Understanding Landing pages listing
All the landing pages you have created since the project was created are available on the listing.
From the Landing pages listing you can:
Filter the listing by:
Status: Published, Unpublished.
Access quick actions that adapt to the page status (by clicking on the three dots button):
If unpublished:
Replicate.
Delete.
If published:
Stop page.
Replicate.
Delete.
Copy the public URL of a page, or open it in a new tab.
Access key metrics: see Landing page metrics
Access key dates related to a page's status and content by hovering over the status icon:
Created at: The date and time the page was initially created (i.e., first saved).
Last edit: The date and time the page's content was last modified since its creation.
First published: The date and time the page was published for the first time.
The dates displayed are based on your browser's local time.
Search a specific landing page.
Last updated

