Canned Responses

Reusable message templates with dynamic variables to reply faster and more consistently.

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. 1 Go to Settings → Canned Responses in the admin panel.
  2. 2 Click Add Canned Response.
  3. 3 Assign a short code (e.g. greeting, hours, payment).
  4. 4 Write the message content. You can include template variables to automatically personalize the text.
  5. 5 Click Save. The response will be available immediately for all agents.

Canned response example

Short code: greeting
Content:
Hi {{contact.first_name || 'there'}}! I'm {{agent.first_name}} from {{account.name}}. How can I help you today?
Result:
Hi Maria! I'm Carlos from My Company. 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. 1 In any conversation, type / in the message field.
  2. 2 A list of available canned responses appears. Keep typing to filter (e.g. /greeting).
  3. 3 Select the desired response. The message is inserted automatically with all variables replaced.
  4. 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.

greeting Initial greeting
Hi {{contact.first_name || 'there'}}! I'm {{agent.first_name}} from {{account.name}}. How can I help you today?
hours Business hours
{{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
case-ref Case reference
{{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.
farewell Farewell
Thanks for contacting {{account.name}}, {{contact.first_name || 'friend'}}! If you need anything else, don't hesitate to reach out. Have a great day! — {{agent.first_name}}
transfer Transfer notice
{{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:

Canned Responses
Macros
Automations
Captain AI (system prompts)

Best Practices

  • Always use fallback text: Add || 'value' to variables that might be empty, especially contact.first_name.
  • Descriptive codes: Use clear short codes like greeting, hours, payment-info instead of cr1, 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).