## Overview

A **macro** is a predefined sequence of actions you run on a conversation with one click. Instead of
assigning, labeling, replying and changing the status by hand, you bundle it all into a macro and run it
when you need. It's the simplest way to standardize repetitive support tasks.

Inside a conversation there are **three ways to trigger the same macro**, all equivalent:

1. From the **macros** panel in the conversation sidebar, using the run button.
2. By typing **#** in the composition box and picking the macro from the list that opens.
3. From the **command palette**, with **Cmd + K** (macOS) or **Ctrl + K** (Windows/Linux).

All three use the same macro order and the same execution engine, so the result is identical.

## Prerequisites

- Any agent can create their own **private** macros in the account settings. Publishing a macro as
  **Public** or **Specific group** requires the administrator role; editing or deleting an already
  published macro requires the administrator role **or** an access role with **Manage macros**.
- Any agent can **run** the available macros inside a conversation.
- The **Macros** feature has to be enabled on the account. It ships enabled; when it is off, the **#**
  trigger and the palette's "Execute a macro" command simply do not appear.
- The **#** and palette shortcuts only offer macros while you are **inside a conversation** or on the
  inbox view — not on settings or report screens.

## Step by step

1. In Administration & Settings, open the **Macros** area.
2. Create a macro, give it a clear name and set the **visibility** (public, private or specific group).
3. Add the actions in order — for example: assign to a team, apply a label, send a message, change the
   status to resolved.
4. Save the macro.
5. In a conversation, open the **macros** menu and run the one you want. The actions are applied in order.
6. Review the result before moving on to the next conversation.

### Running it with **#** in the composition box

1. With the conversation open, click the composition box and type **#**.
2. The macro list opens anchored to the spot where you typed, with a search field of its own.
3. Keep typing to **filter by macro name** (this search looks at the name, not at the actions).
4. Each row shows the name and the macro's **action count**.
5. The preview panel next to it lists **every action in the order they will run**, with each value
   already resolved (the agent, the team, the label or the file you picked).
6. Press **Enter** or click to run it. The **#** and whatever you typed after it are removed from the
   composition box before the macro runs, so nothing is left behind in your message.

The **#** trigger works in both **Reply** and **Private note** mode — unlike the **/** used by canned
responses, which only opens in Reply mode.

### Running it from the command palette

1. With the conversation open, press **Cmd + K** (macOS) or **Ctrl + K** (Windows/Linux). This works
   even with the cursor inside the composition box.
2. Look for **Execute a macro**, under the **Conversation** section.
3. Open the command: the palette then lists your macros under the **Execute Macro** section.
4. Pick the macro. It runs on the open conversation, exactly like from the sidebar panel.

### Keyboard navigation (in both lists)

| Key | Effect |
|---|---|
| **↑** / **↓** (or **Ctrl + P** / **Ctrl + N**) | Move the selection; the list wraps at both ends |
| **Tab** / **Shift + Tab** | Move the selection down/up |
| **Enter** | Run the selected macro |
| **Esc** | Close the list and hand focus back to the editor |
| **Backspace** with an empty search | Delete the **#** and close the list |

## Settings & options

- **Action order**: actions run top to bottom — arrange them to match the flow you want.
- **Action types**: assignment (agent/team), labels, priority, status, sending a message/attachment,
  **send an email to the team**, **add SLA** (requires the SLA module) and other integrations available
  in the account.
- **Visibility**: pick one of three options when creating or editing the macro.
- **Messages with variables**: use variables (e.g., the contact's name) in the text when supported.
- **Attachments**: the send-attachment action uses the files saved **on the macro itself**, not the
  ones in the conversation.

### The three visibilities

| Visibility | Who finds and runs it | Who can edit/delete it |
|---|---|---|
| **Public** | Every agent in the account | Administrators or a role with **Manage macros** |
| **Private** | Only its author | Only its author |
| **Specific group** | Its author, plus the selected **roles** and **agents** | Its author, administrators or a role with **Manage macros** |

For **specific group** you choose by **role** (Administrators, Agents) and/or **by agent**, and at
least one of the two is required. An agent without administrator permission can only ever create
**private** macros: public and specific-group audiences are administrator-governed.

### Macro order across the lists

The order macros appear in is the one **you** dragged into place in the conversation sidebar. That
order is personal, is stored in your preferences and applies to **every** surface at once: the sidebar
panel, the **#** list and the command palette. Macros you never dragged stay at the end, in their
original order.

### Required attributes when resolving

If the account requires **mandatory custom attributes** to resolve conversations and the macro contains
an action that resolves the conversation, this is what happens:

1. Before running, the platform checks whether the conversation's required attributes are filled in.
2. If any is missing, a dialog opens asking for those fields.
3. If you **fill them in and confirm**, the values are saved on the conversation and the whole macro runs.
4. If you **dismiss the dialog**, the macro still runs — but the conversation is **not resolved**, and
   the notice reads "Macro executed. The conversation was not resolved because required attributes are
   missing."

The same guard applies on the server: even when the macro is triggered through another path, the step
that resolves the conversation is skipped while a required attribute is blank. Every other action in
the macro is still applied normally.

## Use cases

- Standard closing: reply with a thank-you message, apply the label and resolve.
- Triage: assign to the right team and set the priority based on the topic.
- Hand-off: change the status to pending and leave a standardized internal note.
- Team macro: publish an approved procedure to a single role or a group of agents, using the
  **Specific group** visibility.

## Tips, limits & best practices

In ConversaLabs, actions that operate outside the conversation only run in macros saved by an administrator. Ask an administrator to save a macro containing these actions; conversation actions remain available to agents. If the administrator who saved the macro leaves the account, another administrator must save it again before restricted actions can run again.

- Name macros by the outcome ("Close case", "Forward to Billing") so they're easy to find — **#**
  filters by exactly that name.
- Keep the macros you use most at the top of the sidebar panel: that order is reused by **#** and by
  the palette, so you type less.
- Review the message text before trusting auto-send — avoid out-of-context replies.
- Use the **#** preview before running a macro on a sensitive conversation: it shows each action with
  the real value that will be applied.
- Keep a few well-designed macros rather than many similar ones.

## Troubleshooting

- **I don't see the macros menu**: there may be no macros created — ask an administrator.
- **# doesn't open the list**: confirm you are inside a conversation and that the Macros feature is
  enabled on the account. Outside a conversation the shortcut has nothing to offer.
- **The list opens empty or says "No results found"**: the filter matches the macro **name**; searching
  for an action's name returns nothing.
- **I can't find a macro a colleague uses**: it may be **private** to them, or published to a
  **specific group** you are not part of.
- **The macro ran but the conversation is still open**: required attributes are probably missing — see
  the section above and fill in the requested fields.
- **The macro didn't apply everything**: review the order and action types; an action may depend on a
  field that doesn't exist on the conversation.
- **I can run but cannot edit a public macro**: this is expected — public macros are
  administrator-governed.

## See also

- [Canned responses with shortcuts](/hc/ajuda/articles/conversations-respostas-rapidas-en)
- [Assignment, status, priority and labels](/hc/ajuda/articles/conversations-atribuicao-status-prioridade-labels-en)
- [Snooze, resolve and reopen conversations](/hc/ajuda/articles/conversations-snooze-resolver-reabrir-en)