What Are Canned Responses?
Canned responses are message templates you create once and reuse in any conversation. They're perfect for frequent replies like greetings, payment instructions, business hours, or any message you send regularly.
Key advantage
Canned responses support template variables that are automatically replaced with real data (contact name, agent name, etc.), personalizing each message with zero extra effort.
How to Create Canned Responses
Step by step
- 1 Go to Settings → Canned Responses in the admin panel.
- 2 Click Add Canned Response.
-
3
Assign a short code (e.g.
greeting,hours,payment). - 4 Write the message content. You can include template variables to automatically personalize the text.
- 5 Click Save. The response will be available immediately for all agents.
Canned response example
greeting
{{contact.first_name || 'there'}}! I'm {{agent.first_name}} from {{account.name}}. How can I help you today?
How to Use in Conversations
Using a canned response is as simple as typing a forward slash / in the message field.
Steps
-
1
In any conversation, type
/in the message field. -
2
A list of available canned responses appears. Keep typing to filter (e.g.
/greeting). - 3 Select the desired response. The message is inserted automatically with all variables replaced.
- 4 Review and edit if needed, then send the message.
Tip: Use short, descriptive codes to find your responses quickly. For example: greeting, hours, payment-info, farewell.
Template Variables
Template variables are dynamic placeholders using the format {{variable.name}} that are automatically replaced with real data when the message is sent.
Fallback text
You can define an alternative value in case the variable is empty using the || syntax:
{{contact.first_name || 'there'}}
If contact.first_name is empty, "there" will be used instead (e.g., "Hi there").
Contact
| Variable | Description | Usage example | Result |
|---|---|---|---|
contact.id |
Contact ID | Your customer number is {{contact.id}} |
Your customer number is 1842 |
contact.name |
Full name (capitalized) | Dear {{contact.name || 'customer'}} |
Dear Maria Gomez |
contact.first_name |
First name | Hi {{contact.first_name || 'there'}}! |
Hi Maria! |
contact.last_name |
Last name | Mr/Ms. {{contact.last_name || 'customer'}} |
Mr/Ms. Gomez |
contact.email |
Email address | Confirmation sent to {{contact.email || 'your email'}} |
Confirmation sent to [email protected] |
contact.phone |
Phone number | Phone on file: {{contact.phone}} |
Phone on file: +57 300 123 4567 |
contact.custom_attribute.KEY |
Any custom attribute by key | Your plan: {{contact.custom_attribute.plan || 'basic'}} |
Your plan: Premium |
Agent
| Variable | Description | Usage example | Result |
|---|---|---|---|
agent.name |
Full name | You're being helped by {{agent.name}} |
You're being helped by Carlos Rodriguez |
agent.first_name |
First name | I'm {{agent.first_name}}, how can I help? |
I'm Carlos, how can I help? |
agent.last_name |
Last name | Best regards, {{agent.first_name}} {{agent.last_name}} |
Best regards, Carlos Rodriguez |
agent.email |
Email address | Reach me at {{agent.email}} |
Reach me at [email protected] |
Conversation
| Variable | Description | Usage example | Result |
|---|---|---|---|
conversation.id |
Conversation ID | Internal reference: #{{conversation.id}} |
Internal reference: #58291 |
conversation.custom_attribute.KEY |
Any custom attribute by key | Order: {{conversation.custom_attribute.order_id || 'unassigned'}} |
Order: ORD-2024-1583 |
Inbox
| Variable | Description | Usage example | Result |
|---|---|---|---|
inbox.id |
Inbox ID | Channel: {{inbox.id}} |
Channel: 3 |
inbox.name |
Inbox name | This message was received in {{inbox.name}} |
This message was received in WhatsApp Sales |
Account
| Variable | Description | Usage example | Result |
|---|---|---|---|
account.id |
Account ID | Account #{{account.id}} |
Account #1 |
account.name |
Account / business name | Thanks for contacting {{account.name}} |
Thanks for contacting My Company |
Practical Examples
Ready-to-use canned responses you can copy and adapt for your business.
{{contact.first_name || 'there'}}! I'm {{agent.first_name}} from {{account.name}}. How can I help you today?
{{contact.first_name || 'Hi'}}, our business hours at {{account.name}} are:Monday to Friday: 8:00 AM - 6:00 PM
Saturday: 9:00 AM - 1:00 PM
Sundays & holidays: Closed
{{contact.first_name || 'Dear customer'}}, your request has been logged as case #{{conversation.id}}. Our team is reviewing it. We'll get back to you shortly.
{{account.name}}, {{contact.first_name || 'friend'}}! If you need anything else, don't hesitate to reach out. Have a great day! — {{agent.first_name}}
{{contact.first_name || 'Hi'}}, I'm transferring your conversation (case #{{conversation.id}}) to a colleague who can better assist you with this request. You'll be helped shortly.
Where Variables Work
Template variables don't just work in canned responses. You can use them across several areas in AstraChat:
Best Practices
-
Always use fallback text: Add
|| 'value'to variables that might be empty, especiallycontact.first_name. -
Descriptive codes: Use clear short codes like
greeting,hours,payment-infoinstead ofcr1,cr2. - Review before sending: Always check the generated message before sending, especially if it uses many variables.
- Natural tone: Write responses as if you were talking to a real person. Avoid sounding too robotic.
- Keep them updated: Periodically review your responses to make sure the information is still accurate (prices, hours, policies).