Home
cd ../playbooks
ProductivityBeginner

Form Builder & Designer

Build interactive document forms and questionnaires using docassemble

10 minutes
By communitySource
#form#builder#interactive#docassemble

Your intake form is a static PDF that clients print, fill by hand, scan, and email back — and half the fields are blank because they didn't apply. You need forms that adapt to answers, skip irrelevant sections, and generate documents automatically.

Who it's for: legal teams building client intake questionnaires, HR departments creating employee onboarding forms, organizations needing document-generating surveys, non-profits collecting structured applications, anyone replacing paper forms with smart digital ones

Example

"Build an intake form for new client onboarding that generates an engagement letter" → Interactive questionnaire that adapts based on client type (individual/business), skips irrelevant sections, validates inputs, and auto-generates a personalized engagement letter from the answers

CLAUDE.md Template

New here? 3-minute setup guide → | Already set up? Copy the template below.

# Form Builder

## Overview

This workflow 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

1. Describe the form or document you need
2. Specify conditional logic requirements
3. 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

```yaml
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

```yaml
---
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

```yaml
fields:
  # Text
  - Name: name
  
  # Email
  - 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

```yaml
---
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

```yaml
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](https://docassemble.org/docs.html)
- [GitHub Repository](https://github.com/jhpyle/docassemble)

Get new playbooks like this one

One email a week with new Claude Code workflows. Free, like everything here.

No spam. Unsubscribe anytime.

README.md

What This Does

This workflow enables creation of intelligent document forms using docassemble - a platform for guided interviews that generate documents. Create questionnaires that adapt based on answers.


Quick Start

Step 1: Create a Project Folder

mkdir -p ~/Documents/FormBuilder

Step 2: Download the Template

Click Download above, then:

mv ~/Downloads/CLAUDE.md ~/Documents/FormBuilder/

Step 3: Start Working

cd ~/Documents/FormBuilder
claude

How to Use

  1. Describe the form or document you need
  2. Specify conditional logic requirements
  3. 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"

$Related Playbooks

Productivity

Import Guidelines

Import brand guidelines.

15 minutes
Intermediate
Productivity

Import Sop

Import agency SOPs.

15 minutes
Intermediate
Productivity

Import Template

Import deliverable templates.

15 minutes
Intermediate
Productivity

Integrations

Show MCP integration status.

15 minutes
Intermediate
Productivity

Image Enhancement & Upscaler

Improve screenshot quality, upscale low-resolution images, and batch process images using ImageMagick and modern tools.

5 minutes
Beginner
Productivity

Learn

Save a marketing learning or insight.

15 minutes
Intermediate
Productivity

Loop Detect

Identify and model growth loops.

15 minutes
Intermediate
Productivity

Marketing Automation

Design marketing automation workflows.

15 minutes
Intermediate
Productivity

Martech Audit

Audit the martech stack.

15 minutes
Intermediate
Productivity

Non-Technical Claude Code Onboarding

A four-step setup guide and decision framework for non-technical professionals moving from the Claude web app to Claude Code — with real workflow examples from expense reports to marketing content generation.

15 minutes
Beginner
Productivity

Meeting Minutes Taker

Transform raw meeting transcripts into high-fidelity, structured minutes — merge multiple versions without losing content, review for missing items, and identify anonymous speakers.

10 minutes
Intermediate
Productivity

Morning Brief Analyst

Turn Claude into your personal morning analyst — delivers a structured daily brief covering industry news, priority tasks, calendar context, and urgent inbox items in under 400 words.

5 minutes
Beginner

Browse all Productivity playbooks →