---
title: "Quick reply variables"
description: "Every variable a quick reply can carry, the exact token to write, what replaces it, and what happens when the value cannot be resolved."
canonical: https://docs.afp.monster/reference/quick-reply-variables
updated: 2026-08-19
pageType: reference
---

Seven variables exist, in three groups. They are replaced when a quick reply is applied to a conversation, using that conversation's contact, that conversation's page, and the person applying it. A variable whose value cannot be found is replaced with an empty string, with one exception noted below. Nothing is ever raised as an error. Variables are case-sensitive and must be written exactly as shown.

## Summary

| Variable | Group | Replaced with |
|---|---|---|
| `#{FULL_NAME}` | Customer | The contact's full name |
| `#{FIRST_NAME}` | Customer | The contact's first name |
| `#{LAST_NAME}` | Customer | The contact's last name |
| `#{PAGE_NAME}` | Connection | The name of the page the conversation belongs to |
| `#{STAFF_NAME}` | User | The full name of whoever applies the quick reply |
| `#{STAFF_FIRST_NAME}` | User | Their first name |
| `#{STAFF_LAST_NAME}` | User | Their last name |

## `#{FULL_NAME}`

- **Group:** Customer
- **Replaced with:** the contact's full name
- **When unknown:** empty

```text
Hi #{FULL_NAME}, thanks for getting in touch.
```

## `#{FIRST_NAME}`

- **Group:** Customer
- **Replaced with:** the contact's first name
- **When unknown:** empty

## `#{LAST_NAME}`

- **Group:** Customer
- **Replaced with:** the contact's last name
- **When unknown:** empty

## `#{PAGE_NAME}`

- **Group:** Connection
- **Replaced with:** the name of the page the conversation belongs to
- **When unknown:** the variable is left as written

```text
Thanks for messaging #{PAGE_NAME}. We reply within one business day.
```

## `#{STAFF_NAME}`

- **Group:** User
- **Replaced with:** the full name of the person applying the quick reply
- **When unknown:** empty

For an account that signs in by email with no Facebook profile attached, the account's own full name is used.

## `#{STAFF_FIRST_NAME}`

- **Group:** User
- **Replaced with:** the first name of the person applying the quick reply
- **When unknown:** empty

For an email-only account the first word of the account's full name is used.

## `#{STAFF_LAST_NAME}`

- **Group:** User
- **Replaced with:** the last name of the person applying the quick reply
- **When unknown:** empty

For an email-only account everything after the first word of the account's full name is used.

## Notes

- Substitution happens when the quick reply is applied, not when it is saved, so the same saved text personalises differently in every conversation.
- Every occurrence of a variable in one message is replaced, not just the first.
- A failure while resolving a value does not fail the whole reply. The composer is filled with whatever was substituted up to that point, so an unreplaced token in a draft means a lookup did not complete.
- The variable picker in the quick reply form shows a **Choose time** group. It contains no variables.
- **A gender variable is coming soon.** AFP does not record a contact's gender yet, so a phrase that varies by gender is not something a quick reply can do today.
- Variables are not available anywhere else. Campaign message nodes have their own configuration; see [Node types](/reference/node-types).

## Related

- [Save and reuse replies](/guides/quick-replies) — creating and using quick replies.
- [Contact fields](/reference/contact-fields) — where the customer name and gender come from.
- [Read and reply in the inbox](/guides/inbox) — the composer that applies them.
