Form Builder Skill Overview This skill enables creation of intelligent document forms using docassemble - a platform for guided interviews that generate documents. Create questionnaires that adapt based on answers. How to Use Describe the form or document you need Specify conditional logic requirements I'll create docassemble interview YAML Example prompts: "Create an intake form for new clients" "Build a conditional questionnaire for legal documents" "Generate a multi-step form for contract generation" "Design an interactive document assembly form" Domain Knowledge Interview Structure metadata : title : Client Intake Form short title : Intake
question : | What is your name? fields : - First Name : first_name - Last Name : last_name
question : | What type of service do you need? field : service_type choices : - Contract Review - Document Drafting - Consultation
mandatory : True question : | Thank you, ${ first_name }! subquestion : | We will contact you about your ${ service_type } request. Conditional Logic
question : | Are you a business or individual? field : client_type choices : - Business - Individual
if : client_type == "Business" question : | What is your company name? fields : - Company : company_name - EIN : ein required : False
if : client_type == "Individual" question : | What is your date of birth? fields : - Birthdate : birthdate datatype : date Field Types fields :
Text
- Name : name
- Email : email datatype : email
Number
- Age : age datatype : integer
Currency
- Amount : amount datatype : currency
Date
- Start Date : start_date datatype : date
Yes/No
- Agree to terms? : agrees datatype : yesno
Multiple choice
- Color : color choices : - Red - Blue - Green
Checkboxes
- Select options : options datatype : checkboxes choices : - Option A - Option B
File upload
- Upload document : document datatype : file Document Generation
mandatory : True question : | Your document is ready. attachment : name : Contract filename : contract content : |
Service Agreement
This agreement is between $ { client_name } ** and Service Provider **.
Services
$ { service_description }
Payment
Total amount : $ { currency(amount) } Date : $ { today() } Example: Client Intake metadata : title : Legal Client Intake short title : Intake
objects : - client : Individual
question : | Welcome to our intake form. subquestion : | Please answer the following questions. continue button field : intro_screen
question : | What is your name? fields : - First Name : client.name.first - Last Name : client.name.last - Email : client.email datatype : email - Phone : client.phone required : False
question : | What type of matter is this? field : matter_type choices : - Contract : contract - Dispute : dispute - Advisory : advisory
if : matter_type == "contract" question : | Contract Details fields : - Contract Type : contract_type choices : - Employment - Service Agreement - NDA - Other Party : other_party - Estimated Value : contract_value datatype : currency
mandatory : True question : | Thank you, ${ client.name.first }! subquestion : | Summary: - Name : $ { client.name } - Email : $ { client.email } - Matter : $ { matter_type } We will contact you within 24 hours. Resources docassemble Documentation GitHub Repository