Form
The form block embeds a submittable form on a page or post. It does not define its own fields; instead it links to a Form record that's created separately under Forms in the admin, and auto-renders that form's fields.
Correction: an older summary table describes this block as having an "action URL" field. That's incorrect and stale. There is no action-URL field. The block links to a Form record by
form_id; at render time, the block pulls that form's fields and posts to/forms/<slug>(the linked form's slug), automatically.
Fields
| Field | Description | Required? |
|---|---|---|
form_id | The linked Form record, chosen from a dropdown of forms already created under Forms in the admin. | Yes |
heading | Heading shown above the form. Placeholder example: "Get in touch". | No |
subheading | Short supporting text shown below the heading. | No |
button_text | Label for the submit button. Falls back to the form's own configured submit text, or "Submit", if left blank. | No |
HTML safety
heading, subheading, and the resolved submit button label are all escaped and rendered as plain text. All fields on this block are escaped as plain text; there is no raw-HTML field here. The form's actual input fields (text, email, checkboxes, and so on) come from the linked Form record, not from this block, and are rendered by the standard form-field renderer.
This block also supports background color, padding, and margin as appearance controls (it does not have separate text color or border controls).
Using it
{{block:contact-form}} Typically placed on a "Contact" page, or embedded partway through a landing page as a lead-capture call to action. If the block has no form_id set (no form linked), nothing renders on the page, since there's no form data to build it from.
Example
A contact page using a "General inquiry" form that was created under Forms in the admin, with fields for name, email, and message:
| Field | Value |
|---|---|
form_id | General inquiry (existing Form record) |
heading | Get in touch |
subheading | We'll get back to you within one business day. |
button_text | Send message |
At build time, the block resolves the "General inquiry" form's slug (say general-inquiry) and fields, and renders a <form> that posts to /forms/general-inquiry. If that form has spam protection (Cloudflare Turnstile) configured, the widget is rendered automatically above the submit button; no extra configuration is needed on the block itself.