folder-checkDeal documents

This document lists all available placeholders for default Deal Documents. Most specialized templating scenarios fall back to this one.

Overview

This is the main Document templating providing comprehensive Deal information including Customers, Units, Payments, Discounts, and more.

Simple Placeholders

Deal Overview

$dealId

Unique identifier of the Deal (numeric ID). Type: String | UI: "Deal" (business_case)

$tags

Tags associated with the Deal, comma-separated. Type: String | UI: "Tags" (customer_param_tags)

$type

Type of the Deal. Possible values: Standard, Investment. Type: String | UI: "Type" (type)

$status

Current status of the Deal. Possible values: Active, Lost, Won, Sleeping. Type: String | UI: "Status" (status)

$lifeCycle

Lifecycle stage of the Deal. Possible values: New, Negotiating, Preparing contract, Reservation contract signed, Reservation paid, Future purchase contract signed, Future purchase contract paid, Purchase contract paid, Purchase contract signed, PC entered cadastre. Type: String | UI: "Lifecycle" (business_case_lifecycle)

$createdOn

Date when the Deal was created. Type: DateWrapper | UI: "Created" (business_case_param_added)

$closedOn

Date when the Deal was closed. Type: DateWrapper | UI: "Closed" (business_case_param_closed)

$handoverDate

Scheduled or actual handover date for the Deal. Type: DateWrapper | UI: "Handover" (business_case_param_handover_label)

$closingReason

Reason for closing the Deal (if closed). Type: String

$closingComment

Additional comment about closing the Deal. Type: String | UI: "Closing Comment" (business_case_param_closing_comment_label)

$variableSymbol

Variable symbol for the Deal. Type: String

$inspectionDate

Date of the Deal inspection. Type: DateWrapper | UI: "Inspection" (business_case_param_inspection_label)

$corwin_authorization_date / $is_corwin_authorization_date

Authorization date (Corwin-specific). The is_* variant is a Boolean for conditional checks. Type: DateWrapper / Boolean

$homa_user_basis_of_representation / $is_homa_user_basis_of_representation

User's basis of representation (Homa-specific). The is_* variant is a Boolean for conditional checks. Type: String / Boolean

Project Identification

Dynamic boolean placeholders are created for each project in your system. These allow you to conditionally include content based on which project the Deal belongs to.

$is<ProjectName>

Boolean indicating if the Deal's main project matches this project. The placeholder name is created by normalizing the project name (removing spaces and special characters).

Type: Boolean

Examples:

  • For a project named "River View Apartments", the placeholder would be: $isRiverViewApartments

  • For a project named "City Center", the placeholder would be: $isCityCenter

Usage example:

Current User Information

$currentUser

Name of the user generating the document. Type: String

$currentUserEmail / $isCurrentUserEmail

Email address of the user generating the document. The is* variant is a Boolean for conditional checks. Type: String / Boolean

$currentUserPhone / $isCurrentUserPhone

Phone number of the user generating the document. The is* variant is a Boolean for conditional checks. Type: String / Boolean

$currentUserSupplier / $isCurrentUserSupplier

Supplier associated with the user generating the document. The is* variant is a Boolean for conditional checks. Type: String / Boolean

Date Utilities

$now

Current date and time when the document is generated. Type: DateWrapper

$nowDMYdot

Current date formatted as dd.MM.yyyy (e.g., 23.12.2025). Type: DateWrapper (formatted)

$nowPlus14

Current date plus 14 days. Type: DateWrapper

$nowPlus30

Current date plus 30 days. Type: DateWrapper

$sentCallToPay

Date when the call to pay was sent. Type: DateWrapper | UI: "Sent Call to Pay" (business_case_param_sentcalltopay_label)

$taxOfficeSubmissionDeadline

Deadline for submitting documents to the tax office. Type: DateWrapper | UI: "Tax office submission deadline" (business_case_param_taxoffice_submission_deadline_label)

$taxOfficeSubmissionDate

Date when documents were submitted to the tax office. Type: DateWrapper | UI: "Tax office submission date" (business_case_param_taxoffice_submission_date_label)

Prices and Discounts

$dealPriceVAT / $dealPriceVAT_sk / $dealPriceVAT_cz

Total Deal price with VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPriceNoVAT / $dealPriceNoVAT_sk / $dealPriceNoVAT_cz

Total Deal price without VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPriceVATAmount / $dealPriceVATAmount_sk / $dealPriceVATAmount_cz

VAT amount on the Deal price. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPriceVATRate / $dealPriceVATRate_sk / $dealPriceVATRate_cz

VAT rate percentage for the Deal. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealDiscountVat

Total Deal Discount with VAT. Type: NumberWrapper

$dealDiscountNoVat

Total Deal Discount without VAT. Type: NumberWrapper

$dealPriceWithAdditionalProductsVat / $dealPriceWithAdditionalProductsVat_sk / $dealPriceWithAdditionalProductsVat_cz

Deal price with VAT including all Additional Products. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPriceWithAdditionalProductsNoVat / $dealPriceWithAdditionalProductsNoVat_sk / $dealPriceWithAdditionalProductsNoVat_cz

Deal price without VAT including all Additional Products. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPriceWithAdditionalProductsVatAmount / $dealPriceWithAdditionalProductsVatAmount_sk / $dealPriceWithAdditionalProductsVatAmount_cz

VAT amount on the Deal price with Additional Products (calculated). Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPriceWithAdditionalProductsVatRate / $dealPriceWithAdditionalProductsVatRate_sk / $dealPriceWithAdditionalProductsVatRate_cz

VAT rate percentage on the Deal price with Additional Products (calculated). Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPriceIgnoredProductsVat

Price of ignored Additional Products with VAT. Type: NumberWrapper

$dealPriceIgnoredProductsNoVat

Price of ignored Additional Products without VAT. Type: NumberWrapper

Deal Price Percentage Fractions

$dealPriceTotal{X}Percent / $dealPriceTotal{X}Percent_sk / $dealPriceTotal{X}Percent_cz

X% of the total Deal price with VAT, rounded to a whole number. Available for X ∈ {10, 15, 20, 30, 40, 80, 85}. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPriceTotal{X}PercentCents / $dealPriceTotal{X}PercentCents_sk / $dealPriceTotal{X}PercentCents_cz

X% of the total Deal price with VAT, with two decimal places. Available for X ∈ {10, 15, 20, 30, 40, 80, 85}. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPriceTotal{X}PercentCustModImplSum / $dealPriceTotal{X}PercentCustModImplSum_sk / $dealPriceTotal{X}PercentCustModImplSum_cz

X% of the total Deal price with VAT plus the Customer Modification Implementation price, rounded to a whole number. Available for X ∈ {10, 15, 20, 30, 40, 80, 85}. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPriceTotal{X}ReservationFeePercent / $dealPriceTotal{X}ReservationFeePercent_sk / $dealPriceTotal{X}ReservationFeePercent_cz

X% of the Deal price with VAT minus the Reservation Fee, rounded to a whole number. Available for X ∈ {10, 20, 50}. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

Payment Sums and Balances

$dealPaymentsIncomingSumVat / $dealPaymentsIncomingSumVat_sk / $dealPaymentsIncomingSumVat_cz

Total sum of all Incoming Payments with VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPaymentsPrescribedSumVat / $dealPaymentsPrescribedSumVat_sk / $dealPaymentsPrescribedSumVat_cz

Total sum of all Prescribed Payments with VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPaymentsPendingSumVat / $dealPaymentsPendingSumVat_sk / $dealPaymentsPendingSumVat_cz

Pending payment amount (Prescribed minus Incoming), representing the Deal balance. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words) | UI: "Financial balance" (business_case_balance_overall_label)

$dealPaymentsIncomingNoCustomChangesSumVat / $dealPaymentsIncomingNoCustomChangesSumVat_sk / $dealPaymentsIncomingNoCustomChangesSumVat_cz

Sum of Incoming Payments excluding Custom Changes, with VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPaymentsIncomingNoCustomChangesSumNoVat / $dealPaymentsIncomingNoCustomChangesSumNoVat_sk / $dealPaymentsIncomingNoCustomChangesSumNoVat_cz

Sum of Incoming Payments excluding Custom Changes, without VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPaymentsIncomingOnlyCustomChangesSumVat / $dealPaymentsIncomingOnlyCustomChangesSumVat_sk / $dealPaymentsIncomingOnlyCustomChangesSumVat_cz

Sum of only Custom Changes Incoming Payments, with VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealPaymentsIncomingOnlyCustomChangesSumNoVat / $dealPaymentsIncomingOnlyCustomChangesSumNoVat_sk / $dealPaymentsIncomingOnlyCustomChangesSumNoVat_cz

Sum of only Custom Changes Incoming Payments, without VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$dealBalanceOverall / $dealBalanceOverall_sk / $dealBalanceOverall_cz

Overall Deal balance with VAT. Includes Slovak and Czech word variants. Boolean checks available: $isDealBalanceOverallPositive, $isDealBalanceOverallNegative, $isDealBalanceOverallNonPositive, $isDealBalanceOverallNonNegative. Type: NumberWrapper / String (words) / Boolean | UI: "Financial balance" (business_case_balance_overall_label)

$dealBalanceToday / $dealBalanceToday_sk / $dealBalanceToday_cz

Deal balance as of today with VAT. Includes Slovak and Czech word variants. Boolean checks available: $isDealBalanceTodayPositive, $isDealBalanceTodayNegative, $isDealBalanceTodayNonPositive, $isDealBalanceTodayNonNegative. Type: NumberWrapper / String (words) / Boolean | UI: "Balance today" (business_case_balance_today_label)

$paymentReservationFeeDefault / $paymentReservationFeeDefault_sk / $paymentReservationFeeDefault_cz

Default reservation fee amount. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$remainsToPayDirectly / $remainsToPayDirectly_sk / $remainsToPayDirectly_cz / $isDirectTransferBalancePositive

Amount remaining to be paid via direct transfer (difference between prescribed and incoming direct transfer payments). Includes Slovak and Czech word variants. Boolean check $isDirectTransferBalancePositive indicates if the balance is positive. Type: NumberWrapper / String (words) / Boolean

$currentAccountTotal / $currentAccountTotal_sk / $currentAccountTotal_cz

Total amount to be paid to current account. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

Payment Schedule (Per Payment Type)

Dynamic placeholders generated for each DealPaymentPrescribedType enum value. Replace {TYPE} with the enum constant name (e.g. RESERVATION_FEE, FIRST_FPC_PAYMENT, FPC_PAYMENT, ADDITIONAL_PRODUCT_PAYMENT, ADDITIONAL_PAYMENT).

$payment{TYPE}Type

Localized name of the payment type. Type: String

$payment{TYPE}Amount / $payment{TYPE}AmountNoVAT / $payment{TYPE}AmountJustVAT

Amount of the payment of this type: with VAT, without VAT, and VAT component only. Type: NumberWrapper

$payment{TYPE}Deadline

Due date of the payment of this type. Type: DateWrapper

$payment{TYPE}AccountType

Payment method for the payment of this type (localized text). Type: String

$isPayment{TYPE}Paid

Boolean indicating if the payment of this type has been fully paid. Type: Boolean

FPC Numbered Variants

For individual FPC (Final Payment Contribution) payments numbered 1–6:

$paymentFpc{N}Amount / $paymentFpc{N}AmountNoVAT / $paymentFpc{N}AmountJustVAT

Amount of the Nth FPC payment: with VAT, without VAT, and VAT component only. Available for N ∈ {1, …, 6}. Type: NumberWrapper

$isPaymentFpc{N}Amount

Boolean indicating if the Nth FPC payment amount (with VAT) is greater than zero. Available for N ∈ {1, …, 6}. Type: Boolean

$isPaymentFpc{N}AmountNoVAT

Boolean indicating if the Nth FPC payment no-VAT amount is greater than zero. Available for N ∈ {1, …, 6}. Type: Boolean

$isPaymentFpc{N}AmountJustVAT

Boolean indicating if the Nth FPC payment VAT-only amount is greater than zero. Available for N ∈ {1, …, 6}. Type: Boolean

Combination Placeholders

$paymentReservationFeeAndFpc1Amount / $paymentReservationFeeAndFpc1AmountNoVAT / $paymentReservationFeeAndFpc1AmountJustVAT

Sum of the Reservation Fee and first FPC payment: with VAT, without VAT, and VAT component only. Type: NumberWrapper

$paymentFpc1MinusReservationAmount

First FPC payment amount minus the Reservation Fee. Type: NumberWrapper

Additional Products

$electrometerPriceNoVat

Price of the electrometer without VAT (JRD-specific feature). Type: NumberWrapper

$electrometerPriceVat

Price of the electrometer with VAT (JRD-specific feature). Type: NumberWrapper

$dealPriceIncludingElectrometerNoVat

Deal price including electrometer without VAT (JRD-specific feature). Type: NumberWrapper

$dealPriceIncludingElectrometerVat

Deal price including electrometer with VAT (JRD-specific feature). Type: NumberWrapper

$customerModificationImplementationPriceVatAmount

VAT amount on Customer Modification Implementation price. Type: NumberWrapper

$customerModificationImplementationPriceNoVat / $customerModificationImplementationPriceNoVat_sk / $customerModificationImplementationPriceNoVat_cz

Customer Modification Implementation price without VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$customerModificationImplementationPriceVat / $customerModificationImplementationPriceVat_sk / $customerModificationImplementationPriceVat_cz

Customer Modification Implementation price with VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

Mortgage Information

$mortgageDeadline

Deadline to present the mortgage contract. Type: DateWrapper | UI: "Deadline to present the mortgage contract" (business_case_mortgage_agreement_deadline_label)

$mortgagePresented

Date when the mortgage contract was presented. Type: DateWrapper | UI: "Date of presenting the mortgage contract" (business_case_param_mortgage_agreement_label)

$mortgageAmount / $mortgageAmount_sk / $mortgageAmount_cz

Mortgage amount. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words) | UI: "Mortgage amount" (business_case_mortgage_amount_label)

$mortgageTotal / $mortgageTotal_sk / $mortgageTotal_cz / $isMortgage

Total mortgage amount. Includes Slovak and Czech word variants. Boolean check $isMortgage indicates if mortgage is used. Type: NumberWrapper / String (words) / Boolean

$mortgageBankName

Name of the mortgage bank. Type: String | UI: "Mortgage bank" (business_case_mortgage_bank_label)

$mortgageBankIn

Identification number of the mortgage bank. Type: String

Inspection

$technicalInspectionDate

Date of the Technical Inspection. Type: DateWrapper | UI: "Technical inspection" (business_case_handover_inspection)

Notary and Escrow

$notaryName

Name of the notary. Type: String | UI: "Notary name" (deal_paymentmethod_notaryescrow_name)

$notaryAddress

Address of the notary. Type: String | UI: "Notary address" (deal_paymentmethod_notaryescrow_address)

$notaryAccountNo

Notary escrow account number. Type: String | UI: "Notary escrow account number" (business_case_param_escrow_notary_account_no)

$notaryBankName

Name of the notary's bank. Type: String | UI: "Notary bank" (deal_paymentmethod_notaryescrow_bank)

$bankEscrowTotal / $bankEscrowTotal_sk / $bankEscrowTotal_cz / $isBankEscrow

Total amount in bank escrow account. Includes Slovak and Czech word variants. Boolean check $isBankEscrow indicates if bank escrow is used. Type: NumberWrapper / String (words) / Boolean

$escrowBankName

Name of the escrow bank. Type: String

$escrowBankIn

Identification number of the escrow bank. Type: String

$escrowBankAccountNo

Escrow bank account number. Type: String

$notaryEscrowTotal / $notaryEscrowTotal_sk / $notaryEscrowTotal_cz / $isNotaryEscrow

Total amount in notary escrow account. Includes Slovak and Czech word variants. Boolean check $isNotaryEscrow indicates if notary escrow is used. Type: NumberWrapper / String (words) / Boolean | UI: "Notary escrow" (deal_account_type_escrow_notary)

$isEscrow

Boolean indicating whether any escrow account (bank or notary) is used. Type: Boolean | UI: "Escrow account" (business_case_escrow)

Cadastre Information

$pledgeCadastreSentDate

Date of submitting the pledge contract to the cadastre. Type: DateWrapper | UI: "Date of submitting the pledge contract to the cadastre" (business_case_param_pledgecontract_cadastre_sent_label)

$pledgeCadastreRegNumber

Pledge contract cadastre registration number. Type: String | UI: "Pledge contract cadastre registration number" (business_case_param_pledgecontract_cadastre_regno_label)

$pledgeCadastreEntryDate

Pledge contract cadastre entry date. Type: DateWrapper | UI: "Pledge contract cadastre entry date" (business_case_param_pledgecontract_cadastre_entry_label)

$cadastreSentDate

Date of entering the purchase contract cadastre proposal. Type: DateWrapper | UI: "Date of entering the purchase contract cadastre proposal" (business_case_param_cadastre_sent_label)

$cadastreRegNumber

Purchase contract cadastre registration number. Type: String | UI: "Purchase contract cadastre registration number" (business_case_param_cadastre_regno_label)

$cadastreEntryDeadline

Purchase contract cadastre entry deadline. Type: DateWrapper | UI: "Purchase contract cadastre entry deadline" (business_case_param_cadastre_entry_deadline_label)

$cadastreEntryDate

Purchase contract cadastre entry date. Type: DateWrapper | UI: "Purchase contract cadastre entry date" (business_case_param_cadastre_entry_date_label)

Salesman Information

$salesman

Name of the salesman/sales agent assigned to the Deal. Type: String

$salesmanEmail

Email address of the salesman/sales agent. Type: String

$salesmanPhone

Phone number of the salesman/sales agent. Type: String

Customer Flags

$isAdditionalCustomers

Boolean indicating whether the Deal has additional Customers beyond the primary Customer. Type: Boolean

$isOneCustomerOnly

Boolean indicating whether the Deal has only one Customer (no additional Customers). Type: Boolean

$isTwoOrMoreCustomers

Boolean indicating whether the Deal has two or more Customers. Type: Boolean

$isCustomerSharesUndivided

Boolean indicating whether Customer shares are undivided (when multiple Customers exist). Type: Boolean

Prereservation

$isPrereservation

Boolean indicating whether the Deal has any prereservations. Type: Boolean

Meter Readings

$metersTotalPriceNoVat / $metersTotalPriceNoVat_sk / $metersTotalPriceNoVat_cz

Total price of all meter readings without VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$metersTotalPriceVat / $metersTotalPriceVat_sk / $metersTotalPriceVat_cz

Total price of all meter readings with VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$metersTotalVat / $metersTotalVat_sk / $metersTotalVat_cz

Total VAT amount on all meter readings. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

Images

Project logo image. Type: Image

$projectLogoHeader

Same project logo, provided as a separate placeholder for header positioning. Type: Image

$reclamationTechnicianSignature

Reclamation technician signature image (from the project defect configuration). Type: Image

Aggregated Unit Prices

Dynamic placeholders that sum the discounted prices of all Units of a given type on the Deal. For each UnitType and each of its placeholder aliases, two placeholders are generated:

$aggregated_{placeholder}_novat

Sum of discounted prices (without VAT) for all Units of the given type. Type: NumberWrapper

$aggregated_{placeholder}_vat

Sum of discounted prices (with VAT) for all Units of the given type. Type: NumberWrapper

The {placeholder} part comes from UnitType.getPlaceholders(), which provides multiple naming variants per type. For example, the FLAT unit type generates: $aggregated_FLAT_novat, $aggregated_flat_novat, $aggregated_flats_novat (and corresponding _vat variants). Similarly for PARKING → $aggregated_PARKING_novat, $aggregated_parking_novat, $aggregated_parkings_novat, etc.

Examples:

Unit Type Presence Flags

Dynamic boolean placeholders — one per UnitType enum value — indicating whether at least one Unit of that type is present on the Deal.

$is{UnitType}

Boolean — true if the Deal contains at least one Unit of the given type. Type: Boolean

The placeholder names come from UnitType.getIsPlaceholders(). Representative examples include:

  • $isFlat, $isCondominium, $isFamilyHouse, $isAtelier, $isTownhouse, $isApartment

  • $isAccommodationUnit (plus legacy typo variant $isAccomodationUnit)

  • $isNonResidentialUnit, $isNonResidentialUnitOther, $isCommercialSpace

  • $isCellar, $isParking, $isOutdoorParking, $isGarage

  • $isLand, $isOffice, $isVilla, $isStorage, $isBikeStand

  • $isArtWorkshop, $isMotorbikeParking, $isCreativeWorkshop, $isUtilityRoom

  • $isBerth, $isCommunalArea, $isConstructionRight, $isTechnicalSpace

  • $isMotorbikeParkingOutdoor, $isPropertyManagementUnit, $isAttic, $isBackyard

  • $isTerraceUnit, $isCubicle, $isTenementHouse, $isPavedArea, $isGaragePosition, $isOther

Usage example:

Area Accessory Lists

Repeating lists of individual area accessories across all Units on the Deal. Each list contains one entry per Unit that has a non-zero area of the given type.

$balconies, $terraces, $loggias, $gardens

Repeating lists with one property each:

  • $item.area — Area in m². Type: NumberWrapper

Usage example:

Note: These differ from the scalar $balconyArea / $terraceArea / etc. in the Legacy Unit Placeholders section, which provide only the area of the first Unit. The lists here include areas from all Units on the Deal.

Legacy Unit Placeholders

Deprecated: These flat-level aliases mirror the first Unit of each type at the top level (outside any loop). They exist for backward compatibility with older templates. Prefer iterating $units instead.

Flat (primary unit)

  • $flatId, $flatDisposition, $flatCategory, $flatOrientation, $flatArea, $flatFloorNo, $flatFloorNoAbsolute

  • $flatVAT — VAT rate formatted as a percentage string (e.g., "15%"). Alias of $flatPriceVatRate.

  • $flatPriceVAT / $flatPriceNoVAT / $flatPriceVatRate / $flatPriceVatAmount (with _cz/_sk word variants)

  • $flatFinalPriceNoVat / $flatFinalPriceVat / $flatFinalPriceOnDealNoVat / $flatFinalPriceOnDealVat / $flatFinalSQMPrice / $flatFinalSQMPriceVat (with _cz/_sk word variants)

Other unit types

Same field pattern with unit-type prefix: parking, cellar, garage, garageCellar, roofParking, outdoorParking (e.g. $parkingId, $parkingPriceVAT, $cellarFinalPriceNoVat, …).

Area booleans

  • $isGross / $grossArea

  • $isBalcony / $balconyArea

  • $isTerrace / $terraceArea

  • $isLoggia / $loggiaArea

  • $isGarden / $gardenArea

Plan images

  • $flatPlan, $parkingPlan, $cellarPlan, $garagePlan, $garageCellarPlan, $roofParkingPlan, $outdoorParkingPlan Type: Image — floor plan of the first Unit of each type. Removed from the document if no plan exists.

Other placeholders

  • $buildingName, $projectName, $parcelNumber, $unitsDescription

  • $isPlaceForACar, $isGarageCellar, $isRoofParking


Prereservations (Repeating List)

The $prereservations list contains all prereservations associated with the Deal.

How to Use

To iterate over prereservations in your template:

Available Properties

Each $prereservation item has the following properties:

$prereservation.internalId

Internal ID of the Unit being prereserved. Type: String

$prereservation.expirationDate

Date when the prereservation expires (valid until date). Type: DateWrapper

$prereservation.queuePosition

Position in the prereservation queue. Type: NumberWrapper

  • $isPrereservation - Boolean indicating if any prereservations exist (see Prereservation section)


Units (Repeating List)

The $units list contains all Units associated with the Deal (Flats, Parking spots, Cellars, Garages, etc.).

How to Use

To iterate over Units in your template:

Available Properties

Each $unit item has the following properties:

Basic Information

$unit.type

Type of the Unit (e.g., Flat, Parking, Cellar, Garage). Type: String

$unit.internalId

Unique identifier of the Unit within the Project. Type: String | UI: "Number in project" (flat_param_internalid)

$unit.tags

Tags associated with the Unit, comma-separated. Type: String

$unit.disposition

Room layout/disposition of the Unit (e.g., "2+kk", "3+1"). Type: String | UI: "Rooms" (flat_param_disposition)

$unit.category

Category of the Unit (custom classification). Type: String

$unit.orientation

Orientation of the Unit (e.g., North, South, East, West). Type: String | UI: "Orientation" (flat_param_orientation)

Areas

$unit.area

Net area of the Unit. Type: NumberWrapper | UI: "Area" (flat_param_area)

$unit.areaGross

Gross area of the Unit. Type: NumberWrapper | UI: "Gross area" (flat_param_area_gross)

$unit.areaBalcony

Balcony area. Type: NumberWrapper | UI: "Balcony" (flat_param_area_balcony)

$unit.areaTerrace

Terrace area. Type: NumberWrapper | UI: "Terrace" (flat_param_area_terrace)

$unit.areaLoggia

Loggia area. Type: NumberWrapper | UI: "Loggia" (flat_param_area_loggia)

$unit.areaGarden

Garden area. Type: NumberWrapper | UI: "Garden" (flat_param_area_garden)

$unit.areaEquivalent

Equivalent area (weighted sum of all areas). Type: NumberWrapper | UI: "Equivalent area" (flat_param_area_equivalent)

Location

$unit.floorNo

Floor number (can be negative for basements). Type: String

$unit.floorNoAbsolute

Absolute value of the floor number. Type: String

$unit.building

Name of the Building containing this Unit. Type: String | UI: "Building" (building)

$unit.project

Name of the Project containing this Unit. Type: String | UI: "Project" (project)

Pricelist Prices

$unit.priceNoVAT / $unit.priceNoVAT_sk / $unit.priceNoVAT_cz

Original pricelist price without VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words) | UI: "Price w/o VAT" (flat_param_price)

$unit.priceVAT / $unit.priceVAT_sk / $unit.priceVAT_cz

Original pricelist price with VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words) | UI: "Price w/ VAT" (flat_param_price_vat)

$unit.priceVatRate

VAT rate percentage. Type: String

$unit.priceVatAmount / $unit.priceVatAmount_sk / $unit.priceVatAmount_cz

VAT amount from pricelist price. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

Discounted Prices (After Unit-Level Discounts)

$unit.finalPriceSQM / $unit.finalPriceSQM_sk / $unit.finalPriceSQM_cz

Final price per square meter after Unit-level discounts. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words) | UI: "Price per square meter" (flat_param_price_sqm_novat)

$unit.finalPriceNoVat / $unit.finalPriceNoVat_sk / $unit.finalPriceNoVat_cz

Final price without VAT after Unit-level discounts. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$unit.finalPriceVat / $unit.finalPriceVat_sk / $unit.finalPriceVat_cz

Final price with VAT after Unit-level discounts. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

Deal-Level Prices (After Deal-Level Discounts)

$unit.finalPriceOnDealNoVat / $unit.finalPriceOnDealNoVat_sk / $unit.finalPriceOnDealNoVat_cz

Final price without VAT after all Deal-level discounts. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

$unit.finalPriceOnDealVat / $unit.finalPriceOnDealVat_sk / $unit.finalPriceOnDealVat_cz

Final price with VAT after all Deal-level discounts. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

Availability and Queue

$unit.availability

Current availability status of the Unit (e.g., Available, Reserved, Sold). Type: String | UI: "Availability" (flat_param_availability)

$unit.is_queue

Boolean indicating if the Unit has a prereservation queue. Type: Boolean

$unit.queuePosition

Position in the prereservation queue (if applicable). Type: NumberWrapper

Associated Units and Rooms

$unit.isAssociatedUnit

Boolean indicating if this Unit has associated Units (e.g., parking with a flat). Type: Boolean

$unit.associatedUnits (Nested List)

List of Units associated with this Unit. Each associated Unit has all the same properties as the main Unit.

Example usage:

$unit.rooms (Nested List)

List of Rooms within this Unit. Each room has:

  • $room.typeName - Type/name of the room

  • $room.internalId - Internal identifier

  • $room.area - Room area (NumberWrapper)

  • $room.note - Notes about the room

Example usage:

Images and Plans

$unit.plan

Floor plan image for this Unit. Type: Image

$unit.flr

Floor plans map with custom placeholder keys (building/floor level plans). Type: Map of Images

Unit Type-Specific Lists

In addition to $units, the system provides type-specific lists:

  • $flats - Only Flat-type Units

  • $parkings / $parking / $parkingSpaces - Parking spot Units

  • $cellars / $cellar - Cellar Units

  • $garages / $garage - Garage Units

  • $outdoorParkings / $outdoorParking - Outdoor parking Units

  • $garageCellar - Special garage-cellar combined Units

  • $roofParking - Rooftop parking Units

  • $parkingLikeUnits - All parking-like Units combined

  • $mainUnitRooms - List of rooms in the main Unit (see Meter Readings section)


Customers (Repeating List)

The $customers list contains all Customers associated with the Deal (primary Customer and additional co-owners).

How to Use

To iterate over Customers in your template:

Available Properties

Each $customer item has the following properties:

Customer Type Indicators

$customer.isNatural

Boolean indicating if this is a Natural Person (individual). Type: Boolean

$customer.isLegal

Boolean indicating if this is a Legal Person (company/organization). Type: Boolean

Ownership Information

$customer.share

Customer's ownership share (fraction of the property they own). Type: NumberWrapper

$customer.base

Base value for ownership calculation. Type: NumberWrapper

$customer.fullName

Full name of the Customer (formatted according to person type). Type: String | UI: "Name" (customer_param_full_name)

$customer.tags

Tags associated with the Customer, comma-separated. Type: String

$customer.isSomeoneAfter

Boolean indicating if there are more Customers after this one in the list (useful for comma separators). Type: Boolean

Contact Information

$customer.isAddress / $customer.address

Contact address (formatted). Boolean indicates if address exists. Type: Boolean / String | UI: "Address" (address)

$customer.phone

Phone number. Type: String | UI: "Phone" (contact_param_phone)

$customer.email

Email address. Type: String | UI: "E-mail" (contact_param_email)

Billing Information

$customer.isBankConnection / $customer.bankConnection

Bank connection/name. Boolean indicates if bank connection exists. Type: Boolean / String | UI: "Bank connection" (billing_param_bankconnection)

$customer.accountNumber

Bank account number. Type: String | UI: "Account number" (billing_param_accountno)

$customer.iban

IBAN (International Bank Account Number). Type: String | UI: "IBAN" (billing_param_iban)

Natural Person-Specific Properties

These properties are only populated for Natural Persons. For Legal Persons, they contain placeholder text "[Legal entity]".

$customer.title

Title/honorific (e.g., "Dr.", "Ing."). Type: String | UI: "Title" (person_param_title)

$customer.firstName

First name. Type: String | UI: "Name" (person_param_name)

$customer.surname

Surname/last name. Type: String | UI: "Surname" (person_param_surname)

$customer.maidenName

Maiden name (birth name). Type: String | UI: "Maiden name" (person_param_maidenname)

$customer.birthDate

Date of birth. Type: DateWrapper | UI: "Date of birth" (person_param_birthdate)

$customer.occupation

Occupation/profession. Type: String | UI: "Occupation" (person_param_occupation)

$customer.personalNumber

Personal identification number. Type: String | UI: "Personal number" (person_param_personal_number)

$customer.maritalStatus

Marital status. Type: String | UI: "Marital status" (person_param_maritalstatus)

$customer.nationality

Nationality. Type: String | UI: "Nationality" (person_param_nationality)

Permanent Address (Natural Persons)

$customer.isPermanentAddress / $customer.permanentAddress

Permanent address (formatted). Boolean indicates if address exists. Type: Boolean / String | UI: "Permanent address" (address_permanent)

$customer.isPermanentAddressStreet / $customer.permanentAddressStreet

Street and number. Boolean indicates if street exists. Type: Boolean / String | UI: "Street and No." (address_param_street)

$customer.isPermanentAddressCity / $customer.permanentAddressCity

City/town. Boolean indicates if city exists. Type: Boolean / String | UI: "City/Town" (address_param_city)

$customer.isPermanentAddressZip / $customer.permanentAddressZip

ZIP/postal code. Boolean indicates if ZIP exists. Type: Boolean / String | UI: "ZIP" (address_param_zip)

$customer.isPermanentAddressState / $customer.permanentAddressState

State/country. Boolean indicates if state exists. Type: Boolean / String | UI: "State/Country" (address_param_state)

$customer.isPermanentAddressNote / $customer.permanentAddressNote

Address note. Boolean indicates if note exists. Type: Boolean / String | UI: "Note" (address_param_note)

These properties are only populated for Legal Persons. For Natural Persons, they contain placeholder text "[Person]".

$customer.in

Identification Number (company registration number). Type: String | UI: "IN" (person_param_in)

$customer.tin

Tax Identification Number. Type: String | UI: "VAT ID" (person_param_tin)

$customer.vatid

VAT ID with country prefix (e.g., "SK" + TIN for Slovak companies). Type: String | UI: "VAT ID (SK)" (person_param_vatid)

$customer.executive

Executive/CEO name (with role if specified). Type: String | UI: "Executive" (person_legal_executive)

$customer.executivePersonalNumber

Executive's personal identification number. Type: String | UI: "Personal number" (person_param_personal_number)

$customer.executiveBirthDate

Executive's date of birth. Type: DateWrapper | UI: "Date of birth" (person_param_birthdate)

$customer.deputy

Deputy/Manager name (with role if specified). Type: String | UI: "Deputy" (person_legal_deputy)

$customer.deputyPersonalNumber

Deputy's personal identification number. Type: String | UI: "Personal number" (person_param_personal_number)

$customer.deputyBirthDate

Deputy's date of birth. Type: DateWrapper | UI: "Date of birth" (person_param_birthdate)

  • $isOneCustomerOnly - Boolean indicating only one Customer on the Deal (see Customer Flags section)

  • $isTwoOrMoreCustomers - Boolean indicating multiple Customers on the Deal

  • $isAdditionalCustomers - Boolean indicating additional Customers exist beyond the primary

  • $isCustomerSharesUndivided - Boolean indicating ownership shares are undivided

  • $customer1Name through $customer6Name - Individual Customer names (supports up to 6 Customers)

  • $customer1Share through $customer6Share - Individual Customer ownership shares

  • $customer1Base through $customer6Base - Individual Customer base values


Payments Prescribed (Repeating List)

The $paymentsPrescribed list contains all scheduled/prescribed Payments for the Deal (payment schedule).

How to Use

To iterate over Payments Prescribed in your template:

Available Properties

Each $payment item has the following properties:

Payment Classification

$payment.type

Type of the prescribed Payment (localized text, e.g., "Reservation", "Down Payment", "Final Payment"). Type: String | UI: "Type" (type)

$payment.typeId

Type identifier (enum label, technical name). Type: String

$payment.paymentMethod

Payment method (localized text, e.g., "Bank Transfer", "Cash", "Card"). Type: String | UI: "Account type" (incoming_payment_param_accounttype)

$payment.paymentMethodId

Payment method identifier (enum label, technical name). Type: String

Payment Amounts

$payment.amountVat

Amount including VAT. Type: NumberWrapper | UI: "Amount including VAT" (business_case_payment_amount)

$payment.amountNoVat

Amount excluding VAT. Type: NumberWrapper

$payment.vatAmount

VAT amount. Type: NumberWrapper

$payment.vatRate

VAT rate percentage (formatted with "%" suffix). Type: String

Payment Timing

$payment.deadline

Due date for this Payment (calculated deadline). Type: DateWrapper | UI: "Due date" (business_case_payment_deadline)

$payment.substituteDeadline

Deprecated: Substitute deadline (always empty, not used in CRM anymore but may still exist in old templates). Type: DateWrapper

Payment Status

$payment.isPaid

Boolean indicating if the Payment has been fully paid. Type: Boolean | UI: "Paid?" (business_case_payment_paid)

$payment.paidOn

Date when the Payment was paid (if paid). Type: DateWrapper | UI: "Paid date" (business_case_payment_paiddate)

$payment.paidAmount

Amount already paid (with VAT). Type: NumberWrapper | UI: "Paid w/ VAT" (business_case_payment_paid_amount)

$payment.pendingAmount

Amount still pending/outstanding (with VAT). Type: NumberWrapper | UI: "Pending w/ VAT" (business_case_payment_pending_amount)

Additional Information

$payment.note

Notes or comments about the Payment. Type: String


Payments Incoming (Repeating List)

The $paymentsIncoming list contains all received/incoming Payments for the Deal (actual payments received from Customers).

How to Use

To iterate over Payments Incoming in your template:

Available Properties

Each $payment item has the following properties:

Payment Date and Method

$payment.paidOn

Date when the Payment was received. Type: DateWrapper | UI: "Paid date" (business_case_payment_paiddate)

$payment.paymentMethod

Payment method used (localized text, e.g., "Bank Transfer", "Cash", "Card"). Type: String | UI: "Account type" (incoming_payment_param_accounttype)

$payment.paymentMethodId

Payment method identifier (enum label, technical name). Type: String

Payment Amounts

$payment.amountVat

Amount including VAT. Type: NumberWrapper | UI: "Amount including VAT" (business_case_payment_amount)

$payment.amountNoVat

Amount excluding VAT. Type: NumberWrapper

$payment.vatAmount

VAT amount. Type: NumberWrapper

$payment.vatRate

VAT rate percentage (formatted with "%" suffix). Type: String

Bank Account Information

$payment.isBankAccount

Boolean indicating if a bank account is associated with this Payment. Type: Boolean

$payment.bankAccount (Nested Object)

Bank account details where the Payment was received. Has the following properties:

  • $payment.bankAccount.name - Bank account name (String)

  • $payment.bankAccount.isAllPaymentsCustomChanges - Boolean indicating if all payments to this account are Custom Changes

  • $payment.bankAccount.bankCode - Bank code (String)

  • $payment.bankAccount.accountNumber - Account number (String)

Example usage:

Sender Information

$payment.senderAccountNumber

Sender's bank account number (from which the Payment was sent). Type: String

$payment.senderAccountHolder

Name of the account holder who sent the Payment. Type: String

Prescribed Payment Matching

$payment.isPrescribedPayment

Boolean indicating if this incoming Payment is matched to a prescribed Payment. Type: Boolean

$payment.prescribedPayment (Nested Object)

Details of the matched prescribed Payment (if applicable). Has the following properties:

  • $payment.prescribedPayment.type - Type of the prescribed Payment (String)

  • $payment.prescribedPayment.typeId - Type identifier (String)

  • $payment.prescribedPayment.amountVat - Prescribed amount with VAT (NumberWrapper)

Example usage:

Payment Identification

$payment.externalId

External identifier for the Payment (from external system). Type: String

$payment.variableSymbol

Variable symbol / pairing symbol used to match the Payment. Type: String

Custom Change Classification

$payment.isCustomChangePayment

Boolean indicating if this is a Custom Change payment (payment for Custom Changes/modifications). Type: Boolean

Additional Information

$payment.note

Notes or comments about the Payment. Type: String


Payments (Payment Methods) (Repeating List)

The $payments list contains prescribed payments grouped by payment method with additional bank and escrow details for each payment.

How to Use

To iterate over payments by method in your template:

Available Properties

Each $payment item has the following properties:

Payment Classification

$payment.type

Type of the prescribed payment (localized text, e.g., "Reservation", "Down Payment", "Final Payment"). Type: String

$payment.method

Payment method (localized text, e.g., "Direct Transfer", "Mortgage", "Notary Escrow", "Bank Escrow"). Type: String

Payment Amount

$payment.amount / $payment.amount_sk / $payment.amount_cz

Payment amount with VAT. Includes Slovak and Czech word variants. Type: NumberWrapper / String (words)

Payment Method Flags

$payment.isEscrow

Boolean indicating if this payment uses any escrow method (bank or notary). Type: Boolean

$payment.isBankEscrow

Boolean indicating if this payment uses bank escrow. Type: Boolean

$payment.isNotaryEscrow

Boolean indicating if this payment uses notary escrow. Type: Boolean

$payment.isMortgage

Boolean indicating if this payment is paid via mortgage. Type: Boolean

Notary Information (for Notary Escrow payments)

$payment.notaryName

Name of the notary (empty string if not notary escrow). Type: String

$payment.notaryAddress

Address of the notary (empty string if not notary escrow). Type: String

$payment.notaryAccountNo

Notary escrow account number (empty string if not notary escrow). Type: String

$payment.notaryBankName

Name of the notary's bank (empty string if not notary escrow). Type: String

Bank Escrow Information (for Bank Escrow payments)

$payment.escrowBankName

Name of the escrow bank (empty string if not bank escrow). Type: String

$payment.escrowBankIn

Identification number of the escrow bank (empty string if not bank escrow). Type: String

$payment.escrowBankAccountNo

Escrow bank account number (empty string if not bank escrow). Type: String

Mortgage Information (for Mortgage payments)

$payment.mortgageBankName

Name of the mortgage bank (empty string if not mortgage). Type: String

$payment.mortgageBankIn

Identification number of the mortgage bank (empty string if not mortgage). Type: String


Additional Products (Repeating List)

The $additional_products list contains all Additional Products on the Deal (e.g., parking spots, cellars, electrometers, Custom Changes, stamps, etc.).

How to Use

To iterate over Additional Products in your template:

Available Properties

Each $product item has the following properties:

Product Classification

$product.type

Type of the Additional Product (localized text, e.g., "Electrometer", "Customer modification - implementation", "Stamp"). Type: String | UI: "Type" (type)

$product.known_type

Known product type identifier (enum label, e.g., "ELECTROMETER", "CUSTOMER_MODIFICATION"). Empty for custom "Other" types. Type: String

$product.other_type

Custom type name (only populated when the product type is "Other"). Type: String | UI: "Other type" (bc_document_other_type)

Product Identification

$product.number

Internal identifier/number for this Additional Product. Type: String | UI: "Number" (flats_number)

$product.description

Description of the Additional Product. Type: String | UI: "Description" (poi_param_description)

Cost (Internal Cost)

$product.cost_vat / $product.cost_vat_sk / $product.cost_vat_cz

Cost with VAT (internal cost to the developer). Includes Slovak and Czech word variants. Type: NumberWrapper / String (words) | UI: "Price w/ VAT" (flat_param_price_vat)

$product.cost_no_vat / $product.cost_no_vat_sk / $product.cost_no_vat_cz

Cost without VAT (internal cost to the developer). Includes Slovak and Czech word variants. Type: NumberWrapper / String (words) | UI: "Price w/o VAT" (flat_param_price)

Price (Customer-Facing Price)

$product.price_vat / $product.price_vat_sk / $product.price_vat_cz

Price with VAT charged to the Customer (from linked prescribed Payment). Includes Slovak and Czech word variants. Type: NumberWrapper / String (words) | UI: "Price w/ VAT" (flat_param_price_vat)

$product.price_no_vat / $product.price_no_vat_sk / $product.price_no_vat_cz

Price without VAT charged to the Customer (from linked prescribed Payment). Includes Slovak and Czech word variants. Type: NumberWrapper / String (words) | UI: "Price w/o VAT" (flat_param_price)

Payment and Document Information

$product.deadline

Payment deadline for this Additional Product (from linked prescribed Payment). Type: DateWrapper | UI: "Due date" (business_case_payment_deadline)

$product.signature_date

Signature date of the Additional Product contract (from linked document). Type: DateWrapper | UI: "Signature date" (business_case_document_signeddate)

  • See Additional Products section in Simple Placeholders for aggregate Additional Product information

  • See Payments Prescribed section for payment details that may be linked to Additional Products


Discounts (Repeating List)

The $discounts list contains all Discounts applied to the Deal (Deal-level discounts that reduce the total price).

How to Use

To iterate over Discounts in your template:

Available Properties

Each $discount item has the following properties:

Discount Identification

$discount.ordinal

Discount number/position in the sequence (1, 2, 3, etc.). Type: String

Discount Scope

$discount.isAllUnits

Boolean indicating if this Discount applies to all Units on the Deal. Type: Boolean

Discount Type

$discount.isPercentage

Boolean indicating if this is a percentage-based Discount. Type: Boolean

$discount.isAmount

Boolean indicating if this is a fixed amount Discount. Type: Boolean

Discount Values

$discount.percentage

Percentage value (if this is a percentage-based Discount). Type: NumberWrapper | UI: "Percentage" (percentage)

$discount.amountNoVat

Discount amount without VAT (if this is a fixed amount Discount). Type: NumberWrapper | UI: "Amount" (amount)

$discount.amountVat

Discount amount with VAT (if this is a fixed amount Discount). Type: NumberWrapper | UI: "Amount" (amount)

Deal Price After Discount

$discount.dealPriceNoVat

Deal price without VAT after applying this Discount (cumulative with previous Discounts). Type: NumberWrapper

$discount.dealPriceVat

Deal price with VAT after applying this Discount (cumulative with previous Discounts). Type: NumberWrapper

Discount Note

$discount.isNote

Boolean indicating if a note/reason exists for this Discount. Type: Boolean

$discount.note

Note or reason for applying this Discount. Type: String | UI: "Note" (note)

Affected Units

$discount.units (Nested List)

List of Units this Discount applies to. Each Unit has all the same properties as in the Units section.

Example usage:

  • See Prices and Discounts section in Simple Placeholders for aggregate discount calculations

  • See Units section for details on Unit properties within the discount's units list


Standards (Repeating List)

The $standards list contains all standard choices made for the Deal (used in standard choice documents).

How to Use

To iterate over standard choices in your template:

Available Properties

Each $standard item has the following properties:

$standard.customerName

Name of the customer who made this standard choice. Type: String

$standard.createdOn

Date when this standard choice was created/selected. Type: DateWrapper

$standard.category

Category of the standard (e.g., "Flooring", "Kitchen", "Bathroom"). Type: String

$standard.group

Group within the category (e.g., "Living Room", "Master Bedroom"). Type: String

$standard.choice

The specific choice/selection made (e.g., "Oak Parquet", "White Tiles"). Type: String

$standard.summary

Summary or description of the standard choice. Type: String

$standard.imageUrl

URL to the image of the selected standard (may be empty). Type: String

Example with image:


Meter Readings (Repeating List)

The $meters list contains one row per meter reading recorded on the Deal's handover inspection.

How to Use

Available Properties

Meter Identification

$meter.type

Meter type name (localized). Type: String

$meter.type_with_units

Meter type name including the unit of measurement. Type: String

$meter.unit

Unit of measurement (e.g. "kWh", "m³"). Type: String

Meter Reading Values

$meter.reading / $meter.is_reading

Meter reading value. Boolean check $meter.is_reading indicates if a reading value is present. Type: NumberWrapper / Boolean

$meter.number / $meter.is_number

Meter identifier number. Boolean check $meter.is_number indicates if a number is present. Type: String / Boolean

$meter.eic / $meter.is_eic

EIC code of the meter. Boolean check $meter.is_eic indicates if an EIC code is present. Type: String / Boolean

Pricing

$meter.unitPriceNoVat / $meter.is_unitPriceNoVat

Unit price without VAT. Boolean check $meter.is_unitPriceNoVat indicates if a unit price is present. Type: NumberWrapper / Boolean

$meter.unitPriceVat / $meter.is_unitPriceVat

Unit price with VAT. Boolean check $meter.is_unitPriceVat indicates if a unit price is present. Type: NumberWrapper / Boolean

$meter.vatRate / $meter.is_vatRate

VAT rate (formatted with "%" suffix). Boolean check $meter.is_vatRate indicates if a VAT rate is present. Type: String / Boolean

$meter.totalPriceNoVat / $meter.is_totalPriceNoVat

Total price without VAT (reading × unit price). Boolean check $meter.is_totalPriceNoVat indicates if present. Type: NumberWrapper / Boolean

$meter.totalPriceVat / $meter.is_totalPriceVat

Total price with VAT (reading × unit price). Boolean check $meter.is_totalPriceVat indicates if present. Type: NumberWrapper / Boolean

$meter.vat

VAT amount on the total price. Type: NumberWrapper

$meter.note / $meter.is_note

Additional notes for the meter reading. Boolean check $meter.is_note indicates if a note is present. Type: String / Boolean

Related: The simple placeholders $metersTotalPriceNoVat, $metersTotalPriceVat, and $metersTotalVat (documented in Simple Placeholders → Meter Readings) provide aggregate totals across all meters.


Documents (Type-Specific Placeholders)

The system provides individual placeholders for each Deal Document type (not a repeating list).

How to Use

Access document information by document type:

Available Document Types

For each document type in the system, the following placeholders are available:

$document{TYPE}Type

The localized name of the document type. Type: String

$document{TYPE}Deadline

Signature deadline for this document. Type: DateWrapper | UI: "Deadline" (business_case_document_deadline)

$document{TYPE}SignatureDate

Date when the document was signed (if signed). Type: DateWrapper | UI: "Signature date" (business_case_document_signeddate)

$is_document{TYPE}Signed

Boolean indicating if the document has been signed. Type: Boolean

Common Document Types

Replace {TYPE} with one of these document type identifiers:

  • PURCHASE_CONTRACT - Purchase contract

  • RESERVATION_CONTRACT - Reservation contract

  • FUTURE_PURCHASE_CONTRACT - Future purchase contract

  • INVOICE - Invoice

  • RECLAMATION_RECEIVED_PROTOCOL - Reclamation received protocol

  • RECLAMATION_PROTOCOL_GENERAL_CONTRACTOR - Reclamation protocol for general contractor

  • DEFECT_RECEIVED_CONFIRMATION - Defect received confirmation

  • UNIT_HANDOVER_PROTOCOL - Unit handover protocol

  • And other document types configured in the system. Check with Engineering for their exact names.

Example Usage

  • See Deal Overview section for document-related Deal status information


Inspection and Defects

Inspection and defect information is available through simple placeholders and complex nested objects.

Simple Placeholders

See Inspection section in Simple Placeholders for:

  • $inspectionDate - Date of the handover inspection

  • $technicalInspectionDate - Date of the Technical Inspection

Inspection Objects (Nested Objects)

Both $handover and $tech_inspection are nested objects containing inspection details. They share many common properties but each has some specific fields.

Common Properties (Both Inspections)

The following properties are available on both $handover.* and $tech_inspection.*:

Dates:

  • planned_date / planned_date_time / is_planned_date - Planned inspection date (DateWrapper / Boolean)

  • actual_date / actual_date_time / is_actual_date - Actual inspection date (DateWrapper / Boolean)

People:

  • responsible_person / is_responsible_person - Responsible person name (String / Boolean)

  • name_customer - Customer name (String)

  • name_construction_representative / is_name_construction_representative - Construction representative name (String / Boolean)

  • phone_construction_representative / is_phone_construction_representative - Construction representative phone (String / Boolean)

  • person_present / is_person_present - Person present name (String / Boolean)

Signatures (Images):

  • signature_technician / is_signature_technician - Technician signature (Image / Boolean)

  • signature_customer / is_signature_customer - Customer signature (Image / Boolean)

  • signature_constr_rep / is_signature_construction_representative - Construction representative signature (Image / Boolean)

Defects and Documentation:

  • defects - List of defects found during inspection (nested list)

  • person_present_docs - List of documents for person present (each with name and file image)

  • notes / is_notes - Inspection notes (String / Boolean)

Example usage:

Handover-Specific Properties

The $handover object has additional properties specific to handover inspections:

Access Tokens (Nested List):

  • access_tokens - List of keys, access cards, and other access items, each with:

    • type - Type of access token (String)

    • amount / is_amount - Quantity (NumberWrapper with word variants / Boolean)

    • identifiers / is_identifiers - Identifier codes/numbers (String / Boolean)

    • note / is_note - Notes (String / Boolean)

Resident Information:

  • license_plates - List of vehicle license plate numbers (List of Strings)

  • number_of_people_living / is_number_of_people_living - Number of people living in the unit (NumberWrapper with word variants / Boolean)

  • resident_name / is_resident_name - Resident's name (String / Boolean)

  • resident_email / is_resident_email - Resident's email (String / Boolean)

  • resident_phone / is_resident_phone - Resident's phone (String / Boolean)

  • resident_address / is_resident_address - Resident's address (String / Boolean)

Labeling:

  • name_on_bell / is_name_on_bell - Name to display on doorbell (String / Boolean)

  • name_on_mailbox / is_name_on_mailbox - Name to display on mailbox (String / Boolean)

Acceptance:

  • accepted - Boolean indicating if handover was accepted by customer

Example usage:

Inspection Items (Repeating List)

The $inspection_items (or shorter alias $insp_items) list contains inspection checklist items organized by item type (e.g., Windows, Doors, Flooring).

Each item in the list has:

  • name - Item type name (String)

  • tech_inspection (or tech_insp) - Technical inspection data for this item type (nested object)

  • handover - Handover inspection data for this item type (nested object)

Both tech_inspection and handover nested objects contain:

  • is_fine - Boolean indicating no problems found

  • is_problem - Boolean indicating problems found

  • is_defect - Boolean indicating defects exist for this item

  • defect - First defect for this item (if any)

  • defects - List of all defects for this item

Example usage:

Inspection Rooms (Repeating List)

The $inspection_rooms (or shorter alias $insp_rooms) list contains inspection data organized by room/location.

Each room in the list has:

  • name - Room name/location (String)

  • tech_inspection (or tech_insp) - Technical inspection data for this room (nested object)

  • handover - Handover inspection data for this room (nested object)

Both tech_inspection and handover nested objects contain:

  • is_fine - Boolean indicating no defects in this room

  • is_problem - Boolean indicating defects exist in this room

  • is_prevents_flat_usage - Boolean indicating critical defects that prevent flat usage

  • defects - List of defects found in this room

Example usage:

Meter Readings

See Meter Readings section in Simple Placeholders for meter-related placeholders.


Custom Attributes

Custom attributes can be defined for various entities (Customers, Units, Buildings, Projects, Deals) in the system. These attributes are accessible via their attribute keys and appear as additional placeholders in templates.

The availability and names of custom attribute placeholders depend on your system configuration.

How Custom Attributes Work

When a custom attribute is defined in your system, it becomes available as a placeholder using its attribute key. Each custom attribute also gets a boolean check placeholder with the is_ prefix to test if the attribute has a value.

Attribute Scope

Custom attributes appear in different parts of templates depending on their scope:

  • Deal attributes - Available as simple placeholders at the document level (e.g., $attribute_key)

  • Project attributes - Available as simple placeholders at the document level (e.g., $attribute_key)

  • Unit attributes - Available within the #foreach($unit in $units) loop (e.g., $attribute_key inside the loop)

  • Customer attributes - Available within the #foreach($customer in $customers) loop (e.g., $attribute_key inside the loop)

Example: Deal/Project Custom Attributes

Deal and Project attributes are available directly as simple placeholders throughout the template:

Example: Unit Custom Attributes

If you have a custom attribute with key flat_advert_description defined for Units:

Available placeholders:

  • $flat_advert_description - The attribute value (String)

  • $is_flat_advert_description - Boolean indicating if the attribute has a value

Example: Customer Custom Attributes

If you have a custom attribute with key customer_name_paternal defined for Customers:

Available placeholders:

  • $customer_name_paternal - The attribute value (String)

  • $is_customer_name_paternal - Boolean indicating if the attribute has a value

Attribute Types

Custom attributes support different data types. All use the placeholder $attribute_key (where attribute_key is the attribute's key). The value returned depends on the attribute type:

  • String: The text value

  • Integer/Numeric: The numeric value (also available as word variants: $attribute_key_sk, $attribute_key_cz)

  • Boolean: true or false

  • Date: Date value (formatted according to user preferences)

  • Enum (single-select): The localized name of the selected option

  • Option (multi-select): Comma-separated localized names of all selected options

All attribute types also support $is_attribute_key to check if a value is set.

Last updated