Variables fill the next job so you stop copy-pasting names.
[Variables-panel] Open Variables. Built-in keys come from the company, the client, the document, and pricing. Add custom keys for anything that repeats.
There are three {{…}} systems. Do not mix them.
| System | Where | What it is |
|---|---|---|
| Vars | Document body, titles, footers | Fill from company / client / settings / custom fields |
| Write-ins | Same document text | Underlines, gaps, rows, checkboxes: not a Var name |
| Email merge fields | Settings → Email templates | Send-time fields such as {{view_url}} |
Clients never see brackets when a required Var has a value.
Syntax
{{client_name}}
{{client_name,require:off}}
{{client_name,optional:true}}
{{client_name,raw:true}}
- Keys: start with a letter, then letters, digits, underscore. No spaces, hyphens, or dots.
- Default is required. Empty required Vars block share and PDF.
require:offoroptional:true→ prints blank and does not block send.raw:true(aliasliteral:true) prints the token as text. Use this in guides and templates when you want the reader to see{{client_name}}.
[Insert-variable-menu] Insert variable: search by key, label, or group. Insert as optional adds require:off. Write-in presets ignore that switch.
Built-in keys you will use
Company: company_name, company_website, company_email, company_phone, company_address Use {{company_email}} on contact lines that clients see. Do not use {{sender_email}} there.
Client: client_name, client_company, client_email, client_phone
Document: proposal_title, proposal_date, expiration_date, project_nameproposal_date is created-at, not “today” at print time. expiration_date is empty when validity is 0.
Pricing: project_total, currency, subtotal, discount_label, discount_amount, tax_label, tax_rate, tax_amount, total_with_tax
Sender: sender_name, sender_email, sender_title sender_title comes from Account → Title / position.
Money rules (easy to get wrong)
project_totalis the pre-tax sum of pricing line items. Never type the printed grand total into that field.- Discount applies before tax.
- There is no
{{currency_symbol}}. Use{{currency}}(PHP, USD, …). - Acknowledgements: money received is
{{amount_received}}(from the convert dialog), not a rewrite ofproject_total.
Custom Vars
Types: TEXT, CURRENCY, DATE. Keys 1–50 characters. Values encrypted at rest (max 2000 characters).
A custom client_name with a value overrides the attached client. An empty custom does not.
Nested tokens expand up to depth 6. A title can be Proposal {{service_1}}.
Share readiness
The builder lists missing required Vars. Fill them or mark them optional. Cover blocks that show client details still need client_name and client_email before Share when a client is expected.