@npm_tentwenty/strapi-formidable
v1.1.1
Published
Strapi Formidable is a powerful and flexible form builder plugin for Strapi v5. It allows you to visually create, manage, and process forms, submissions, email templates, and more all from the Strapi admin panel.
Readme
Strapi Formidable
Strapi Formidable is a powerful and flexible form builder plugin for Strapi v5. It allows you to visually create, manage, and process forms, submissions, email templates, and more all from the Strapi admin panel.
Features
- Visual drag-and-drop form builder
- Multiple field types (text, email, select, file, etc.)
- Field options, validation, and dependencies
- Email templates and notifications
- Submission management and CSV export
- Localization (i18n) support
- Dashboard with statistics
Installation
npm i @npm_tentwenty/strapi-formidableRebuild your Strapi admin panel:
npm run buildRestart Strapi:
npm run developUsage
- Open the Strapi admin panel.
- Find Strapi Formidable in the sidebar.
- Create and manage forms, fields, emails, templates, and view submissions.
Creating a Form
- Go to Forms > Create.
- Add fields, configure options, and set up email notifications.
- Save and publish your form.
Managing Submissions
- View, filter, and export submissions from the Submissions section.
Email Templates
- Create reusable email templates and assign them to form notifications.
Client API Endpoints
RESTful endpoints for all major entities:
GET /api/strapi-formidable/:documentId- Generate form before submissionPOST /api/strapi-formidable- Submit form
All endpoints support CRUD operations and localization via the locale query parameter.
Email Templating
Strapi Formidable uses Handlebars to render dynamic content in emails. You can embed placeholders in your email body and email wrapper templates using {{placeholder}} syntax.
How It Works
When a form is submitted, the plugin:
- Collects the submitted field values.
- Maps each value to its field's handle.
- Injects special built-in placeholders.
- Compiles your Email Body (
contentfield on the Form Email) with all field data. - Optionally wraps the compiled body inside an Email Template (
Form Email Template).
Email Body Placeholders (Form Email → content)
These are available when writing the body HTML of a Form Email.
Dynamic Field Placeholders
For every form field, use its handle value as the placeholder key:
{{handle}}The handle is the string you define on each Form Field in the Strapi admin. For example, if a field has handle: "first_name", use {{first_name}} in your email HTML.
Example form fields and their placeholders:
| Field Name | Handle (defined by you) | Placeholder |
|----------------|--------------------------|-------------------|
| First Name | first_name | {{first_name}} |
| Email Address | email | {{email}} |
| Phone Number | phone | {{phone}} |
| Message | message | {{message}} |
Note: File fields are rendered as a list of
<a href="...">Download</a>links. Multi-value fields (multiselect, checkbox) are joined with,.
Built-in Placeholders
These are always available regardless of your form fields:
| Placeholder | Description |
|-----------------|------------------------------------------------------------------|
| {{form_name}} | The name of the form that was submitted |
| {{subject}} | The subject line defined on the Form Email |
| {{all_fields}}| A pre-built HTML block listing all fields as <p><strong>Field Name:</strong> value</p> |
Example Email Body
<h2>New submission from {{form_name}}</h2>
<p>You received a message from <strong>{{first_name}}</strong> ({{email}}).</p>
<p>Message: {{message}}</p>
<hr>
<h3>All submitted fields:</h3>
{{all_fields}}Email Wrapper Template Placeholders (Form Email Template → content)
When a Form Email Template is assigned to a Form Email, the compiled body is injected into the wrapper. Only two placeholders are available here:
| Placeholder | Description |
|-------------------|----------------------------------------------|
| {{content}} | The fully rendered email body HTML |
| {{email_content}} | Alias for {{content}} — same value |
Example Wrapper Template
<html>
<body style="font-family: Arial, sans-serif; padding: 24px;">
<header>
<img src="https://example.com/logo.png" alt="Logo" />
</header>
<main>
{{content}}
</main>
<footer>
<p>© 2026 My Company</p>
</footer>
</body>
</html>Summary
| Template location | Available placeholders |
|-------------------------------|---------------------------------------------------------------|
| Form Email content (body) | {{<handle>}}, {{form_name}}, {{subject}}, {{all_fields}} |
| Form Email Template content | {{content}}, {{email_content}} |
Author
Siddhesh Shetye [email protected] Agnelo Fernandes [email protected] Afaq Ghauri < [email protected]>
