Skip to main content

Variables and Substitution

Reepli does not have a Liquid or Handlebars variable system ({{ contact.name }}, {% if %} etc.) in free responses. Its personalization relies on two simpler mechanisms: the anchoring of the assistant on your business context for free text responses, and the Meta placeholders {{1}}, {{2}} for pre-approved templates.

Why no Liquid variables?

Classic variable systems break as soon as a piece of data is missing ({{ contact.first_name }} displayed as-is when the first name is empty). By relying on artificial intelligence, Reepli avoids this trap: if data is missing, the assistant rephrases. If it is present, the assistant uses it. No syntax to learn.


Mechanism 1 — Anchoring the assistant in free responses

When the assistant replies in free text, it has access to a complete context that it can use freely. This context contains:

  • The contact's first and last name, if they are known.
  • The recent history of the conversation.
  • The service catalog you filled in.
  • The FAQ, the rules, the free-form instructions.
  • The current or recent appointments with this contact.

The assistant draws on this data to personalize its reply — without you having to write {{ contact.first_name }} anywhere.

A concrete example

You wrote in your services:

Women's cut: €45, duration 1 h.

The contact Sophie Martin sends:

How much is a cut?

The assistant replies:

Hello Sophie! A women's cut is €45 with us, for about 1 h of service. Would you like us to look at availability?

Notice:

  • The first name is used because it is known.
  • The price and duration come from your catalog.
  • No special syntax in your FAQ or your rules: you write in normal language, the assistant handles the rest.

What you can write in your context

Services:
- Men's cut: €25, 30 min
- Women's cut: €45, 1 h
- Color: €80, 2 h
- Highlights: €120, 3 h

Address: 12 rue des Lilas, 75011 Paris
Metro: Voltaire (line 9)

Rules:
- Open Tuesday to Saturday, 9 a.m. to 7 p.m.
- Saturday is in high demand: warn the customer.
- For colorings, always ask for a photo of the desired result before offering an appointment.

The assistant draws on this information as needed. You have nothing else to do.


Mechanism 2 — Meta placeholders in templates

Pre-approved Meta templates (used outside the 24-hour window) have fixed text. To personalize them, Meta allows numbered placeholders: {{1}}, {{2}}, {{3}}, etc.

Template example

Appointment reminder template, UTILITY category:

Hello {{1}}, your appointment at {{2}} is scheduled for tomorrow at {{3}}.
Reply OK to confirm.

When the D-1 reminder triggers for Sophie, who has an appointment tomorrow at 10:30 a.m., Reepli sends:

Hello Sophie, your appointment at Salon Émilie is scheduled for tomorrow at 10:30 a.m. Reply OK to confirm.

How Reepli chooses the values

The assistant fills the placeholders {{1}}, {{2}}, etc. with factual values pulled from:

SourceExample data
Your contactsfirst name, last name, phone number
Your appointmentsdate, time, service, location
Your business profilecompany name, address
Your quotesamount, quote send date

The assistant does not fabricate values: if a piece of data is missing, the template is rejected or replaced with a more generic text message (when the customer service window is still open).


The behavior → template mapping table

BehaviorMeta templateTypical variables
Appointment bookingappointment confirmation{{1}} first name · {{2}} time · {{3}} service
D-1 appointment reminderD-1 reminder{{1}} first name · {{2}} salon · {{3}} time
H-2 appointment reminderH-2 reminder{{1}} first name · {{2}} time
Post-service follow-upsatisfaction survey{{1}} first name · {{2}} service
Quote follow-up (D+2)payment reminder{{1}} first name · {{2}} amount · {{3}} send date
Quote follow-up (D+5)payment remindersame
Quote follow-up (D+10)due-date remindersame
Review requestGoogle review request{{1}} first name · {{2}} Google link

The exact templates are visible from the WhatsApp template administration page (admin only).


What is NOT supported

To avoid any confusion, here is what does not exist in Reepli:

  • No {{ contact.first_name }} syntax to write in your rules or your FAQ.
  • No global custom variables ({{ variables.brand_color }}).
  • No conditional logic in variables ({% if %} / {% endif %}).
  • No transformation filters ({{ name | upper }}).
  • No variables in the links clicked by the customer (a Meta template is fixed once approved).

If you find one of these patterns in old documentation or a tutorial, it is a leftover from an approach that Reepli never implemented.

Free text = no special syntax

You can write curly braces in your rules or your FAQ — the assistant will treat them as normal text. Do not try to use {{1}} in your rules; these are placeholders only in Meta templates.


How to verify that a variable is properly filled

For free responses

Chat with your business number from your personal phone and check that:

  • Your first name appears in the reply (if it is in the contacts database).
  • The prices quoted match your catalog.
  • The address mentioned is the correct one.

If a piece of data doesn't appear, it is because it is not in your context or because the wording of the rule doesn't prompt the assistant to mention it.

For Meta templates

The most reliable test is to wait for a real automatic send (a D-1 reminder for an appointment tomorrow), or to manually trigger a send from the WhatsApp template administration page with a test send.

You can also view the details of a send on the Messages page — the final content displayed is exactly what the customer received.


Best practices

  • Fill in your context once, thoroughly. The richer it is, the more personalized the responses.
  • Check your Meta templates. A template with one variable too many or too few will not be sent.
  • Update your context every time you change a price or a rule. The assistant will reply immediately with the new data.
  • Don't ask the assistant to quote a price to the cent on a complex case. Prefer a flat rate. For precise calculations, the assistant escalates to you.

Going further