Conditional Terms
Conditional Terms enable you to automatically apply pre-written terms and conditions based on rules. This ensures that legal terms are always correctly and accurately applied.
Common use cases include:
- Standard company terms shown on all Quotes
- Product-specific terms shown on Quotes only when that product or product family is present on the Quote
- Opt-in terms shown on Quotes only when a checkbox is selected (see Custom Fields for more information)
Individual conditional terms can be set as editable or non-editable by the Sales Rep at Quoting time. If edit-ability is On, it is recommended to add a Quote Approval Rule to ensure approval of any changes made by Sales Reps to pre-written conditional terms.
Using variables in your content
Conditional terms and Terms and Conditions allow you to specify variables within your content that get replaced at run-time when the content is generated into the Quote Document.
Basic Syntax
The template syntax uses double-curly braces:
{{variable}}
All data from a quote starts with the quote namespace. For example:
{{quote.amount}}
This variable references the amount field in the quote object within your data.
Formatting Options
You can apply formatting to numeric or date/time fields by appending:
@currency
@date
@dateTime
For Example:
{{quote.amount @currency}}
// $100.55 or SEK 100.45 - based on the parent records currency
{{quote.contractStartDate @date}}
// Feb 1, 2024
{{quote.modifyDate @dateTime}}
// Jan 13, 2025, 8:49 AM
Nested Fields & Array Access
To access line-level fields, you can use square brackets [ ]
for array filtering. In the following example, we filter a quoteOffering
array by it's offeringId
and then filter the nested Quote Items by the productId
{{quote.quoteOfferings[offeringId="offr_1234"].items[productId="prod_1234"].amount}}
You may specify multiple filters, separated by commas:
[offeringId="offr_1234", rateId="rate_1234"]
This lets you target specific line items based on multiple criteria.
Operators
When matching numeric values, omit the quotes. Also, Whitespace is ignored inside bracket expressions.
Operator | Meaning | Example |
---|---|---|
= | Equal | [amount=100] |
!= | Not equal | [amount!=100] |
> | Greater than | [amount>100] |
> = | Greater than or equal | [amount>=100] |
< | Less than | [amount<100] |
<= | Less than or equal | [amount<=100] |
Choosing Array Items
By default, if a filter matches multiple records, the first match is returned. You can specify other options:
@first
→ Return the first matching record (default if there are filters applied).@last
→ Return the last matching record.@all
→ Return all records. Use this when you want to match on a nested array (e.g Quote Item) and don't care which parent it belongs to. (default if there are no filters applied)- Example If you want to find the support Quote Item, but don't know or care which Quote Offering bundle it is included in
{{quote.quoteOfferings[offeringId="offr_1234" @first]}}
{{quote.quoteOfferings[offeringId="offr_1234"]}}
// @first will be the default in this case
{{quote.quoteOfferings[offeringId="offr_1234" @last]}}
{{quote.quoteOfferings[offeringId="offr_1234" @all]}}
{{quote.quoteOfferings[].items[productId="prod_1234"]}}
// @all will be the default for the quoteOfferings and match against every Quote Item
Combining Multiple Conditions
By default, if there are multiple conditions they all must match. You can specify other options:
• @and
→ Match all filter values (default).
• @or
→ Match any filter value
{{quote.quoteOfferings[offeringId="offr_1234", offeringId="offr_2345" @or @last]}}
Additional examples
{{quote.contractStartDate @date}}
{{quote.quote_offering[offeringId="offr_1234", rateId="rate_1234" @and @last].items[productId="prod_1234"].amount @currency}}
{{quote.quote_offering[offeringId="offr_1234", rateId="rate_1234" @and @last].items[productId="prod_1234"].productName}}
{{quote.quote_offering[offeringId="offr_1234", rateId="rate_1234" @and @last].modifyDate @dateTime}}
Other useful information
- Field names are case-sensitive
- Whitespace is ignored, so feel free to add spaces as needed
- New lines cannot be used within an expression, so make sure everything is on one line
- If there is an error applying the specified formatting, the raw value will be displayed
- If there is a parsing error or the field path is invalid, the tag will not be rendered on the output document
As always, you can work with your MonetizeNow implementation team if you need technical assistance
Updated 8 days ago