# Smart variables: how to automate invoices and contracts without copy-paste

> Stop manually typing client names, dates, and amounts into every invoice and contract. Learn how smart variables fill in the details for you.

- URL: https://tillage.ai/blog/smart-variables-automation
- Author: Tillage Team
- Published: 2025-12-18
- Updated: 2026-10-30
- Category: Product

Here's a scenario you know too well:

You're creating an invoice. You type the client's name. Then their company name. Then their email. Then the project name. Then today's date. Then next month's date for the due date. Then you copy the line items from the quote. Then you realize you typo'd the client's name and have to fix it in three places.

Fifteen minutes later, you finally hit send.

Now multiply that by 50 invoices per month. That's **12.5 hours of copy-paste work**. Every. Single. Month.

There's a better way: **Smart Variables**.

## What Are Smart Variables?

Smart variables are placeholders that automatically fill in with the right information when you create a document. The [smart variables reference](https://tillage.ai/docs/reference/smart-variables) has the full list.

Instead of typing "Acme Corporation" 10 times in a [contract](https://tillage.ai/features/contracts), you type `{clientName}` once. The system fills in "Acme Corporation" everywhere automatically.

**The magic**: When you use that contract template for the next client, that same variable becomes "Northwind Labs" automatically. No find-and-replace. No copy-paste. No typos.

## Why This Matters

Let's look at what you're probably doing now:

### The Old Way: Manual Document Creation

**Creating an invoice**:
1. Open blank invoice template
2. Type client name (hope you spell it right)
3. Type company name
4. Type email address
5. Look up project details
6. Copy line items from quote
7. Calculate totals manually
8. Type today's date
9. Calculate due date (today + 30 days)
10. Type payment terms
11. Proofread everything
12. Send and hope you didn't miss anything

**Time**: 10-15 minutes per invoice  
**Error rate**: High (typos, wrong dates, calculation errors)  
**Scalability**: Terrible (can't batch process)

### The New Way: Smart Variables

**Creating an invoice**:
1. Select client from dropdown
2. Select quote to invoice
3. Click "Generate Invoice"
4. Review (everything is pre-filled correctly)
5. Send

**Time**: 2 minutes per invoice  
**Error rate**: Near zero (data comes from your system)  
**Scalability**: Excellent (a payment schedule or recurring billing creates every invoice for you)

That's an **80% time savings**. For 50 invoices per month, that's **10 hours back in your month**.

## Types of Smart Variables

Tillage variables use single curly braces, like `{clientName}`. They cover several categories:

### 1. Client Information Variables

These pull data from your client records:

```
{clientName}       → Acme Corporation
{clientContact}    → John Smith
{clientEmail}      → john@acme.com
{clientPhone}      → (555) 123-4567
{clientAddress}    → 123 Main St, Suite 100, San Francisco, CA 94105
{clientWebsite}    → acme.com
{clientIndustry}   → Software
{clientSize}       → 51-200 employees
```

**Use cases**:
- Contracts: "This agreement is between [Your Agency] and `{clientName}`"
- Invoices: "Monthly retainer for `{clientName}`"
- Emails: "Hi `{clientContact}`, here's your invoice..."

### 2. Quote, Project and Contract Variables

These pull data from the specific quote, project or contract:

```
{quoteNumber}      → QT-2025-0042
{quoteDate}        → December 1, 2025
{expiryDate}       → December 31, 2025
{acceptanceDate}   → December 5, 2025
{projectName}      → Website Redesign
{totalAmount}      → $15,000.00
{contractNumber}   → CNT-2025-0007
{contractDate}     → December 8, 2025
{effectiveDate}    → January 15, 2026
```

**Use cases**:
- Contracts: "Project: `{projectName}` for a total of `{totalAmount}`"
- Contracts: "This agreement takes effect on `{effectiveDate}`"
- Emails: "Quote `{quoteNumber}` is ready for your review"

### 3. Invoice Variables

These are specific to invoices:

```
{invoiceNumber}    → INV-2025-0156
{issueDate}        → December 18, 2025
{dueDate}          → January 17, 2026
{invoiceAmount}    → $5,000.00
{daysOverdue}      → 7
```

**Use cases**:
- Invoice emails: "Invoice `{invoiceNumber}` dated `{issueDate}`"
- Payment reminders: "Invoice `{invoiceNumber}` for `{invoiceAmount}` was due `{dueDate}`"
- Overdue reminders: "This invoice is now `{daysOverdue}` days past due"

### 4. Date Variables

These automatically fill in dates (no more manual date math):

```
{month}            → December
{year}             → 2025
{monthYear}        → December 2025
{nextMonthYear}    → January 2026
{nextYear}         → 2026
{quarter}          → 4
```

**Use cases**:
- Recurring invoices: "Service period: `{monthYear}`"
- Invoice titles: "Q`{quarter}` `{year}` retainer"
- Annual renewals: "Support plan for `{nextYear}`"

### 5. Payment Terms and Schedule Variables

These insert your terms and where a payment sits in its schedule:

```
{paymentTerms}     → Net 30
{milestoneName}    → Design approval
{sequence}         → 2
{totalCount}       → 4
{amount}           → $2,500.00
{frequency}        → Monthly
```

**Use cases**:
- Invoices: "Payment terms: `{paymentTerms}`"
- Milestone invoices: "Payment `{sequence}` of `{totalCount}`: `{milestoneName}`"
- Recurring invoices: "`{frequency}` retainer"

### 6. Service Variables

These work with the services on a contract, such as ongoing retainers:

```
{serviceName}              → Website Maintenance
{serviceDescription}       → Monthly updates, backups and monitoring
{serviceRate}              → $1,500.00
{serviceBillingFrequency}  → Monthly
{serviceStartDate}         → January 1, 2026
```

**Use cases**:
- Contracts: List ongoing services with their rate and billing frequency
- Recurring invoices: "`{serviceName}` for `{monthYear}`"
- Service descriptions: Reuse the same wording on every quote

### 7. Agency/Company Variables

These pull from your agency settings:

```
{businessName}     → Your Agency Name
{businessEmail}    → hello@youragency.com
{businessPhone}    → (555) 987-6543
{businessAddress}  → 456 Agency St
```

**Use cases**:
- All documents: Consistent contact details
- Contracts: "This agreement is between `{businessName}` and `{clientName}`"
- Emails: Sign-offs and reply-to details

Your logo and brand colors are applied to every quote, contract and invoice automatically, so you don't need a variable for them.

## Real-World Use Cases

Let's see how this works in practice:

### Use Case 1: Automated Monthly Retainer Invoices

**Scenario**: You have 20 [retainer clients](https://tillage.ai/features/billing-schedules) who get invoiced on the 1st of every month.

**Without variables**:
- Open 20 invoice templates
- Manually update each one with current month/year
- Copy-paste client info 20 times
- Calculate due dates manually
- Time: 3-4 hours

**With variables**:

**Recurring invoice title and description**:
```
Title: {projectName} retainer, {monthYear}

Description: Monthly retainer for {clientName}
Service period: {monthYear}
Payment terms: {paymentTerms}
```

**Result**: Set up each retainer once as a recurring schedule. Every month, Tillage creates and sends each invoice with the right month, client details, due date and payment link.

**Time saved**: 3.5 hours per month = **42 hours per year**

### Use Case 2: Contract Generation from Quotes

**Scenario**: Client accepts your quote. Now you need to create a contract.

**Without variables**:
- Open contract template
- Copy client name, company, email from quote
- Copy project details from quote
- Copy line items and pricing from quote
- Manually type dates
- Calculate payment schedule
- Proofread everything
- Time: 20-30 minutes

**With variables**:

**Contract template** (text blocks with variables, plus deliverables, payment schedule and signature blocks):
```
SERVICE AGREEMENT {contractNumber}

This agreement takes effect on {effectiveDate} between:

Provider: {businessName}
Client: {clientName}

1. PROJECT SCOPE
{projectName}

2. DELIVERABLES
[Deliverables block: filled from the quote's line items]

3. TIMELINE
[Timeline block: phases and dates from your project start date]

4. PAYMENT TERMS
Total Project Fee: {totalAmount}
Payment Terms: {paymentTerms}

[Payment schedule block: for example, 50% due upon signing,
50% due upon completion]

5. SIGNATURES
[Signature block: you sign first, then {clientContact} for {clientName}]
```

**Result**: Choose "Create Contract" on the approved quote → Entire contract pre-filled with accurate data.

**Time saved**: 25 minutes per contract

### Use Case 3: Recurring Service Invoices

**Scenario**: You provide monthly SEO services and need to invoice each month.

**The challenge**: Each invoice needs:
- Current month's service period
- The right due date
- Correct invoice number sequence
- Updated payment link

**With variables**:

**Recurring invoice description**:
```
Service: {serviceName}
Period: {monthYear}

Services Provided:
- Keyword research and optimization
- Content updates and blog posts
- Technical SEO maintenance
- Monthly performance report

Questions? Email {businessEmail}
```

**Result**: Each month's invoice is generated on schedule with the right period, due date, invoice number and payment link. If the client has saved a payment method and agreed to autopay, it's charged automatically.

### Use Case 4: Payment Reminder Emails

**Scenario**: Invoice is 7 days overdue. You need to send a reminder.

**Without variables**:
- Look up invoice number
- Look up amount
- Look up due date
- Look up client name
- Copy payment link
- Write email manually
- Time: 5 minutes per reminder

**With variables**:

**Reminder email template**:
```
Subject: Friendly reminder: Invoice {invoiceNumber} is {daysOverdue} days overdue

Hi {clientContact},

I hope this email finds you well. I wanted to send a friendly reminder
that Invoice {invoiceNumber} for {invoiceAmount} was due on
{dueDate}.

If you've already sent payment, please disregard this email. If not,
you can pay online using the link below.

Let me know if you have any questions!

Best,
{businessName}
{businessEmail}
```

**Result**: Automated reminder emails sent with all correct information and a payment link. No manual lookup required.

**Time saved**: 4 minutes per reminder × 10 reminders/month = **40 minutes per month**

## Combining Variables

Variables work anywhere in the text, so you can combine several in one line:

```
{clientContact} at {clientName} ({clientEmail})
→ John Smith at Acme Corporation (john@acme.com)

Invoice {invoiceNumber} for {projectName} - Due {dueDate}
→ Invoice INV-2025-0156 for Website Redesign - Due January 17, 2026
```

Keep templates simple: Tillage variables fill in values, and amounts and dates come out already formatted. They don't support conditional text or math, so create a separate template when a case needs different wording.

## Setting Up Your Variable System

Here's how to implement smart variables in your workflow:

### Step 1: Audit Your Current Documents

List all the documents you create regularly:
- [ ] Quotes/Proposals
- [ ] Contracts/Agreements
- [ ] Invoices
- [ ] Payment reminders
- [ ] Project kickoff emails
- [ ] Status updates
- [ ] Completion notices

### Step 2: Identify Repeated Information

For each document type, note what you're typing repeatedly:
- Client name, company, contact info
- Project details
- Dates (today, due dates, service periods)
- Payment terms
- Your company info

### Step 3: Create Variable Templates

Replace repeated information with variables:

**Before**:
```
Invoice #INV-2025-0156
Date: December 18, 2025
Due: January 17, 2026

Bill To:
John Smith
Acme Corporation
john@acme.com
```

**After**:
```
Invoice #{invoiceNumber}
Date: {issueDate}
Due: {dueDate}

Bill To:
{clientContact}
{clientName}
{clientEmail}
```

### Step 4: Test Your Templates

Generate a few test documents to make sure:
- All variables populate correctly
- Formatting looks right
- Dates calculate properly
- Math is accurate

### Step 5: Automate Common Workflows

Set up automation for:
- **Monthly retainer invoices**: Auto-generate on the 1st
- **Payment reminders**: Auto-send once an invoice is overdue, for example at 7 days and then every 7 days
- **Recurring services**: Auto-invoice on a weekly, monthly, quarterly or annual schedule
- **Contract generation**: Create the contract from the accepted quote

## Common Mistakes to Avoid

### Mistake #1: Not Keeping Client Data Updated

**Problem**: Variables pull from your client database. If the data is wrong, every document will be wrong.

**Fix**: 
- Update client info when it changes
- Verify email addresses before sending
- Review generated documents before sending

### Mistake #2: Over-Complicating Templates

**Problem**: Cramming every scenario into one template makes it hard to maintain.

**Fix**:
- Start simple
- Add complexity only when needed
- Create separate templates for special cases

### Mistake #3: Not Testing Date Variables

**Problem**: Date calculations can be tricky (month-end, leap years, etc.)

**Fix**:
- Test date variables at month-end
- Verify due dates are correct
- Check year rollover (December → January)

### Mistake #4: Forgetting to Update Templates

**Problem**: You change your payment terms but forget to update the template.

**Fix**:
- Review templates quarterly
- Update variables when business terms change
- Keep a template changelog

## The ROI of Smart Variables

Let's calculate what you're saving:

**Time savings per month**:
- Invoices: 10 hours (50 invoices × 12 minutes saved)
- Contracts: 4 hours (10 contracts × 25 minutes saved)
- Payment reminders: 1 hour (15 reminders × 4 minutes saved)
- **Total: 15 hours per month**

**Annual savings**:
- Time: 180 hours per year
- At $150/hour: **$27,000 in recovered time**
- Plus: Fewer errors, faster payment, better client experience

**Setup time**: 2-4 hours to create your first templates

**ROI**: 45x return in the first year

## Getting Started with Tillage Variables

Tillage has smart variables built in. Here's how to use them:

### 1. Find Your Templates
- Contract templates live under Contracts → Templates
- Quote, invoice and reminder emails live under Settings → Quotes and Settings → Invoices

### 2. Insert Variables
- Click the "Insert Variable" button
- Select from the list
- Variable appears in your template

### 3. Preview Before Sending
- Generate document from template
- Review all populated fields
- Edit if needed (one-time changes don't affect template)

### 4. Save Custom Templates
- Create your own contract templates from reusable blocks
- Share them across your team

### 5. Automate Workflows
- Set up recurring invoices
- Turn on overdue payment reminders
- Generate contracts from accepted quotes

## The Bottom Line

Smart variables aren't just about saving time (though 15 hours per month is nice).

They're about:
- **Accuracy**: No more typos or wrong dates
- **Consistency**: Every document looks professional
- **Scalability**: Handle 10x more clients without 10x more work
- **Professionalism**: Clients notice when details are perfect

The agencies that automate document creation have more time for the work that actually matters: delivering great results for clients.

The ones still copy-pasting? They're drowning in admin work.

Which one will you be?

---

**Ready to automate your invoices and contracts?** [Try Tillage free](https://app.tillage.ai/signup) and create your first smart variable template in minutes. No credit card required.

---

All posts: https://tillage.ai/blog.md  
Site index for AI assistants: https://tillage.ai/llms.txt  
Sign up free: https://app.tillage.ai/signup
