Document templates
Build branded quote document templates in Bunny with headers, footers, body components, fonts, PDF preview and merge fields.
Document templates let you give quotes a more branded look as well as include contract language, product information and images. You can define multiple templates and tailor them to new deals, amendments and renewals for example.

Document template builder
Header and footerLink to Header and footer section
Headers and footers can appear on every page, but you have the option to skip the first page. You can also upload a background image that you can overlay text on. Bunny will try to auto-size the image to the width of the document, but you may need to fine-tune this manually.
Background images should be rectangular and 1200px wide

Header configuration
You can overlay some text on the image. In the example above, we have added some text with merge field that will show the customer’s name.
You can also adjust the margin bottom for headers (and margin top for footers) to create some spacing between the document body and the header and footer.
Body componentsLink to Body components section
The body of a template can be comprised of a number of different components, which can all be customized.
- Account – The customer account information as well as the details of contact on the quote
- Body text - A rich text field that can contain anything from contract language to introductions. You can also render this in two columns.
- Header - A headering for the following components.
- Image - Any image
- Page break - Causes the following component to start on a new page. This can be useful for a cover page or right before a quote or signature page.
- Quote - The details of the quote, i.e. the line items with pricing as well as totals.
- Signatures - The signature fields for e-signing integration with Docusign, PandaDoc or Dropbox Sign.
- Spacer – A horizontal line that separates the compomnents immediately before and after it.
Fonts and sizesLink to Fonts and sizes section
To make it easier to create a visually consistent and appealing document, Bunny will attempt to size all text to the default size: 13 px. The fonts supported are:
- Arial, Courier New, Georgia, Impact, Inter, Lato, MarkPro, Montserrat, Open Sans, Roboto, Times New Roman and Trebuchet
You can override fonts in some components, but changing the overall font setting will update all components.
PreviewLink to Preview section
The Preview tab lets you preview what the template will look like as PDF. Bunny provides sample values for the account, quote and signature components, but all other components will look exactly as shown.

Document template preview
You can also download the PDF and inspect it in your favorite PDF viewer.
Merge fieldsLink to Merge fields section
There are cases where text needs to dynamic, such as dates and customer details. When inserted as {{current_date}}, Bunny will merge in the relevant values in the final PDF.
| Merge field | Example |
|---|---|
| current_date | 31 March 2025 |
| current_day | 31 |
| current_month | March |
| current_month_number | 3 |
| current_year | 2025 |
| Quote | |
| quote.number | 123456 |
| quote.expiry_date | 31 March 2025 |
| quote.start_date | 1 April 2025 |
| quote.end_date | 31 March 2026 |
| quote.notes | This is a note |
| quote.name | Acme, Inc. quote |
| quote.amount | $123.45 |
| quote.net_payment_days | 30 |
| quote.evergreen | true |
| quote.po_number | ABC123 |
| quote.currency | USD |
| quote.amount | |
| quote.sub_total | |
| quote.tax_amount | |
| quote.first_plan.trial_start_date | 1 March 2026 |
| quote.first_plan.trial_end_date | 15 March 2026 |
| quote.first_plan.renewal_term_months | 6 |
| quote.second_plan.trial_start_date | 1 March 2026 |
| quote.second_plan.trial_end_date | 15 March 2026 |
| quote.second_plan.renewal_term_months | 12 |
| Account | |
| account.name | Acme, Inc. |
| account.customer_billing_street | |
| account.customer_billing_city | |
| account.customer_billing_state | |
| account.customer_billing_country | |
| account.customer_billing_zip | |
| account.currency | USD |
| account.tax_number |