Skip to content
edoobox Docs
Try for free Try it for 7 days, no obligation
Menu
Try for free Try it for 7 days, no obligation

All placeholders for emails and PDFs

Look it up directly: Filter placeholders by template and group. The reference also includes subscription, dunning, ticket, and custom template contexts.

All placeholders for emails and PDFs
ALanguage variant of the templateBPlaceholders of the current templateCPlaceholder group BookingDSubject with offer and date placeholdersEMessage with participant and booking placeholders

Placeholders connect an email or PDF template to data from the current process. When sending, edoobox replaces, for example, ##UserFirstname##, ##OfferName## or ##InvoiceNumber## with values from the relevant person, booking, invoice or event.

The key rule is: The placeholder selection in the open template is the authoritative list for that context. Not every template has offer, booking, invoice or ticket data. A correctly written placeholder can therefore remain empty in another template.

Insert placeholders safely

  1. Under Settings → Email → Templates, open the exact email or PDF attachment you want to edit.

  2. Select the language first. Placeholders stay the same; maintain the surrounding text separately for each language.

  3. Insert the entry via the placeholder menu. This prevents typos and ensures that you only see the groups intended for this template.

  4. Do not change capitalization, underscores, square brackets, or double hashes.

  5. Generate a preview and additionally run an actual test process. The preview uses demo data and does not fully cover empty or special customer data.

Do not blindly copy between templates: A booking confirmation has different data than an invoice, dunning letter, ICS file, or manual message. Copy complex blocks only if the required placeholders are also available in the target menu.

Common placeholder groups

The V2 editor organizes available values into Current template, Booking, Offer, Participant and Organization. Which groups appear depends on the template.

GroupCurrent common placeholders
Organization##CompanyName##, ##CompanyContactPerson##, ##Shortcuts##, ##Street##, ##ZipCode##, ##ZipCity##, ##CompanyCountry##, ##Phone##, ##WebsiteURL##, ##Femail##
Offer##OfferName##, ##OfferNumber##, ##OfferURL##, ##OfferURLTagFilter##, ##MinimumMember##, ##MaximumMember##, ##RegisteredMember##, ##OfferStartDate##, ##OfferStartTime##, ##OfferEndDate##, ##OfferEndTime##, ##OfferStartendDate##, ##WeekNumber##, ##Deadline##, ##OfferType##, ##OfferTypes##, ##OfferStatus##, ##Room_first_module##, ##Location_first_module##, ##Teacher_first_module##, ##Teacher_first_module_email##, ##OfferConfirmationText1## to 3, ##LessonBooking##, ##OfferCurrency##
Booking##BookingNumber##, ##BookingDate##, ##BookingAmountNegative##, ##BookingAmountPositive##, ##UserAccessURL##, ##UserAnnulmentURL##, ##EventReservationJsonLD##
Participants##Title1##, ##Title2##, ##UserFullName## as well as the standard and custom participant fields visible in the account.

##Title1## and ##Title2## generate a greeting that matches the saved salutation. For new templates, prefer these salutation placeholders over hardcoded formulations for Ms. or Mr.

Standard fields and custom participant fields

For visible standard fields, edoobox generates, among others, ##UserSalutation##, ##UserFirstname##, ##UserLastname##, ##UserStreet##, ##UserZipcode##, ##UserTown##, ##UserPhone##, ##UserEmail##, ##UserCountry##, ##UserLanguage##, and ##UserCompany##.

Custom participant fields receive the prefix User. Spaces and special characters are removed, not translated. Mitgliedernummer becomes ##UserMitgliedernummer##; ältere Nummer technically becomes ##UserltereNummer## because ä is removed. Always select the placeholder from the menu instead of guessing it from the field name.

Only participant fields that are visible in the account's data structure are included in the selection. An empty value results in an empty spot in the output; for optional fields, use IF to build a suitable alternative.

Booking confirmation, Booking.pdf, ticket, and ICS

TemplateImportant template-specific values
Confirmation emailTitleName, UserAccess, LoginURL, multiple variants of OfferAllBookedModules, OfferAllBookedOffers with NoPrice and NoOfferNumber, as well as MobileWalletTickets and the individual wallet URLs.
Booking.pdf registrationBookingTime, DateNow, BookingPart with attributes such as Gender, DurationDaysHours, DistinctDays, NoPrices, NetAmountAndVATAdded, NoUsers, NoTime, NoWeekDays and NoWeekDay; also the billing address, BookingTemplateType and OfferAllBookedOffers.
Booking.pdf waiting listLargely matches Booking.pdf and additionally includes Watermark; it must not be treated as a ticket or a standard booking confirmation.
Ticket.pdfTicketCode, TicketNumber, TicketNumberTotal, TicketPriceCategory, wallet placeholders and barcode variants such as TicketDataMatrix*120px*P.
Date ICS fileDateDescription, PlaceLat, PlaceLong, PlaceName, PlaceAddress, StartDate, EndDate, StartTime, EndTime.

Write attributes in square brackets inside the double hashes. Several comma-separated attributes can be used, for example ##OfferAllBookedOffers[NoPrice,NoOfferNumber]##. More details on the invoice listing placeholder are available under Edit Rechnung.pdf.

Invoices and payments

Invoice and payment templates have their own placeholders for the document, amount, payment details and booking reference. For the classic Payment reminder email template, use only values actually offered by its placeholder menu.

Do not guess between templates: Placeholders from previous or other templates must not be transferred to the payment reminder without verification. The placeholder menu of the specific template being edited is always decisive.

Waiting list, MustPay and request list

  • Waiting list inquiry email: ##WaitinglistOfferName## and ##BookingURL##.

  • MustPay complete registration: ##UserName##, ##UserEmail##, ##BookingURL##, and ##DeleteURL##.

  • Request list email: ##OfferlistFeedbackURL##, ##OfferlistValidityDate##, ##OfferlistSecondMailExists## and ##OfferlistSecondMailNumber##.

  • Request list reminder and rejection: feedback URL and validity date.

  • Booking.pdf request list: combines request list values with the appropriate Booking.pdf values and Watermark.

Cancellation, attendance, and certificate

TemplateImportant template-specific values
Cancellation requested / Cancellation confirmation CancellationRules, CancellationFeeAmount, CancellationFeeOpenAmount, CancellationFeeStatus, CancellationRefundAmount, CancellationRefundInfo, CancellationInvoiceInfo, CancellationRequestDate, CancellationRequestReason.
Attendance confirmation / Non-attendance notificationVisitingTimesPercent, VisitingTimesHourMinute, OfferTotalTime, DateNow and VisitingTimesNumber0 through 7.
Zertifikat.pdfAdditionally CertificateValidationUrl, CertificateValidationQR, CertificateNumber, LeaderSignature and variants of OfferAllBookedOffers.

Tags, value tags, conditions and loops

Some powerful variables are used manually in conditions or loops and do not appear in every standard placeholder list:

  • OfferTags contains the names of the tags linked to the current offer. Use it with IN or NOTIN.

  • UserTags contains the person’s active standard tags from bookings that are not on a waiting list, tags maintained directly on the user profile, and SAML assignments.

  • ##Tag[InternerCode]## outputs the stored value of an offer tag with this exact name. Multiple values are output comma-separated.

  • {EACH?BookingUsers} repeats a block for booking participants. Within it, ##Id##, ##Salutation##, ##Firstname##, ##Lastname##, ##Email##, and ##Pricecategory## are available.

  • {EACH?OfferLeaders} repeats a block for instructors. Depending on the required content, ##name##, ##leaderemail##, ##leadername##, ##leaderavatar##, and ##leaderavatarurl## are available.

Syntax, operators, and ready-to-use examples are found under Customize email templates with IF and EACH. Positive and negative tag conditions of an offer control who is allowed to book; they are not the same as the output of OfferTags or UserTags.

Placeholders in a manual email

A manual message to a selected participant profile can use visible participant fields and salutations. The V2 dialog selects recipients from existing participants, admins or offers; it does not send to arbitrary email addresses typed in freely. A message to an admin profile does not automatically have the same participant fields.

When you select an offer, its associated participants are identified and offer data may become available. This does not automatically provide a specific booking number or invoice data. For those, use the email action in the relevant booking or invoice process. The steps are explained in Send manual emails to profiles and offers.

The practical examples explain Course instructor, signature, and course-dependent additional logo, Subject areas as own offer values, and a Proof of attendance for employers or educational leave. Use the respective explained standard values and self-maintained offer tags for this.

Checklist for changes

  • Test one case with filled and one with empty optional fields per template.

  • For multiple languages, generate each language variant separately.

  • For group bookings, check one and multiple persons as well as different price categories.

  • For invoices, compare open, partially paid, and canceled status.

  • For tags, test a matching and a non-matching case; check spelling and tag value exactly.

  • In Outbox, check subject, recipient, content, and attachments.

Use case: Group booking with persons and rates

A company registers multiple employees. In Booking.pdf, {EACH?BookingUsers} lists name, email, and price category per person. In Rechnung.pdf, ##InvoiceListing[User,PricecategoryDetail]## shows the same assignment for accounting.

Use case: Webinar with tag value

The offer has a standard tag named Format with the value Teams, and a tag named Zugangslink containing a demo URL. The confirmation outputs ##Tag[Format]## and ##Tag[Zugangslink]##. An IF condition displays this block only if OfferTags contains the expected tag.

Use case: Certificate with validation

A provider adds certificate number, validation QR, instructor signature, and attendance percentage in Zertifikat.pdf. Two test persons with sufficient and insufficient attendance show whether the certificate, non-attendance notice, and validation link work correctly together.

Use the reference for your template

The Reference at the end of the page contains all fixed entries of the template catalog as well as the additionally documented loops, tag conditions, and format variants. Search for a name like Membership, Dunning, BookingPart, or TicketBookedSchedule and then select the relevant template. The entries remain readable even without JavaScript.

Account-specific participant fields and self-created templates arise from your configuration. Their complete specific names are shown in your editor. A standard field is only offered if it is visible in the participant data structure. A context in the reference means that the relevant template can use these data; a single message may still contain empty values.

Subscriptions and dunning

The Subscription renewal reminder has its own values for name, validity, remaining uses, renewal start, price, currency, tax, cancellation date, and personal action links. It has participant and organization data, but no general offer or booking context. The guide to the subscription email explains each of the 13 subscription values and optional links.

The Dunning process uses its own templates for payment reminder, dunning, and dunning post (PDF). The Dunning… values include, among others, dunning level, reference, payment due date, open amount, dunning fee, total amount, payment link, and affected bookings. The classic manual payment reminder, however, uses the Account… values of its own template. Select the appropriate process in the reference before you take over content.

Design lists, wallet, and date fields specifically

You will find the detailed variants and combinations for booking blocks, date lists, tickets, wallet, and invoices in Placeholder variants for bookings, tickets, and invoices. Custom date fields can be formatted, for example, with ##UserGeburtsdatum[d.m.Y]##; the prerequisite is a visible participant field of type date. See Format participant date fields.

Instructor contacts can be output with ##Teacher_first_module_email## for the first relevant date or with ##leaderemail## within {EACH?OfferLeaders}. An instructor without an email remains in the list and provides an empty value for the address.

Output tag values with suitable names

For ##Tag[Name]##, the attribute notation supports Latin letters A–Z/a–z, digits, spaces, as well as underscore, colon, slash, period, and hyphen. Use, for example, Zugangslink or Interner_Code for such output tags. An umlaut, a commercial ampersand, or square brackets in the tag name do not fit this notation.

Commas separate multiple tag names: ##Tag[Plattform,Zugangslink]## combines existing values. A comma is therefore not a unique part of a single output tag name. The names in a OfferTags IN condition are a separate list check.

Generate personal promotion code

Open the relevant promotional campaign and copy the entire ##Promotion[…]## placeholder shown in its overview. It contains the identifier of your own campaign. When the placeholder is evaluated, a new active code is generated for that campaign. It is not a placeholder for simply displaying an existing voucher sale.

Use the current notation from your campaign and no invented identifier. A re-evaluation or preview can also generate new codes. Test the process with a dedicated demo campaign. The older notations ##PROMOCODE*…## are compatibility variants and are not needed for new content.

Related guides

Additional texts in multi-offer bookings

For confirmations and certificates with a multi-offer context, ##OfferConfirmationTextMultiOffers1##, ##OfferConfirmationTextMultiOffers2##, and ##OfferConfirmationTextMultiOffers3## additionally exist. They combine the corresponding additional texts of the selected offers. Use these special values only in the appropriate multi-offer process and check a booking with multiple offers. Individual offer information is still output via OfferConfirmationText1 to 3.