Skip to main content

Document Templates

Required Permission
Add/Edit Templates - You must have the Add/Edit Templates permission to access this setting.

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

  1. Go to Settings > Projects > Document Templates

Supported File Formats

FormatUploadVariable ReplacementPrint to PDF
.docx (Word)
.doc (Word Legacy)
.xlsx (Excel)
.xls (Excel Legacy)
.pdf
Best Practice

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

  1. Go to Settings > Projects > Document Templates
  2. Click Add Template
  3. Enter a Template Name for internal reference
  4. Select a Category to organize templates
  5. Click Upload and select your document file

Available Variables

Date Variables

VariableDescriptionExample Output
${short_date}Current date (short format)1/15/2025
${long_date}Current date (long format)January 15, 2025

Contact Information

VariableDescription
${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

VariableDescription
${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)

VariableDescription
${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)

VariableDescription
${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

VariableDescription
${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

VariableDescription
${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

VariableDescription
${contract_date}Date contract was signed

Staff Assignments

Salesperson

VariableDescription
${salesperson_first}Salesperson's first name
${salesperson_last}Salesperson's last name
${salesperson_full_name}Salesperson's full name

Inside Sales

VariableDescription
${inside_sales_person_first}Inside sales first name
${inside_sales_person_last}Inside sales last name

Estimator

VariableDescription
${estimator_first_name}Estimator's first name
${estimator_last_name}Estimator's last name
${estimator_full_name}Estimator's full name

Project Manager

VariableDescription
${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

VariableDescription
${designer_first_name}Designer's first name
${designer_last_name}Designer's last name
${designer_full_name}Designer's full name

Drafter

VariableDescription
${drafter_first_name}Drafter's first name
${drafter_last_name}Drafter's last name
${drafter_full_name}Drafter's full name

Intake/Created By

VariableDescription
${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

VariableDescription
${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)

VariableDescription
${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 template variables. You do not need to add them manually — when a document is generated, the system looks up all custom fields for the project and its contact and includes their values.

Use the field's Field Name (not the display label) as the variable name. To find a field's field name, go to Settings > Form Fields and look at the Field Name column.

For example, if you have a custom field with field name permit_number, use:

${permit_number}

If a custom field has no value for a given project or contact, the variable is replaced with an empty string.

tip

This applies to both single-project document generation and Mail Merge. Any custom field you add in Settings > Form Fields for contacts or projects becomes available immediately — no template re-upload needed.

Enable for Mail Merge

Templates can be enabled for Mail Merge, which allows generating documents for multiple projects at once with tracking.

To enable a template for Mail Merge:

  1. Edit a .docx template
  2. Check Enable for Mail Merge
  3. Save the template
info

Only .docx (Word) templates support Mail Merge. The checkbox only appears for .docx files.

Once enabled, the template appears in the Template dropdown on the Projects > Mail Merge page.

Two Ways to Generate Documents

Generate from TemplateMail Merge
AccessProject > Documents tab > Generate from TemplateProjects > Mail Merge in the main menu
ScopeOne project at a timeMultiple projects at once
TemplatesAll templatesOnly templates with Enable for Mail Merge checked
OutputSingle documentMerged document for all selected projects
TrackingNo record keptGeneration recorded with date, user, and project
Best forQuick one-off documentsBatch operations like client letters

See Mail Merge for details on bulk document generation.

Using Document Templates

Generating Documents from a Project

  1. Open a project
  2. Go to the Documents tab
  3. Click Generate from Template
  4. Select a template
  5. Choose to Download or Print (converts to PDF)

Template Tips

  1. Test your templates - Generate a document to verify all variables are replaced correctly
  2. Use consistent formatting - Variables inherit surrounding text formatting in Word
  3. Handle missing data - If data is missing, the variable will be replaced with an empty string
  4. 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

  1. Check the format - Ensure you're using ${variable_name} with curly braces
  2. Check the file type - Only .docx, .xlsx, and .xls support variable replacement
  3. Check spelling - Variable names are case-sensitive and must match exactly
  4. 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