MallaDocs

Forms

Form elements, spam protection, submissions per environment and email notifications.

User guide

Forms collect leads, sign-ups, feedback and orders. Spam protection, validation, storage and notifications are built in.

Build a form

  1. Insert a form

    From the insert menu, add a Form. Then add fields inside it: Input, Text area, Select and Checkbox.

  2. Configure the fields

    Each field has a name, a label, a placeholder and a type: text, email, number, tel, URL, date, password or hidden. Add rules: required, minimum and maximum length, and a pattern. A field can also write its value to a variable.

  3. Choose what happens on submit

    In the form section, pick the action: built-in handles the submission for you (verify, store, notify), none leaves it to your own workflow. Design the success and error states, or set a page to redirect to.

  4. Publish and test

    Forms work on the published site. Use Preview form state in the inspector to design the success and error states on the canvas.

What happens on submit

VerifyTurnstile token, honeypot and rate limit per IP and form.
ValidateThe same field rules, checked again on the server.
StoreSaved per environment, with the IP hashed.
NotifyEmail to your list; workflows can do more.

Submissions

The Forms workspace lists every form of the site with its submissions. Switch between staging and production: test submissions never mix with real ones. Delete submissions one by one, and Export CSV.

Settings per form

  • Notification emails: who gets an email for each production submission.
  • Store submissions: turn off to only notify, for privacy-sensitive forms.
  • Retention: keep submissions forever or delete them after a number of days.
  • Redirect after submit: send visitors to a thank-you page.

Automate with workflows

Add a client workflow on the form’s submit event. For work that must happen on the server, expose a server workflow as an endpoint and call it to send an auto-reply, write to a table, call your CRM or post to Slack. Field values can also be bound to variables with $model so your steps can read them.