Templates

Document templates

An offer has a part that never changes — letterhead, bank details, payment terms — and a part that changes per case: recipient, service, amount. The document template keeps the constant part in one place; Bricksta fills in the changing values from the case.

On this page

A document template is used by the “Generate offer” step in the template editor. How to set it up is described in “Creating and maintaining templates”.

Creating a document template

  1. 1Under Templates, open Document templates and click “+”.
  2. 2Enter a name you will recognise later at the step, and click “Add”.
  3. 3Fill in General, Letterhead and Text blocks. Every field saves when you leave it — there is no save button.

General: number sequence and validity

“Valid for (days)” sets the “Valid until” date in the offer, counted from the day it is created. The offer number comes from the template’s number sequence: each template picks its sequence under “Number sequence”, and templates in the same sequence share one gap-free series. Two companies with their own templates thus get two series of their own, e.g. ANG-2026-0015 and OW-2026-0001 in the same case. “New number sequence” creates a sequence of its own for the template.

  • Pattern: the shape of the number, free text with placeholders — {Number} for the running number, {Number:4} for four digits with leading zeros, {Year} for the year of the offer ({Nummer} and {Jahr} work as well). “ANG-{Year}-{Number:4}” becomes ANG-2026-0042, “{Year}/{Number:4}” becomes 2026/0815. Below it you see, while typing, which number the next offer gets. A pattern without {Number} cannot be saved.
  • Next number: where the series continues, e.g. to carry on an existing numbering. Lower than a number already issued is not possible — Bricksta then names the smallest allowed one.
  • Start at 1 every year: on, the first offer of a new year (German time) starts at 1 — the pattern then needs {Year}. Off, the number keeps counting across years.
  • Invoice number range (no gaps): for real invoices. A “Generate invoice” step with a template in this range issues the invoice: the number is assigned only when it is issued, without gaps, and address and VAT ID come from the customer. After that the invoice is locked — corrections only by cancellation invoice — and kept for ten years. The next number cannot be set here, and the pattern is fixed from the first invoice on. With “Letterhead per company”, the range of the company’s template counts — each of your companies thus has its own number sequence. Without an invoice number range, an invoice stays a draft sample.
  • E-invoice (ZUGFeRD): if an admin switches on “E-invoice (ZUGFeRD)” under Organization → Master data, an issued invoice gets a ZUGFeRD PDF — the invoice PDF with the invoice data embedded as a machine-readable file (EN 16931) that accounting software reads without retyping. The default is off.
  • A number once issued stays, even if you change the pattern later; a new version of the same offer keeps its number and gets “-2”, “-3”.

Company name, address, commercial register, VAT ID, bank details and contact details live in the template itself — so a second company can have its own template with its own letterhead. With “Letterhead per company”, a step picks the template by company — per row the row’s company, otherwise the case’s company; if a company has no template, the step stops. If you keep your companies in a dataset, the step can also take the letterhead from there (“Letterhead from the dataset”): the dataset’s values then apply, and the template only fills fields whose cell is empty. The section can be collapsed; on a phone it starts collapsed.

Without an own logo, the offer uses the organization's logo. You upload an own logo directly on the template, as PNG or JPG up to 2 MB. The page rejects other formats because they cannot be embedded in the PDF.

If the organization's logo is a WebP image, the offer shows the company name instead of the logo. The template points this out; upload a PNG or JPG on the template in that case.

Text blocks and placeholders

You write the introduction, description of services, payment terms and closing text like a message. With “Insert field” you add placeholders such as {{Sponsor}} or {{Salutation}}. The template stores the field's label; which field of a process it corresponds to is decided at the step. That way one template serves several processes. If a step generates one offer per row, it can take the description of services from a “Formatted text” field of the row instead (“Service description from field”) — with paragraphs, bold, lists and tables; the template’s description-of-services block then does not apply there.

At the bottom, “Placeholders of this template” lists every placeholder once, even if it appears several times. Offer number, date, “Valid until” and the totals are set by Bricksta — you need no placeholders for them.

Showing part of the text only sometimes

If part of a text block should appear in the offer only under a condition — for example “in supporting {{Congress}}” only if “With congress” is Yes —, select it and click “Only show if …”. First come “<field> is filled in” for every field in the selected part, then “<field> is …” for a specific value and “another field …”; you combine several conditions with AND or OR. The part is then framed with a dashed violet line, with the condition in plain words in front of it; clicking it changes the condition, “Always show” removes it.

The same applies to the heading and the position label at the “Generate offer” step and to the title of new cases in the template settings. You map the fields of a condition at the step just like placeholders — “Placeholders of this template” lists them as well. An empty placeholder in a part that is left out does not stop the offer; outside a conditional part the rule stays: if a value is missing, no offer is generated. If a field that controls a condition changes, an offer generated earlier counts as outdated.

Translating the text blocks

If your organization has content languages, the language selector sits at the top right. When you pick a target language, the four text blocks appear in that language: the original in grey above, placeholders as chips. You can only insert placeholders the original already contains. Name, number range, letterhead and logo apply to all languages and are locked meanwhile. If a translation is missing or outdated, a line above the text blocks names the affected blocks; you can also translate all templates together under Organization › Translations.

The offer is generated in the language of the main contact — the participant added to the case first; you maintain their language on the contact. If the case has no contact, the organization's base language applies. Bricksta chooses per block: if only the introduction is translated, the other blocks come from the base language.

An AI translation nobody has reviewed yet does not go into the offer — the base language is used there instead. The same applies to a block whose translation contains a placeholder the original does not know. Only the text blocks are translated; the subject and the item title at the step stay as they are.

Deleting

At the bottom you see which processes use the template. As long as a step refers to it — as the step’s template or in a “Letterhead per company” mapping —, it cannot be deleted; Bricksta names the processes so you can switch the step there to another template first. Offers already generated stay unchanged when a template is deleted.

Only people with the “Manage templates” permission may create, change or delete. Every active member of the organization may read; other organizations do not see the templates.