Skip to main content

Variables

What is a variable?

A variable is a special string starting with {{ and ending with }}.

An example to get the annualPrice in markdown:Example on a proposal
The total annual mid-market package is {{deal.skus.midMarket.annualPrice}}The total annual mid-market package is $30,000

How to call the variables and where to use them

Variables can be accessed in Markdown-powered textareas, such as SKUs and Terms fields in the Deal Editor and the line item description textarea on the SKUs Settings Page. Property names will start with a “{{deal...” or “{{current...” to see a list of available variables. Type with only one bracket and add “deal” or “current” to trigger the autocomplete list of variables that are available to you.

deal

deal is where the variables of the entire deal sit. deal holds the deal value, customer name, etc.

Property NameTypeDescriptionExample(s)
templateNamestringName of the template that the deal was created from{{deal.templateName}}

This table only lists top level deal attributes. Additional properties are noted below.

current

current is a convenient short-hand to access the current context of a term or sku. Use current on LineItemDescription and TermDescription fields.

Top-level Variable namespaces

There are two specific variable namespaces that allow operators and end-users to include dynamic fields in their Proposals and other RevOps documents.

Namespacedescription
{{deal.<property>}}Context of the deal in scope. A tree containing skus, terms, contract, billingContact, and leadContact properties addressable in dot-notation. Example {{deal.skus.mySku.netPrice}}
{{current.<property>}}Context of the current object in scope. Object is addressed by supplying the specific object name. The following properties are addressable in dot-notation: sku or term. Example {{current.sku.properties.maxUsers.value}}

Customer (Business Entity) Variables

{{deal.customer}}

Customer object is addressable in the following ways:

  • deal.customer
Property NameTypeDescriptionExample(s)
legalNamestringLegal name of the business entity.{{deal.customer.legalName}}
domainstringDomain name of the business entity.{{deal.customer.domain}}
opportunityNamestringOpportunity name.{{deal.customer.opportunityName}}
shippingStreetstringStreet of shipping address{{deal.customer.shippingStreet}}
shippingCitystringCity of shipping address.{{deal.customer.shippingCity}}
shippingStatestringState of shipping address.{{deal.customer.shippingState}}
shippingStateCodestringState code of shipping address.{{deal.customer.shippingStateCode}}
shippingCountrystringCountry of shipping address.{{deal.customer.shippingCountry}}
shippingCountryCodestringCountry code of shipping address.{{deal.customer.shippingCountryCode}}
shippingPostalCodestringPostal code of shipping address.{{deal.customer.shippingPostalCode}}
billingStreetstringStreet of billing address.{{deal.customer.billingStreet}}
billingCitystringCity of billing address.{{deal.customer.billingCity}}
billingStatestringState of billing address.{{deal.customer.billingState}}
billingStateCodestringState code of billing address.{{deal.customer.billingStateCode}}
billingCountrystringCountry of billing address.{{deal.customer.billingCountry}}
billingCountryCodestringCountry code of billing address.{{deal.customer.billingCountryCode}}
billingPostalCodestringPostal code of billing address.{{deal.customer.billingPostalCode}}

Billing Contact Variables

{{deal.billingContact}}

Billing Contact object is addressable in the following ways:

  • deal.billingContact
Property NameTypeDescriptionExample(s)
namestringFormatted name of the Billing Contact.{{deal.billingContact.name}}
emailstringEmail of the Billing Contact.{{deal.billingContact.email}}
titlestringTitle of the Billing Contact.{{deal.billingContact.title}}
phonestringPhone number of the Billing Contact.{{deal.billingContact.phone}}

Contract Variables

{{deal.contract}}

A Contract instance object is addressable in the following ways:

  • deal.contract
Property NameTypeDescriptionExample(s)
formTypestringAgreement type of the deal. Possible values include new-order, renewal, expansion, non-disclosure-agreement.{{deal.contract.formType}}
lengthfloatLength of the contract in months.{{deal.contract.length}}
subtotalstringThe subtotal describes a currency-formatted total of the total contract value with all user-defined deviations.{{deal.contract.subtotal}}
orderIdstringThe orderId of the contract, a monotonically increasing number.{{deal.contract.orderId}}

Properties Variable

A properties variable is addressable in the following ways:

  • current.sku.properties.<propertyName> - Available in LineItemDescription
  • deal.skus.<skuName>.properties.<propertyName> - Available from any Markdown-enabled field
Property NameTypeDescriptionExample(s)
friendlyNamestringFriendly name of property.{{current.sku.properties.myFeature.friendlyName}}
typestring (ENUM)The type of property. Possible values are: number, string, option, gate, limit.{{current.sku.properties.myFeature.type}}
checkedbooleanIndicates if the property is enabled for the current sku. If this value appears in an unordered list and is not checked, it will remove the surrounding content. Only available when the property type is gate or limit{{current.sku.properties.myFeature.checked}}
statusstringIndicates the status of the property. Possible values are: active, disabled. Only available when the property type is gate or limit.{{current.sku.properties.myFeature.status}}
valueintegerValue of the property.{{current.sku.properties.myFeature.value}}
selectedobjectAn object containing the friendlyName and value of selected of the selected option. This property only appears when the property type is an Option.{{current.sku.properties.myFeature.selected.value}}

Lead Contact Variables

{{deal.leadContact}}

Lead Contact object is addressable in the following ways:

  • deal.leadContact
Property NameTypeDescriptionExample(s)
namestringFormatted name of the Lead Contact.{{deal.leadContact.name}}
emailstringEmail of the Lead Contact.{{deal.leadContact.email}}

SKU Variables

{{deal.skus.<skuName>}}

A SKU instance object is addressable in the following ways:

  • current.sku - Available in LineItemDescription
  • deal.skus.<skuName> - Available from any Markdown-enabled field
Property NameTypeDescriptionExample(s)
friendlyNamestringFriendly name of sku.{{current.sku.friendlyName}}
quantityintAn integer value representing the total quantity of the SKU{{current.sku.quantity}}
netPricestringThe netPrice describes a currency-formatted total of the final sku amount with all user-defined deviations.{{current.sku.netPrice}}
monthlyPricestringThe monthlyPrice describes a currency-formatted total of the monthly sku amount with all user-defined deviations.{{current.sku.monthlyPrice}}
annualPricestringThe annualPrice describes a currency-formatted total of the annual sku amount with all user-defined deviations.{{current.sku.annualPrice}}
unitMonthlyPricestringThe unitMonthlyPrice describes a currency-formatted unit price of the monthly sku amount with all user-defined deviations.{{current.sku.unitMonthlyPrice}}
unitAnnualPricestringThe unitAnnualPrice describes a currency-formatted unit price of the annual sku amount with all user-defined deviations.{{current.sku.unitAnnualPrice}}
propertiesobjectAn object containing custom SKU properties defined in the format as a <skuName>.properties variable.current.sku.properties.<propertyName>.value

Term Variables

{{deal.terms.<termName>}}

A Term instance object is addressable in the following ways:

  • current.term - Available in LineItemDescription
  • deal.terms.<termName> - Available from any Markdown-enabled field
Property NameTypeDescriptionExample(s)
friendlyNamestringFriendly name of term.{{current.term.friendlyName}}
labelstring (ENUM)The term's label describing the prefix or trailing label of value. Example {{current.term.value}} {{current.term.label}} can render 30 years when value = '30', and label = 'years' in the term configuration.{{current.term.label}}
valuestringThe user-defined value of the Term.{{current.term.value}}
propertiesobjectAn object containing custom terms defined in the same format as a term.{{current.term.properties.<propertyName>.friendlyName}}