February 28, 2026

This release is headlined by a new Logic action that writes back to your records. Beyond that, A major new Logic action, a smarter project setup experience, a rebuilt data blocks layer, and over a dozen fixes that have been on the list for too long. Here's everything.

Logic in Formaloo has always let you control what users see; show a field, skip a page, route to an outcome. Now it can act on your data too.
The new Update Record action is available on both OnSubmit and OnUpdate triggers. When your conditions are met, Formaloo can automatically write back to a record, updating a Lookup field, a Linked row, or a User profile field, without any external automation tool. See how you can update records across forms using logic in Formaloo.
Here's a real example of what this unlocks:
On update: If Task 1 is Done and Task 2 is Done → Update record → User profile → Role → Manager
No Zapier. No Make. Just your logic, acting on your data.
A few things worth knowing: Update Record can't be nested or looped, we disable those paths to prevent broken flows. There's also a limit on how many row updates a single record can trigger. This action is available on Pro plans and above.
Formaloo can now automatically enrich form responses the moment they come in.
Enable Lead Enrichment from the App Store, connect it to a form, and every new submission that includes an email address gets enriched with third-party data in the background, no manual export, no separate tool.
It works for B2B leads (work emails like name@company.com), enriched with job title, department, company name, industry, revenue range, employee count, company ranking, and more.
You control exactly where the data lands. In the configuration flow, map any enriched attribute to a field in your form, for example, map company_name to your "Company" field, company_revenue to "Revenue," and linkedin_url to "LinkedIn." If you'd rather capture everything at once, there's a "Store All Data" option that consolidates all enriched attributes into a single long-text field.
A few things worth knowing: not every email will return enrichment data, match rates vary by industry and email type. Enrichment only applies to new submissions after activation, not historical responses. And the form needs at least one Email field for enrichment to trigger.
Lead Enrichment is available now in the Formaloo App Store.

One Question At a Time forms now support a unique cover image per question, not just a single banner for the whole form.
Upload an image directly in the question's settings, and it replaces the form-level banner for that step. If a question doesn't have its own image, the form banner acts as the fallback automatically. Welcome pages and ending pages can have their own cover images too. See how you can add individual cover images per page in one‑question‑at‑a‑time forms.
Four of the six 1QAT layouts support this. If you're on a layout that doesn't, the option is visible but disabled with a clear explanation.
The builder preview updates dynamically as you navigate between questions, what you see is exactly what your respondents will see.
The progress bar was previously only available in 1QAT forms. It's now available in Classic (multi-page) forms too, with the same visual design, same size, color, animation, and position.
In Classic forms, progress advances per page. On a five-page form, each page moves the bar forward by 20%. In 1QAT, it still advances per question.
For 1QAT, the progress bar is now enabled by default when you switch a form to that mode. You can still turn it off manually if you don't want it, and if you do, your preference is respected until the next time you switch modes.
Single-page Classic forms don't show the progress bar. The option is disabled with a prompt to add a page first.
Each field in Formaloo already has a Field ID. That ID is now mapped to the DOM as a stable id attribute, so you can target any specific field directly in Custom CSS or Custom JS, no brittle selectors, no DOM guessing. Learn more about how to use field IDs in Custom CSS & Custom JS.
/* Make a specific field's label bold */
[data-field-id="email"] label {
font-weight: bold;
}
/* Add a border to a specific field */
[data-field-id="phone_number"] {
border: 2px solid #0066cc;
border-radius: 8px;
padding: 12px;
}
/* Style the welcome page */
[data-field-id="welcome_page"] {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white;
}
// Get a field element
const emailField = document.querySelector('[data-field-id="email"]');
if (emailField) {
emailField.classList.add('highlight');
}
// Focus a field when the form loads
const firstField = document.querySelector('[data-field-id="full_name"]');
if (firstField) {
const input = firstField.querySelector('input, textarea, select');
if (input) input.focus();
}
This works on all published forms. If a field is hidden by logic and isn't rendered, the element won't exist in the DOM; handle that with a null check in your JS.

Creating a new project, whether from a template, the + New button, or by duplicating an existing one, now opens a focused configuration pop-up before anything is created.
The fields you see depend on the project format:
Destination and form type are pre-filled based on where you started. For Memory forms and Portals, you can connect an existing user directory or create a new one on the spot, and optionally import users via Excel or a pasted email list, all in the same flow.
We also fixed the sign-up onboarding loop and the inconsistency that appeared when signing up directly from a template.

Data Blocks have been rebuilt under the hood. This update makes data blocks much faster & easier to work with, especially when you have big data.
The Kanban view in portal now correctly shows the uncategorized column, and folder-based row assignments work reliably across all folders.