Skip to main content

How to Use Personalisation Variables and Custom Fields

Personalisation makes your customer conversations more engaging by automatically inserting customer-specific details into your messages.

For example, instead of sending "Hello there", you can send "Hello {{client.firstName}}" and Whautomate replaces {{client.firstName}} with your customer's first name.

1. What are personalisation variables​

Personalisation variables are placeholders that Whautomate replaces with data from your contacts, clients, bookings or business settings when the message is sent. Commonly used variables:

  • {{client.name}}: the client's name
  • {{client.phone}}: the client's phone number
  • {{client.email}}: the client's email address
  • {{appointment.date}} and {{appointment.time}}: the date and time of the appointment
  • {{business.name}}: your business name

You can use them in automation actions (messages on every channel, emails, notes, webhooks), in WhatsApp, Telegram, SMS and email campaigns, and in notification templates. Which variables have a value depends on the trigger: appointment variables are filled on appointment triggers, order variables on order triggers, and so on.

Insert a variable​

  1. Click the { } button (Insert a personalisation variable) under the message or parameter field.
  2. In Insert variable, search the list and pick a variable.
  3. Optionally fill in Fallback value (optional): "Shown when this variable has no value. Leave blank to show nothing." For example "there", so "Hi {{client.firstName|there}}" reads "Hi there" when the first name is missing.
  4. Check Will be inserted as and click Insert.

The variables a field uses are listed under it after Variables:. Click one to change its fallback (Edit variable), or click the bin to remove it. For a custom field, pick the custom field variable and type the Custom field name exactly as it appears in your custom fields.

The Insert variable panel open under a template body parameter, with the variable search list, the Fallback value field, the Will be inserted as preview and the Insert button

Example:
Message:
"Dear {{appointment.clientName}}, your appointment with {{appointment.practitioner}} at {{business.name}} on {{appointment.date}}, {{appointment.time}} is confirmed. Please let us know if you have any questions."

Customer sees:
"Dear Nina Haas, your appointment with Mr. John Doe at ABC Business on 25 Aug 2025, 09:00 AM is confirmed. Please let us know if you have any questions."

Available personalisation variables​

Client Variables

{{client.id}}, {{client.name}}, {{client.firstName}}, {{client.lastName}}, {{client.preferredName}}, {{client.age}}, {{client.gender}}, {{client.email}}, {{client.phone}}, {{client.calendarSyncURL}}, {{client.photoURL}}, {{client.telegramLink}}, {{client.maskedName}}, {{client.address}}, {{client.emergencyRelationType}}, {{client.emergencyContactName}}, {{client.emergencyContactPhone}}, {{client.company}}, {{client.taxIdType}}, {{client.taxIdNumber}}, {{client.availableFunds}}, {{client.customFields.fieldName}}

Use {{client.telegramLink}} to send a client a link that opens your Telegram bot and links the chat to them, and {{client.maskedName}} (for example "J*** S***") where a forwarded message must not show the full name.

Contact Variables

{{contact.id}}, {{contact.name}}, {{contact.phone}}, {{contact.customFields.fieldName}}, {{contact.customFields.ctwa_clid}}, {{contact.customFields.ctwa_clicked_at}}, {{contact.customFields.ctwa_source_id}}

The ctwa_ fields hold the click details of contacts who came from a Click to WhatsApp ad.

Business Variables

{{business.name}}, {{business.address}}, {{business.phone}}, {{business.mapDirectionUrl}}, {{business.operatingHours}}, {{business.operatingHours24Hr}}, {{business.id}}, {{business.telegramBotLink}}

{{business.address}} leaves out address parts the location has not filled in. {{business.telegramBotLink}} is the link to your Telegram bot.

Appointment Variables

{{appointment.practitioner}}, {{appointment.date}}, {{appointment.time}}, {{appointment.time24Hr}}, {{appointment.previousDate}}, {{appointment.previousTime}}, {{appointment.previousTime24Hr}}, {{appointment.clientName}}, {{appointment.addToCalendarURL}}, {{appointment.location}}, {{appointment.service}}, {{appointment.addons}}, {{appointment.detailsURL}}, {{appointment.partialdetailsURL}}, {{appointment.cancelURL}}, {{appointment.partialcancelURL}}, {{appointment.rescheduleURL}}, {{appointment.partialrescheduleURL}}, {{appointment.confirmURL}}, {{appointment.partialconfirmURL}}, {{appointment.confirmationStatus}}, {{appointment.practitionerRole}}, {{appointment.price}}, {{appointment.partialAddToCalendarURL}}, {{appointment.hostMeetingUrl}}, {{appointment.guestMeetingUrl}}, {{appointment.meetingPassword}}, {{appointment.addToCalendarEmailAttachmentURL}}, {{appointment.timezone}}, {{appointment.businessTimezone}}, {{appointment.dateInBusinessTZ}}, {{appointment.timeInBusinessTZ}}, {{appointment.time24HrInBusinessTZ}}, {{appointment.previousDateInBusinessTZ}}, {{appointment.previousTimeInBusinessTZ}}, {{appointment.previousTime24HrInBusinessTZ}}, {{appointment.serviceDescription}}

Virtual/Online Session: {{appointment.guestMeetingUrl}}, {{appointment.meetingPassword}} and {{appointment.hostMeetingUrl}}. Variables ending in 24Hr show the time in 24-hour format; those ending in InBusinessTZ use the location's time zone instead of the client's.

Bulk appointment Variables

{{bulkAppointment.clientName}}, {{bulkAppointment.service}}, {{bulkAppointment.practitioner}}, {{bulkAppointment.practitionerRole}}, {{bulkAppointment.location}}, {{bulkAppointment.addons}}, {{bulkAppointment.businessTzSchedule}}, {{bulkAppointment.businessTzSchedule24Hr}}, {{bulkAppointment.appointmentTzSchedule}}, {{bulkAppointment.appointmentTzSchedule24Hr}}, {{bulkAppointment.timezone}}, {{bulkAppointment.businessTimezone}}, {{bulkAppointment.serviceDescription}}

Class Variables

{{class.clientName}}, {{class.date}}, {{class.time}}, {{class.time24Hr}}, {{class.practitioner}}, {{class.className}}, {{class.duration}}, {{class.onlineClassLink}}, {{class.onlinePassCode}}, {{class.addToCalendarURL}}, {{class.detailsURL}}, {{class.partialdetailsURL}}, {{class.cancelURL}}, {{class.partialcancelURL}}, {{class.addToCalendarEmailAttachmentURL}}, {{class.timezone}}, {{class.description}}

{{class.onlinePassCode}} is the passcode of an online class.

Bulk class Variables

{{bulkClass.clientName}}, {{bulkClass.timezone}}, {{bulkClass.className}}, {{bulkClass.practitioner}}, {{bulkClass.duration}}, {{bulkClass.consolidatedSchedule}}, {{bulkClass.consolidatedSchedule24Hr}}, {{bulkClass.status}}, {{bulkClass.description}}

Membership Variables

{{membership.clientName}}, {{membership.startDate}}, {{membership.nextBillingDate}}, {{membership.status}}, {{membership.planName}}, {{membership.amount}}, {{membership.url}}, {{membership.id}}

Memberships used to be called subscriptions: older {{subscription.*}} variables, such as {{subscription.planName}}, still work in existing messages.

Credit Variables

{{credit.clientName}}, {{credit.status}}, {{credit.code}}, {{credit.startDate}}, {{credit.expiryDate}}, {{credit.summary}}

Order Variables

{{order.clientName}}, {{order.status}}, {{order.id}}, {{order.date}}, {{order.orderItems}}, {{order.amount}}, {{order.notes}}, {{order.trackingUrl}}, {{order.trackingNumber}}, {{order.shippingCarrier}}, {{order.number}}

{{order.orderItems}} lists the items of the order.

Invoice Variables

{{invoice.number}}, {{invoice.totalAmount}}, {{invoice.pendingAmount}}, {{invoice.clientName}}, {{invoice.date}}, {{invoice.dueDate}}, {{invoice.pdf}}, {{invoice.notes}}, {{invoice.paymentUrl}}, {{invoice.partialPaymentUrl}}, {{invoice.paymentRequestId}}, {{invoice.downloadId}}, {{invoice.downloadUrl}}, {{invoice.refundAmount}}

{{invoice.refundAmount}} shows 0 when nothing was refunded.

Payment Variables

{{payment.id}}, {{payment.referenceId}}, {{payment.clientName}}, {{payment.paidAt}}, {{payment.amount}}, {{payment.paymentMethod}}, {{payment.pdf}}, {{payment.downloadId}}, {{payment.downloadUrl}}

Statement Variables

{{statement.id}}, {{statement.clientName}}, {{statement.generatedAt}}, {{statement.startDate}}, {{statement.endDate}}, {{statement.pdf}}, {{statement.downloadId}}, {{statement.downloadUrl}}

Form Variables

{{form.clientName}}, {{form.name}}, {{form.status}}, {{form.url}}, {{form.partialUrl}}, {{form.pdf}}, {{form.downloadId}}, {{form.id}}, {{form.paymentAmount}}

Loyalty Program Variables

{{loyalty.pointsChanged}}, {{loyalty.availablePoints}}, {{loyalty.pointsChangedReason}}, {{loyalty.pointsToRedeemCoupon}}, {{loyalty.couponCode}}

Shopify Variables

{{shopify.orderNumber}}, {{shopify.orderStatusUrl}}, {{shopify.abandonedCheckoutUrl}}, {{shopify.trackingUrl}}, {{shopify.trackingCompany}}, {{shopify.trackingNumber}}, {{shopify.orderAmount}}, {{shopify.referenceId}}, {{shopify.productImageUrl}}

WooCommerce Variables

{{woocommerce.orderNumber}}, {{woocommerce.orderStatusUrl}}, {{woocommerce.abandonedCheckoutUrl}}, {{woocommerce.trackingUrl}}, {{woocommerce.trackingCompany}}, {{woocommerce.trackingNumber}}, {{woocommerce.orderAmount}}, {{woocommerce.referenceId}}, {{woocommerce.productImageUrl}}

Message Variables

{{chatMessage.text}}, {{chatMessage.mediaUrl}}

The text or media link of the message that triggered the rule.

Date and time Variables

{{currentDate}}, {{currentTime}}

Today's date and the current time.


2. How to Add & Manage Custom Fields in Clients and Contacts​

Custom Fields let you save extra information about your clients and contacts beyond the standard details (like Renewal Date, Preferences, or Referred By). These fields can be used to personalise messages and create smarter automation.

Adding Custom Fields to a Client​

  1. Go to Clients and open the client you want to update.
  2. Click Custom Fields.
  3. Click Add New Attribute, then enter the Attribute (e.g., Subscription Date) and its Value (e.g., 25 August 2026).
  4. Click Save.
Custom Attributes on a client profile with Preferred therapist and Pressure preference filled in, the Add New Attribute button and Save

Adding Custom Fields to a Contact​

  1. Go to the Team Inbox.
  2. Select the contact you want to update.
  3. In the contact details panel, find Custom Attributes and click +.
  4. Click Add New Attribute, then enter the Attribute (e.g., Follow Up) and its Value (e.g., 25 August 2026).
  5. Click Save.
The Custom Attributes window for a contact with the attribute Follow Up set to 25 August 2026, the Add New Attribute button and Save

Using Custom Fields Variables in Messages​

You can insert your Custom Fields into messages with variables.

1. Dot Notation (no spaces in field name)

Client: {{client.customFields.fieldName}}
Contact: {{contact.customFields.MembershipPlan}}

Example: “Hi {{client.name}}, your plan is {{contact.customFields.membershipPlan}}.”
Result: “Hi Sarah, your plan is Gold.”

2. Bracket Notation (for spaces/special characters)

Client:
{{client.customFields["subscription status"]}}
{{client.customFields['subscription status']}}

Contact:
{{contact.customFields["subscription status"]}}
{{contact.customFields['subscription status']}}

Example: “Hi {{client.name}}, status: {{contact.customFields['subscription status']}}.”
Result: “Hi John, status: Active.”

tip

Tip: Use bracket notation if your field name has spaces.

Bulk Import with Custom Fields​

When uploading clients or contacts via CSV file, you can include custom attributes directly.

Example CSV entries:

VIPStatus:"true" | PreferredBranch:"Branch1"

Example:
Field Name: VIPStatus and Value: True

Field Name: PreferredBranch and Value: Branch1

This way, every client/contact in the file will have the fields assigned automatically.


With Custom Fields, you can keep detailed client and contact records, making it easier to personalise messages to your audience.