Document Templates
Create templates for generating project documents with automatic variable replacement.
Overview
Document Templates allow you to create standardized documents (Word, Excel, PDF) that can be generated for any project. When you generate a document from a template, variables are automatically replaced with project-specific information like contact names, addresses, financial data, and more.
Accessing This Setting
- Go to Settings > Projects > Document Templates
Supported File Formats
| Format | Upload | Variable Replacement | Print to PDF |
|---|---|---|---|
.docx (Word) | ✅ | ✅ | ✅ |
.doc (Word Legacy) | ✅ | ❌ | ❌ |
.xlsx (Excel) | ✅ | ✅ | ❌ |
.xls (Excel Legacy) | ✅ | ✅ | ❌ |
.pdf | ✅ | ❌ | ✅ |
Use .docx format for most templates. It supports variable replacement and can be converted to PDF when printing.
Creating Templates
Step 1: Create a Document in Word or Excel
Create your document in Microsoft Word (.docx) or Excel (.xlsx). Insert variables where you want dynamic content to appear.
Variable Format:
- Word documents: Use
${variable_name}syntax - Excel documents: Use
${variable_name}syntax
Example text in a Word document:
Dear ${full_contact_name},
Thank you for choosing us for your ${project_type} project at ${house_address_1}, ${house_city}.
Your salesperson ${salesperson_full_name} will be in touch soon.
Project ID: ${project_id}
Contract Amount: $${contract_amount}
Step 2: Upload to ReadyBuild
- Go to Settings > Projects > Document Templates
- Click Add Template
- Enter a Template Name for internal reference
- Select a Category to organize templates
- Click Upload and select your document file
Available Variables
Date Variables
| Variable | Description | Example Output |
|---|---|---|
${short_date} | Current date (short format) | 1/15/2025 |
${long_date} | Current date (long format) | January 15, 2025 |
Contact Information
| Variable | Description |
|---|---|
${full_contact_name} | Contact display name: shows company name for commercial contacts, or "John and Jane Smith" for residential (combines spouse if present) |
${main_first_name} | Primary contact's first name |
${main_last_name} | Primary contact's last name |
${spouse_full_name} | Spouse/partner's full name |
${spouse_first_name} | Spouse/partner's first name |
${spouse_last_name} | Spouse/partner's last name |
${email} | Primary contact's email |
${email_spouse} | Spouse/partner's email |
${contact_note} | Notes from contact record |
Phone Numbers
| Variable | Description |
|---|---|
${primary_home_phone} | Primary contact's home phone |
${primary_cell_phone} | Primary contact's cell phone |
${primary_work_phone} | Primary contact's work phone |
${secondary_home_phone} | Secondary contact's home phone |
${secondary_cell_phone} | Secondary contact's cell phone |
${secondary_work_phone} | Secondary contact's work phone |
Project Address (Job Site)
| Variable | Description |
|---|---|
${house_address_1} | Job site street address |
${house_city} | Job site city |
${house_state} | Job site state |
${house_zip} | Job site ZIP code |
${house_year} | Year house was built |
${house_county} | Job site county |
${house_municipality} | Job site municipality |
Contact Address (Billing/Mailing)
| Variable | Description |
|---|---|
${contact_address_1} | Contact's mailing address |
${contact_city} | Contact's city |
${contact_state} | Contact's state |
${contact_zip} | Contact's ZIP code |
${contact_full_address} | Complete formatted address |
Project Information
| Variable | Description |
|---|---|
${project_id} | Project ID number |
${project_title} | Project title |
${project_type} | Project type name(s) |
${project_note} | Intake/project notes |
${description} | Project description |
${division} | Division/opportunity type |
${source} | Lead source |
${work_scope} | Combined work scope from estimate (formatted) |
Financial Information
| Variable | Description |
|---|---|
${sold_amount} | Project sold amount |
${contract_amount} | Contract amount (same as sold_amount) |
${total_sold_amount} | Total sold amount (including change orders) |
${total_est_cost} | Total estimated cost |
${cost} | Actual cost |
${final_estimated_margin_dollars} | Estimated margin in dollars |
${final_estimated_margin_percent} | Estimated margin percentage |
${final_actual_margin_dollars} | Actual margin in dollars |
${final_actual_margin_percent} | Actual margin percentage |
${cost_variance_dollars} | Cost variance in dollars |
${margin_variance_dollars} | Margin variance in dollars |
${margin_variance_percent} | Margin variance percentage |
Contract Information
| Variable | Description |
|---|---|
${contract_date} | Date contract was signed |
Staff Assignments
Salesperson
| Variable | Description |
|---|---|
${salesperson_first} | Salesperson's first name |
${salesperson_last} | Salesperson's last name |
${salesperson_full_name} | Salesperson's full name |
Inside Sales
| Variable | Description |
|---|---|
${inside_sales_person_first} | Inside sales first name |
${inside_sales_person_last} | Inside sales last name |
Estimator
| Variable | Description |
|---|---|
${estimator_first_name} | Estimator's first name |
${estimator_last_name} | Estimator's last name |
${estimator_full_name} | Estimator's full name |
Project Manager
| Variable | Description |
|---|---|
${pm_first_name} | Project manager's first name |
${pm_last_name} | Project manager's last name |
${pm_full_name} | Project manager's full name |
Designer
| Variable | Description |
|---|---|
${designer_first_name} | Designer's first name |
${designer_last_name} | Designer's last name |
${designer_full_name} | Designer's full name |
Drafter
| Variable | Description |
|---|---|
${drafter_first_name} | Drafter's first name |
${drafter_last_name} | Drafter's last name |
${drafter_full_name} | Drafter's full name |
Intake/Created By
| Variable | Description |
|---|---|
${intake_date} | Date project was created |
${intake_first_name} | Creator's first name |
${intake_last_name} | Creator's last name |
${intake_full_name} | Creator's full name |
First Appointment Information
| Variable | Description |
|---|---|
${first_appt_date} | First appointment date (short format) |
${first_appt_date_long} | First appointment date (long format) |
${first_appt_time} | First appointment time |
${first_appt_assigned_first_name} | Assigned person's first name |
${first_appt_assigned_last_name} | Assigned person's last name |
Current User (Person Generating Document)
| Variable | Description |
|---|---|
${current_user_first} | Current user's first name |
${current_user_last} | Current user's last name |
Custom Fields
Any custom fields defined for Contacts or Projects are automatically available as variables. Use the field's Field Name (not display name) as the variable.
For example, if you have a custom field with field name permit_number, use:
${permit_number}
Custom fields must have a Field Name defined. Check Settings > Form Fields to see available field names.
Using Document Templates
Generating Documents from a Project
- Open a project
- Go to the Documents tab
- Click Generate from Template
- Select a template
- Choose to Download or Print (converts to PDF)
Template Tips
- Test your templates - Generate a document to verify all variables are replaced correctly
- Use consistent formatting - Variables inherit surrounding text formatting in Word
- Handle missing data - If data is missing, the variable will be replaced with an empty string
- Work scope formatting - The
${work_scope}variable includes HTML formatting and works best in Word documents
Common Templates
- Project Proposal Cover Letter
- Scope of Work Document
- Pre-Construction Checklist
- Material Selection Sheet
- Project Completion Certificate
- Warranty Information
- Site Access Agreement
- Subcontractor Information Sheet
Troubleshooting
Variables Not Replacing
- Check the format - Ensure you're using
${variable_name}with curly braces - Check the file type - Only
.docx,.xlsx, and.xlssupport variable replacement - Check spelling - Variable names are case-sensitive and must match exactly
- Check for hidden formatting - In Word, variables may have hidden formatting. Try retyping the variable
Variable Shows Empty
This usually means the data doesn't exist for that project:
- Contact or spouse information may not be filled in
- Staff assignments may not be set
- Custom field may be empty