web-forms

Create public-facing Frappe Web Forms for data collection without Desk access.

62|23|Updated Feb 7, 2026
One-click install
npx skills add https://github.com/lubusIN/frappe-skills --skill web-forms-lubusin
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: web-forms
Source: https://github.com/lubusIN/frappe-skills/tree/main/web-forms
Command: npx skills add https://github.com/lubusIN/frappe-skills --skill web-forms-lubusin

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? External users often need to submit data—support tickets, feedback, registrations—without access to the Frappe Desk. This Skill guides you through building, customizing, and securing public-facing Frappe Web Forms that create DocType records directly from website visitors. ## Core Features & Use Cases - Web Form Creation & Publishing: Create forms from any DocType, import fields automatically, configure settings like login requirements, edit permissions, and file upload limits. - Server & Client Customization: Add Python validation and context logic plus JavaScript field-change handlers, custom validation, and after-save behavior in standard app-bundled web forms. - Security & Permissions: Configure guest access, portal roles, reCAPTCHA, input sanitization, and server-side validation to protect public forms. - Use Case: Build a customer support ticket submission form where guests can report issues, with duplicate-ticket detection, category-based conditional required fields, and a custom success message. ## Quick Start Ask the AI to create a Frappe Web Form for your target DocType with the fields, validation, and access settings you need.

Frequently Asked Questions about web-forms

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a web form in Frappe?▼

Type "new web form" in the awesomebar, enter a title, select the target DocType, and click "Get Fields" to import fields. Configure settings like Login Required and Allow Edit, then publish the form to make it accessible at its URL slug.

How do I add custom validation to a Frappe web form?▼

Enable "Is Standard" in developer mode to generate Python and JavaScript files for the web form. Add a validate(doc) function in the Python file to run server-side checks, and use frappe.web_form.validate in JavaScript for client-side checks.

Can guest users submit Frappe web forms without logging in?▼

Yes, uncheck "Login Required" to allow fully public guest submissions. You must grant Create permission on the target DocType to the Guest role, and you should enable reCAPTCHA to prevent spam submissions.

Why does my Frappe web form show permission denied on submit?▼

Permission denied errors occur when the target DocType lacks Create permission for the Website User or Guest role. Check the DocType's permission rules and verify the form is published and the user has the correct portal role.

How do I allow users to edit their web form submissions in Frappe?▼

Enable the "Allow Edit" setting on the Web Form so logged-in users can modify their submitted entries. Combine it with "Allow Multiple" if users should submit more than one entry, and use User Permissions for row-level access control.