Macros
Saved replies and one-click actions for handling conversations faster
A macro is a saved reply plus a set of actions you can apply to a conversation in one click. Macros are the single biggest lever for handling more conversations per hour — any reply you find yourself writing more than twice should probably be a macro.
What a macro contains
Each macro has:
- Title — How you find it in the macro picker.
- Content — The reply that gets inserted into the message composer. Markdown is supported, including images.
- Actions — A list of things to do to the conversation when the macro is applied (see below).
- Attachments — Files that get attached to the reply.
- Available for — Either everyone in the organization, or just yourself (personal macros).
- Business — Restrict the macro to a specific business, or make it available across all of them.
- Folder — Macros are organized into folders so a large library stays navigable.
Variables
You can insert dynamic values into a macro's content using double curly braces. They're filled in automatically when the macro is applied to a conversation.
Hi {{customer.name}}, thanks for reaching out!Available variables
{{agentName}}— Full name of the agent applying the macro.{{business.name}}— Name of the business the conversation belongs to.{{customer.name}}— Customer's name. Also available as{{customerName}}for backwards compatibility.{{customer.email}}— Customer's email.{{customer.phone}}— Customer's phone number.{{lastOrder.orderId}}— ID of the customer's most recent order.{{lastOrder.orderPlacedAt}}— When the most recent order was placed.{{lastOrder.trackingId}}— Tracking ID of the most recent order.{{lastOrder.trackingUrl}}— Tracking URL of the most recent order.{{lastOrder.statusPageUrl}}— Order status page URL of the most recent order.{{lastSubscription.nextChargeDate}}— Next charge date of the customer's most recent subscription.
When a value isn't available
If a variable has no value (for example, the conversation has no customer attached, or the customer has no recorded phone number), it renders as an empty string. The macro doesn't error, but the result can look awkward — Hi {{customer.name}}, becomes Hi ,.
To handle missing values gracefully, use Mustache sections to provide a fallback:
{{#customer.name}}Hi {{customer.name}},{{/customer.name}}{{^customer.name}}Hi there,{{/customer.name}}{{#customer.name}}...{{/customer.name}} renders only when the value is present, and {{^customer.name}}...{{/customer.name}} renders only when it's missing.
Actions
A macro doesn't have to just insert a reply — it can also perform actions on the conversation in the same click. Available actions:
- Set tag — Add a tag to the conversation.
- Assign member — Assign the conversation to a specific teammate.
- Snooze — Snooze the conversation for a chosen duration.
- Close conversation — Close the conversation after the reply is sent.
You can chain multiple actions in a single macro. A typical "answered and done" macro inserts a reply, applies a tag, and closes the conversation — all in one keystroke.
Folders
Macros live in folders. A few naming patterns that work well:
- By topic:
Returns,Shipping,Account issues,Billing - By stage:
Triage,Ask for info,Closing replies - By team:
VIP,Wholesale,Support tier 2
A flat list of 80 macros is unusable; the same 80 in 8 folders is fast to navigate.
Recommendations
Octocom can recommend macros automatically based on the content of the conversation. When a recommendation matches what you'd say anyway, applying it is a single click — this is usually the fastest path to a reply.
When to make a macro
A good rule: if you've written the same answer (even loosely) twice, save it as a macro the third time. If the answer always closes the conversation, add a close action. If it always tags the conversation, add a tag action. The goal is that your most common conversation types resolve in a single click.