---
title: "Placeholders"
description: "Fill each customer's name and details into a message, a broadcast or a template."
url: "https://docs.goomzo.africa/docs/help/placeholders"
docs_index: /llms.txt
lastUpdated: 2026-11-12
section: "Engagement"
related:
  - /docs/help/messages
  - /docs/help/broadcasts
  - /docs/help/templates
  - /docs/help/sender-ids
  - /docs/help/sms-bundles
---

> For an index of all documentation, see [/llms.txt](https://docs.goomzo.africa/llms.txt). Any page is also available as Markdown by adding .md to its URL.

# Placeholders

> Fill each customer's name and details into a message, a broadcast or a template.

A placeholder is a word in double braces that Goomzo fills in for each customer when the message goes out. Write
`Hi {{name}}` once, and Amina reads "Hi Amina" while Juma reads "Hi Juma".

Placeholders work in SMS messages and broadcasts, in [templates](https://docs.goomzo.africa/docs/help/templates?utm_source=llms&utm_medium=ai), and in the blanks of WhatsApp
templates.

## What you can fill in

| Placeholder                 | Becomes                                                               |
| --------------------------- | --------------------------------------------------------------------- |
| `{{name}}`                  | The customer's name.                                                  |
| `{{attributes.plan}}`       | One of your own [details](https://docs.goomzo.africa/docs/help/customers?utm_source=llms&utm_medium=ai#add-your-own-details), here `plan`. |
| `{{data.order}}`            | A value your system passes when it [sends a template](https://docs.goomzo.africa/docs/developers/messages/templates?utm_source=llms&utm_medium=ai).    |
| `{{secret.code}}`           | The same, kept private: delivered, but kept and shown as `••••••`.                  |

Use a detail by its key, exactly as you named it: `{{attributes.city}}`, `{{attributes.loyalty_tier}}`. A yes or no
detail becomes "yes" or "no"; a number is written as it was saved.

## Fallbacks

Not every customer has a name or every detail. Add a fallback after a `|`, and it's used for anyone without one:

| You write                          | Amina (plan Gold) reads | A customer with no name or plan reads |
| ---------------------------------- | ----------------------- | ------------------------------------- |
| `Hi {{name\|there}}`               | Hi Amina                | Hi there                              |
| `Your {{attributes.plan\|current}} plan` | Your Gold plan    | Your current plan                     |
| `Hi {{name}}`                      | Hi Amina                | Hi                                    |

Without a fallback, a missing name or detail becomes nothing. That's fine in an SMS, but in a WhatsApp template
Meta won't send a blank that's empty: Goomzo stops a broadcast whose blanks come out empty for someone, so give
WhatsApp blanks a fallback.

## Check before you send

- **Preview.** WhatsApp templates show a preview as a customer named Amina would read it.
- **Length.** An SMS is measured once filled in for each person, so a long name can push one person's text into
  another SMS part. Broadcasts are checked for everyone they reach before they go.
- **Mistakes.** A placeholder Goomzo doesn't know, such as `{{email}}`, or a `{{` without its `}}`, is pointed out
  before anything is sent.

## In WhatsApp templates

When you write a WhatsApp template in Goomzo, your placeholders become Meta's numbered blanks:
`Hi {{name|there}}, your {{attributes.plan}} plan renews soon` goes to Meta as
`Hi {{1}}, your {{2}} plan renews soon`, and Goomzo fills the blanks for each customer when it sends. Meta also asks that the message doesn't start or end with a
placeholder, and doesn't have two side by side.

---

For an index of all available documentation, see [/llms.txt](https://docs.goomzo.africa/llms.txt)
