Every template in Sharper — invoices, statements, payment receipts, contracts, marketing emails — uses merge variables to pull in real data when the document is generated. A merge variable is a placeholder written in double curly braces, like {{customer_first_name}}, that Sharper replaces with the actual value from the record at the time the document is created or sent. This article lists every merge variable available across Sharper's template types, what real-world field each one shows, and — where a value can be changed — exactly where in Sharper to go change it.
Templates are found at System Settings → Templates. For how the Content Editor and Raw Editor work, see System Settings - Templates - HTML Authoring Guide. For what each template Type is used for, see System Settings - Template Types and Hierarchy Reference.
The variables offered in a template's Variables toolbar button change based on the template's Type. A template built for Invoices only offers invoice and customer variables; a Reservation Email only offers reservation and customer variables. Always insert variables using the toolbar rather than typing them manually — this guarantees the name is spelled exactly right for that Type.
Two Kinds of Variables
Every variable below falls into one of two categories:
Editable — pulled from a field you can open and change. The table for each variable says exactly where.
Computed — calculated automatically from other data (a total, a tax amount, a balance, a system-generated ID or link). These cannot be edited directly; to change what they show, change one of the underlying fields that feeds the calculation (price, quantity, tax rate, discount, and so on).
Customer Variables
Available on nearly every customer-facing template: invoices, payments, refunds, credit memos, statements, reservation emails, marketing emails, ACH forms, and more. Edit these at CRM → Customers, open the customer, and use the fields below.
Variable | Shows | Field to Edit |
{{customer_id}} | The customer's ID number | "Customer ID" (rarely changed after setup) |
{{customer_display_name}} | The name shown throughout Sharper for this customer | "Display Name" |
{{customer_first_name}} / {{customer_last_name}} | First and last name | "First Name" / "Last Name" |
{{customer_email}} | Email address on file | "Email" |
{{customer_phone}} | Phone number on file | "Phone" |
{{customer_address_1}} / {{customer_address_2}} | Mailing address lines | "Address 1" / "Address 2" |
{{customer_city}} / {{customer_state}} / {{customer_zip}} / {{customer_country}} | City, state, zip, country | Same address block |
Note: {{customer_state}} and {{customer_country}} show the short code (e.g. "NC", "US"). The equivalent outlet variables below show the full name instead (e.g. "North Carolina") — worth knowing if the two appear side by side in the same template.
Booking Customer Variables
On group or organization reservations, one person can hold the account while a different person occupies a specific slip or site — that second person is the "Booking Customer." These variables ({{booking_customer_id}}, {{booking_customer_display_name}}, {{booking_customer_first_name}}, and so on — same field set as above) show that person's information instead of the main account holder's. They're available on Reservation Item Block, Deposit Pay, and Contract/E-sign templates. Set who the booking customer is on Bookings → [Reservation] → [Reservation Item] → Booking Customer; the fields themselves are edited on that person's own CRM → Customers record, same as above.
Outlet Variables
Your marina or campground's own information. Available on virtually every template type. Edit these at Company Settings → Locations, open your location, and use the fields below.
Variable | Shows | Field to Edit |
{{outlet_name}} | Your location's name | "Name" |
{{outlet_address_1}} / {{outlet_address_2}} / {{outlet_city}} / {{outlet_state}} / {{outlet_zip}} / {{outlet_country}} | Your mailing address | Address fields |
{{outlet_email}} | Your public contact email | "Contact Email" |
{{outlet_phone}} | Your public contact phone number | "Contact Phone" |
{{outlet_website}} | Your website address | "Website" |
{{outlet_logo}} | Your logo image | "Logo" upload |
{{outlet_portal_site_url}} | Your Customer Portal login page link | "Portal Site URL" |
{{outlet_instagram}} / {{outlet_facebook}} / {{outlet_youtube}} | Your social media page links | "Instagram URL" / "Facebook URL" / "YouTube URL" |
{{email_signature}} | A reusable email sign-off block | Indirect — set which signature is active at Company Settings → Template Settings → Signature, then edit its actual text on that Email Signature-type template under System Settings → Templates. |
Vessel Variables
Available on Marina reservation, contract, and description templates whenever the reservation is for a vessel. Edit all of these at Marina → Vessels, open the vessel, and use the matching field.
Section | Variables |
Identity | {{vessel_name}}, {{vessel_current_space}} (read-only — set by slip assignment, not this form) |
Dimensions | {{vessel_loa}}, {{vessel_beam}}, {{vessel_draft}}, {{vessel_height}}, {{vessel_weight}} |
Details | {{vessel_boat_type}}, {{vessel_make}}, {{vessel_model}}, {{vessel_year}}, {{vessel_hull_color}}, {{vessel_fuel_type}} |
Registration | {{vessel_registration_number}}, {{vessel_serial_number}}, {{vessel_trailer_description}}, {{vessel_trailer_tag_number}} |
Insurance | {{vessel_insurance_company}}, {{vessel_insurance_policy_number}}, {{vessel_insurance_expiration_date}}, {{vessel_insurance_agent_name}}, {{vessel_insurance_agent_phone}}, {{vessel_insurance_agent_email}}, {{vessel_coi_received}}, {{vessel_additional_insured}} |
Importation | {{vessel_fully_imported}}, {{vessel_temp_import_expiration}} |
Vehicle Variables
Available on Campground reservation, contract, and description templates whenever the reservation is for an RV or vehicle. Edit all of these at Campground → Vehicles, open the vehicle, and use the matching field.
Section | Variables |
Identity | {{vehicle_name}}, {{vehicle_current_space}} (read-only — set by site assignment, not this form) |
Dimensions | {{vehicle_loa}}, {{vehicle_beam}}, {{vehicle_height}} |
Details | {{vehicle_rv_type}}, {{vehicle_make}}, {{vehicle_model}}, {{vehicle_year}}, {{vehicle_color}}, {{vehicle_motorized}} |
Registration | {{vehicle_license_plate_number}}, {{vehicle_serial_number}} |
Insurance | {{vehicle_insurance_company}}, {{vehicle_insurance_policy_number}}, {{vehicle_insurance_expiration_date}}, {{vehicle_insurance_agent_name}}, {{vehicle_insurance_agent_phone}}, {{vehicle_insurance_agent_email}}, {{vehicle_coi_received}}, {{vehicle_additional_insured}} |
Reservation Item Variables
The base set of variables describing a single reservation line — one slip stay, one campsite stay, one booking. Used on Reservation Item Block, Deposit Pay Item Block, and Status Update Email Item Block templates (the templates that render once per line item inside a larger email).
Variable | Shows | Field to Edit |
{{reservation_item_id}} | The line item's ID | Not editable — system-assigned |
{{product_name}} | The name of the product/rate booked | On the Product itself, in the relevant module's Products settings (Marina, Campground, or Bookings) |
{{unit_name}} | The slip, site, or unit assigned | Not editable here — set by assigning a different unit to the reservation item; the unit's own name is edited under the module's Units/Spaces settings |
{{from_date}} / {{from_time}} / {{from_datetime}} | Check-in / start date | The reservation item's start date field, set when booking |
{{to_date}} / {{to_time}} / {{to_datetime}} | Check-out / end date | The reservation item's end date field, set when booking |
{{adults}} / {{children}} | Occupancy counts | Set when booking, on products where occupancy applies |
{{booking_type_name}} | The Booking Type assigned to the product | On the product's Booking Type setting, in the module's Booking Types settings |
{{subtotal}} / {{tax}} / {{total}} / {{deposit}} / {{deposit_paid}} / {{deposit_paid_service_fee}} / {{deposit_paid_with_service_fee}} | Pricing for this line item | Computed — driven by the product's price, applied discounts/extra charges, and deposit settings |
Invoice Variables
Available on the Invoice template. Also includes the shared Customer and Outlet variables above.
Variable | Shows | Field to Edit |
{{invoice_id}} | The invoice number | CRM → Customers → Invoices → open the invoice → "Invoice ID" (leave blank to auto-generate; editing requires the "edit invoice IDs" permission) |
{{invoice_date}} | The date the invoice was issued | Invoice → "Invoice Date" |
{{invoice_due_date}} | The date payment is due | Invoice → "Due Date" |
{{auto_pay}} | Whether AutoPay is on for this invoice ("Yes"/"No") | Invoice → "Auto Pay" toggle |
{{payment_term_name}} | The invoice's assigned payment term | Invoice → "Payment Term" dropdown; term names themselves are managed at Accounting → Settings → Payment Terms |
{{tax_rate_name}} | The tax rate applied | Invoice item → "Tax Rate"; rate names are managed at Accounting → Settings → Tax Rate |
{{note}} / {{external_note}} | Internal note / customer-visible note | Invoice → "Note" / "External Note" |
{{tip}} | Tip amount, if one was added | Entered at the time of payment in the payment window, not on the invoice itself |
{{subtotal}} / {{tax_total}} / {{total}} / {{balance}} / {{amount_paid}} / {{discount_total}} | Invoice totals | Computed — driven by the invoice's line items, discounts, and recorded payments |
{{pay_link}} | The one-click link that takes a customer to pay this invoice online | Not editable — generated automatically per invoice |
Invoice Item Block Variables
Renders once per line item inside an invoice or statement.
Variable | Shows | Field to Edit |
{{detail_name}} | The line item's name | Set automatically from the Product chosen on that invoice row |
{{detail_description}} | The line item's description | Invoice row → "Description" field |
{{detail_price}} | Price per unit | Invoice row → "Price" field |
{{detail_subtotal}} / {{detail_amount}} | Line item subtotal, and subtotal after any discount | Computed from Price × Quantity and the row's Discount setting |
Payment Variables
Available on Payment Email, Payment Email Attachment, and Payment Print templates. Also includes Customer and Outlet variables.
Variable | Shows | Field to Edit |
{{remittance_id}} | The payment's reference number | Not editable — assigned automatically |
{{total}} | The payment amount | CRM → Payments → "Amount" (editable only on a new, unsaved payment, or with the "edit payment amounts" permission) |
{{date}} | The payment date | Payment → "Payment Date" (locked once the payment is settled) |
{{payment_method}} | How the customer paid (card, ACH, cash, etc.) | Payment → "Payment Type"; the method's display name is managed at System Settings → Payment Methods |
{{reference}} | Reference note on the payment | Payment → "Reference" field |
{{account_last_4}} | Last 4 digits of the card or bank account used | Not editable after the fact — captured when the card/bank account was entered |
{{service_fee}} / {{subtotal}} | Any processing fee, and the amount before that fee | Payment → "Service Fee" (editable on new payments; usually auto-calculated) |
{{authorization}} | The approval status shown on the receipt | Not editable — set by the payment method type |
Refund Variables
Available on Refund Email, Refund Email Attachment, and Refund Print templates. Also includes Customer and Outlet variables.
Variable | Shows | Field to Edit |
{{refund_id}} | The refund's reference number | Not editable — assigned automatically |
{{total}} | The refund amount | CRM → Refunds → "Amount" (editable only while creating the refund) |
{{date}} | The refund date | Refund → "Refund Date" (editable only while creating the refund) |
{{payment_method}} | How the refund was issued | Refund → "Payment Type"; method names managed at System Settings → Payment Methods |
{{reference}} | Reference note on the refund | Refund → "Reference" field (editable only while creating the refund) |
{{note}} | Internal note on the refund | Not directly editable from the Refund screen — set by the process that created the refund |
{{type}} / {{status}} | What kind of refund it is, and its current state | Not editable — set automatically by the refund process and its settlement status |
Credit Memo Variables
Available on Credit Memo Email, Credit Memo Email Attachment, and Credit Memo Print templates. Also includes Customer and Outlet variables.
Variable | Shows | Field to Edit |
{{remittance_id}} | The credit memo's reference number | Not editable — assigned automatically |
{{total}} | The credit memo amount | Computed from the credit memo's line items |
{{remaining_credit}} | How much of the credit is still unapplied | Computed — reduces automatically as the credit is applied to invoices |
{{date}} | The credit memo date | Credit Memo → "Date" (editable only while the credit memo is new and open) |
{{reference}} | Reference note | Credit Memo → "Reference" field |
{{items}} | The credit memo's line items | See Credit Memo Item Block below |
Credit Memo Item Block Variables
Variable | Shows | Field to Edit |
{{name}} / {{description}} | Line item name and description | Set from the chosen Product, plus an editable "Description" field on the row |
{{tax_rate_name}} / {{tax_rate}} | The tax code applied and its rate | Row → "Tax Code" select; code names managed at Accounting → Tax Codes |
{{price}} / {{quantity}} | Unit price and quantity | Row → "Price" / "Qty" fields |
{{discount_total}} / {{subtotal}} / {{subtotal_w_discount}} | Line totals before and after discount | Computed from Price, Quantity, and the row's "Discount" setting |
Statement Variables
Available on Statement and Detailed Statement templates. Also includes Customer and Outlet variables.
Variable | Shows | Field to Edit |
{{statement_date}} | The date the statement was generated | Not editable — always today's date when the statement runs |
{{due_total}} | Total balance due | Computed from open invoices, statement charges, and payments |
{{due_current}} / {{due_30}} / {{due_60}} / {{due_90}} / {{due_over_90}} | Balance broken out by how overdue it is | Computed aging buckets based on each transaction's due date |
{{statement_transactions}} | The list of transactions on the statement | See Statement Transaction Block below |
Note: A Journal Entry transaction can be excluded from customer statements entirely with the "Ignore On Customer Statement?" toggle on that journal entry, at Accounting → Journal Entries.
Statement Transaction Block Variables
Renders once per transaction (invoice, statement charge, payment, credit memo, refund, or journal entry) on the statement.
Variable | Shows | Field to Edit |
{{tran_date}} / {{tran_type}} / {{tran_description}} | Transaction date, type, and description | Varies by transaction type — the invoice date, statement charge date, refund date, or journal reference, edited on that record itself |
{{tran_subtotal}} / {{tran_tax_total}} / {{tran_total}} / {{tran_amount}} / {{tran_paid}} / {{tran_balance}} | Amounts for this transaction | Computed from the underlying invoice, statement charge, payment, credit, or refund amount |
{{stmt_balance}} | Running balance total through this point on the statement | Computed — not tied to any single field |
{{auto_pay}} | Whether this invoice has AutoPay on | Invoice → "Auto Pay" toggle |
{{statement_transaction_details}} | Line-item detail (invoices only) | See Statement Transaction Detail Block below |
Statement Transaction Detail Block Variables
Renders once per invoice line item within a transaction, on a Detailed Statement.
Variable | Shows | Field to Edit |
{{detail_name}} / {{detail_description}} | Line item name and description | Set from the invoice row's Product and "Description" field |
{{detail_price}} | Price per unit | Invoice row → "Price" |
{{detail_subtotal}} / {{detail_amount}} | Line subtotal, and subtotal after discount | Computed from Price, Quantity, and the row's Discount |
Reservation Email & Status Update Email Variables
Available on the Reservation Email and Status Update Email templates (Status Update Email uses the identical variable set). Also includes Customer and Outlet variables.
Variable | Shows | Field to Edit |
{{reservation_id}} | The reservation's ID | Not editable — assigned when the reservation is created |
{{reservation_items}} | The list of items/units on the reservation | Rendered from the Reservation Item Block variables above, for each active line |
{{subtotal}} / {{tax}} / {{price_adjustment}} / {{total}} / {{deposit}} / {{deposit_paid}} / {{deposit_paid_service_fee}} / {{deposit_paid_with_service_fee}} | Reservation-wide totals | Computed from all active line items and any extra charges |
{{online_site_url}} | Your online booking site link | Company Settings → Reservation Settings → "Online Site Url" |
Reservation Item Description Variables
Used on Transient Reservation Item Description and Non-Transient Reservation Item Description templates — the description blocks that format a reservation line on printed documents. Includes the base Reservation Item variables above, plus Vessel or Vehicle variables when applicable.
Variable | Shows | Field to Edit |
{{renewal_start}} / {{renewal_end}} | The date range for a long-term renewal invoice | Usually set automatically by billing; can be adjusted on a specific invoice via the "Deferred Schedule" option (requires the "maintain deferred schedule" permission) |
Reservation Item Extra Charge Description Variables
Used to format an individual extra charge line on a reservation document. Includes Vessel or Vehicle variables when applicable.
Variable | Shows | Field to Edit |
{{product_name}} / {{product_description}} / {{description}} | The extra charge's name and description | On the extra charge's own Product setup |
{{unit_name}} | The slip, site, or unit it's tied to | Set via the reservation item's space assignment |
{{subtotal}} / {{tax}} / {{total}} | Pricing for the extra charge | Computed from the extra charge's price |
Transient Folio Variables
Available on the Transient Folio template — the check-out summary for short-stay marina or campground guests. Also includes Customer and Outlet variables.
Variable | Shows | Field to Edit |
{{reservation_id}} | The reservation's ID | Not editable |
{{lines}} | Every charge and payment during the stay | See Transient Folio Item Block below |
{{subtotal}} / {{tax}} / {{total}} / {{credit}} / {{balance}} | Stay totals | Computed from all charges and payments during the stay |
{{reservation_date}} | When the reservation was created | Not editable — system timestamp |
{{reservation_status}} | The reservation's current status | Changed through check-in/check-out/cancel actions on the reservation, not typed directly |
{{reservation_check_in_date}} / {{reservation_check_out_date}} | Actual check-in and check-out timestamps | Set by the Check-In / Check-Out actions on the reservation |
Transient Folio Item Block Variables
Renders once per charge or payment line on the folio.
Variable | Shows | Field to Edit |
{{date}} / {{datetime}} | When the charge or payment happened | Not editable — taken from the invoice or payment timestamp |
{{unit}} | The slip or site the charge applies to | Set via space assignment |
{{description}} / {{quantity}} / {{price}} / {{subtotal}} / {{tax_code}} / {{tax_rate}} / {{tax}} / {{total}} | Charge line detail | Comes from the underlying invoice line item |
{{credit}} | Payment amount, on a payment line | Computed from the recorded payment |
Deposit Pay Variables
Available on Deposit Pay Email and Deposit Pay Email Attachment templates — sent when a reservation deposit is due. Also includes Customer and Outlet variables.
Variable | Shows | Field to Edit |
{{deposit_amount}} | The deposit amount being requested | Not editable here — set by the reservation's deposit terms |
{{deposit_pay_url}} | The link the customer clicks to pay the deposit | Base link editable at Company Settings → Template Settings → "Deposit Pay Url"; the final link is generated per customer |
{{reservation_id}} | The reservation's ID | Not editable |
{{reservation_items}} | The reservation's line items | Rendered from Deposit Pay Item Block (same fields as Reservation Item variables above) |
{{reservation_subtotal}} / {{reservation_tax}} / {{reservation_price_adjustment}} / {{reservation_total}} | Reservation totals | Computed |
{{online_site_url}} | Your online booking site link | Company Settings → Reservation Settings → "Online Site Url" |
Product Contract & E-sign Variables
Available on Product Contract, Product Contract Email, E-sign, and E-sign Email templates. Also includes Customer, Outlet, Vessel/Vehicle, and Booking Customer variables where applicable.
Variable | Shows | Field to Edit |
{{reservation_id}} / {{reservation_item_id}} | IDs for the reservation and line item | Not editable |
{{product_name}} | The product being contracted | On the Product itself |
{{unit_name}} | The assigned slip, site, or unit | Set via space assignment |
{{from_date}} / {{to_date}} (and time/datetime variants) | Reservation start and end | Set when booking |
{{price}} / {{quantity}} / {{subtotal}} / {{total}} / {{tax}} / {{discount}} / {{price_adjustment}} / {{deposit}} / {{deposit_paid}} / {{subtotal_no_deposit}} / {{total_no_deposit}} | Pricing for the item | Computed from the item's price, quantity, tax, and any extra charges |
{{invoicing_frequency}} | How often this item is billed | Reservation item → Accounting tab → "Invoicing Frequency" |
{{today}} | Today's date | Not editable — always the current date |
{{signature}} / {{checkbox}} / {{blank}} / {{images}} | Interactive contract elements — a signature box, an acknowledgment checkbox, a fill-in line, and an image upload area | These aren't data fields — insert them from the Content Editor's Inputs toolbar button while editing the contract template. The customer fills them in when they sign. |
{{esign_contract_link}} | The link a customer clicks to review and sign | Base link editable at Company Settings → Outlet Defaults → "E-sign Email Contract Url"; the final link is generated per contract |
Which specific templates are used for a given Contract's PDF, email, e-sign document, and e-sign email are assigned at System Settings → Contracts, open the contract, and set the "PDF Template," "Email Template," "E-sign Template," and "E-sign Email Template" fields.
ACH Variables
Template | Variable | Shows | Field to Edit |
ACH Sign-up Email | {{ach_signup_url}} | The link a customer clicks to enter bank details | Base link editable at Company Settings → Template Settings → "ACH Sign-up Form Url"; the final link is generated per customer |
ACH Declined | Same variables as Payment (see Payment Variables above) | Details of the declined payment attempt | See Payment Variables |
Note: ACH Sign-up Email and ACH Declined also include the Customer and Outlet variables above. ACH Terms And Conditions does not support merge variables at all — any {{...}} text typed into that template will show up literally rather than being replaced.
Reset Password Email
Variable | Shows | Field to Edit |
{{customer_display_name}} / {{customer_first_name}} / {{customer_last_name}} | The customer's name | CRM → Customers |
{{reset_url}} | The password reset link | Not editable — a one-time secure link generated per request |
{{expiration_date}} | When the reset link expires | Not editable — fixed at one hour from when it's requested |
{{online_site_url}} / {{online_site_name}} | Your booking site link and name | {{online_site_url}}: Company Settings → Reservation Settings → "Online Site Url". {{online_site_name}} could not be traced to an editable field in this pass — flagging for follow-up. |
This template is used for the "Forgot your password?" flow on the customer-facing Online Booking / Customer Portal site — not for staff logins. A staff member's own Sharper login password is reset differently, by an administrator at System Settings → Users, and does not use this email template.
