What is this?
This page is the reference for the Add content palette in the Flow Builder: each element you can put on a screen, the settings it shows in the right-hand panel when you select it, and the limits WhatsApp enforces. The limits are checked when you click Save. [SCREENSHOT: flows-content-component-settings — The settings panel for a Short answer element showing Label, Field name, Required, Input type, Min chars, Max chars, Validation pattern, Helper text, and the Response tagging section]Names below are the ones shown in the palette. Text and answer limits are counted in characters. Where a limit can be exceeded, you’ll see a Could not save message naming the element — see Troubleshooting in the Flow Builder.
What can I do here?
- Look up which element fits what you want to ask or show
- Check the character and count limits before you build
- Find out what each setting in the panel means
How to use it
Settings every answer element shares
Elements that collect an answer — everything in Text answer and Selection, plus Upload and Navigation list — share these settings:Text
Plain text on the screen. Selecting one shows a single Text box. The text can’t be empty.Text answer
Input type for Short answer can be Text, Number, Email, Password, Passcode, or Phone. Choosing a type fills in a Validation pattern and Helper text for you where one makes sense (for example “Use digits only” for Number, “Enter a valid email (example: name@company.com)” for Email, “Enter 4 to 8 digits” for Passcode, “Include country code when possible” for Phone). Changing the type again replaces them, so edit them after you pick the type.
Validation pattern (optional regex) must be a valid regular expression, for example
^[0-9]+$. Use it only for the pattern — put wording for customers in Helper text. A pattern requires Helper text. Min chars can’t be greater than Max chars.
Date picker and Calendar dates. For Min Date and Max Date, choose Static and pick a date, or Dynamic and then a Source mode: Current date (“Uses current date at runtime.”) or Endpoint (enter an Endpoint URL; see Dynamic options and endpoints). The minimum date can’t be later than the maximum. The Date picker ignores Error message when the flow is sent to WhatsApp — use Helper text instead.
Calendar only. Unavailable Dates are blocked days: with Static, type one date per line (for example 2026-04-20); with Dynamic, give an endpoint that returns them. Include days is a comma-separated list of the weekdays customers can pick, written Mon,Tue,Wed,Thu,Fri,Sat,Sun.
Selection
For every option in Single choice, Multiple choice, and Dropdown, the option title is up to 30 characters. New elements start with Option 1 and Option 2.
Under Static / Dynamic source, choose Static to type your options, or Dynamic to load them while the flow runs. With Static, Static options lists each option’s title with a Delete icon and an Add button. Chips also has Selection limits — Min items and Max items (for example 1 and 3) — and has no helper text. The Navigation list works the same way (see below). Opt-in’s Label is the consent sentence customers tick; its default is “I agree to the policy”.
Media
Image. Click Upload Image to choose a JPG or PNG; a thumbnail appears. The box below it accepts a base64 image or a reference like
${data.image_src} that your endpoint fills in. Every picture needs an image before you can save.
Image carousel. Each slide has an image box (paste a value or click Upload) and a trash icon. Click Add for another slide. Every slide needs an image.
Upload. Picker type chooses PhotoPicker or DocumentPicker:
- PhotoPicker — Photo source (Camera + Gallery, Camera only, Gallery only), Min photos, and Max photos.
- DocumentPicker — Min documents, Max documents, and Allowed MIME types (comma separated), for example
application/pdf, image/jpeg.
Links and lists
Navigation list. A screen with a Navigation list can’t contain anything else, and it can’t be on the final screen. Because it replaces the Button, the Button is left off that screen. Under Static / Dynamic source, Static lets you edit the Navigation items; Dynamic loads them from your endpoint.
Link. URL must be a full
https:// address, or a reference such as ${data.link_url}. If you type a bare domain like example.com, https:// is added when you leave the box.
Logic
If and Switch show different content depending on earlier answers. They have their own page: Logic: If and Switch.The Button
Every screen’s button has a Button label (up to 35 characters) and optional captions (each up to 15 characters, either a Center caption alone or a Left caption and Right caption together). See The Button.Per-screen and per-flow limits
Troubleshooting / Technical Notes
- I can’t tick Required on an Opt-in. Opt-in doesn’t have a Required setting.
- My field name changed after I typed it. Field names are cleaned up automatically and made unique across the whole flow. Pick a different name if you need an exact one.
- I changed Input type and my pattern disappeared. Choosing an input type fills in its own Validation pattern and Helper text. Set your own after choosing the type.
- Dates in Unavailable Dates aren’t accepted. Use one date per line in the form
2026-04-20. - The Image shows only a placeholder. The element has no picture yet — click Upload Image.
- The palette item is greyed out. The screen has reached 50 components, or you’re viewing a locked published flow. For Upload, a screen can have only one.