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.
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:
| Source | Example data |
|---|---|
| Your contacts | first name, last name, phone number |
| Your appointments | date, time, service, location |
| Your business profile | company name, address |
| Your quotes | amount, 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
| Behavior | Meta template | Typical variables |
|---|---|---|
| Appointment booking | appointment confirmation | {{1}} first name · {{2}} time · {{3}} service |
| D-1 appointment reminder | D-1 reminder | {{1}} first name · {{2}} salon · {{3}} time |
| H-2 appointment reminder | H-2 reminder | {{1}} first name · {{2}} time |
| Post-service follow-up | satisfaction 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 reminder | same |
| Quote follow-up (D+10) | due-date reminder | same |
| Review request | Google 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.
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
- Configuring scenarios
- Message types — when the assistant switches to template mode.
- AI responses in detail — how the assistant builds each response.
- AI logic and rules