frappe-web-form-builder

Venkateshvenki404224's avatarfrom Venkateshvenki404224

Generate Frappe Web Forms for public-facing forms. Use when creating customer portals, registration forms, surveys, or public data collection forms.

⭐1stars🔀1forks📁View on GitHub🕐Updated Dec 15, 2025

When & Why to Use This Skill

The Frappe Web Form Builder skill automates the generation of public-facing web forms for the Frappe framework. It enables users to quickly create structured JSON configurations for customer portals, surveys, and registration forms, featuring advanced capabilities like multi-step layouts, file uploads, and seamless integration with Frappe DocTypes to streamline data collection and user interaction.

Use Cases

  • Customer Registration Portals: Generate secure, public-facing forms to capture new customer data directly into your Frappe-based CRM or ERP.
  • Multi-Step Job Applications: Create complex, multi-page forms that allow candidates to submit personal information and upload resumes or supporting documents.
  • Public Surveys and Feedback: Design and deploy anonymous surveys or feedback forms to gather market insights without requiring user login.
  • Event Sign-up Pages: Build custom registration forms with specific field validations, success redirects, and automated data entry for event management.
namefrappe-web-form-builder
descriptionGenerate Frappe Web Forms for public-facing forms. Use when creating customer portals, registration forms, surveys, or public data collection forms.

Frappe Web Form Builder

Generate public-facing web forms with validation, file uploads, and integration with Frappe DocTypes.

When to Use This Skill

Claude should invoke this skill when:

  • User wants to create public forms
  • User needs customer-facing forms
  • User mentions web forms, surveys, or registration
  • User wants portal functionality
  • User needs forms without login

Capabilities

1. Web Form JSON

Customer Registration Form:

{
  "name": "Customer Registration",
  "route": "customer-registration",
  "title": "Register as Customer",
  "doc_type": "Customer",
  "is_standard": 0,
  "login_required": 0,
  "allow_multiple": 1,
  "show_sidebar": 0,
  "success_url": "/thank-you",
  "success_message": "Registration successful! We'll contact you soon.",
  "introduction_text": "Please fill in your details to register",
  "web_form_fields": [
    {
      "fieldname": "customer_name",
      "label": "Full Name",
      "fieldtype": "Data",
      "reqd": 1
    },
    {
      "fieldname": "email_id",
      "label": "Email",
      "fieldtype": "Data",
      "options": "Email",
      "reqd": 1
    },
    {
      "fieldname": "mobile_no",
      "label": "Phone",
      "fieldtype": "Data",
      "reqd": 1
    },
    {
      "fieldname": "customer_group",
      "label": "Type",
      "fieldtype": "Select",
      "options": "Individual\nCompany",
      "reqd": 1
    },
    {
      "fieldname": "company_name",
      "label": "Company Name",
      "fieldtype": "Data",
      "depends_on": "eval:doc.customer_group=='Company'"
    }
  ]
}

2. Multi-Step Form

Multi-Page Web Form:

{
  "name": "Job Application",
  "is_multi_step": 1,
  "web_form_fields": [
    {
      "fieldname": "step_1",
      "fieldtype": "Section Break",
      "label": "Personal Information"
    },
    {"fieldname": "full_name", "fieldtype": "Data", "reqd": 1},
    {"fieldname": "email", "fieldtype": "Data", "options": "Email", "reqd": 1},

    {
      "fieldname": "step_2",
      "fieldtype": "Section Break",
      "label": "Experience"
    },
    {"fieldname": "years_experience", "fieldtype": "Int"},
    {"fieldname": "current_company", "fieldtype": "Data"},

    {
      "fieldname": "step_3",
      "fieldtype": "Section Break",
      "label": "Documents"
    },
    {"fieldname": "resume", "fieldtype": "Attach", "reqd": 1}
  ]
}

References

Web Form Implementation: