Help Desk

Bulk email

Email a list of customers through Copilot, one conversation per customer.

To email many customers at once, give Copilot a spreadsheet with one row per customer, for example brand, template, email address and language, and say what to send.

Each customer gets their own conversation, so a reply lands in their ticket. Conversations are handed off and closed after sending by default, and a customer reply reopens them for your team. Ask Copilot to let the bot answer replies if you prefer.


How a send works

  1. Upload the sheet in Copilot and describe the email.
  2. Copilot matches every row: the brand that sends it, the inbox it comes from (for example a brand's German support address) and the macro or text to use, with placeholders filled in.
  3. Review the summary. Copilot shows how many emails go out from each brand and inbox, rows it could not match, duplicate addresses and a sample email.
  4. Approve each batch. Copilot sends up to 100 emails per batch and asks for your approval before each one.
  5. Ask how it went. Copilot reports, for each customer, whether the email was sent.

Every inbox used must be connected and able to send. If one isn't, nothing in that batch is sent.


Finding a send later

Every conversation in a send gets the same tag, such as bulk-2026-11-13-shipping-delay. Filter the Help Desk by that tag to see who was emailed and who replied, or ask Copilot.

Repeating a send with the same tag skips customers who already got the email. That makes it safe to continue a send that was interrupted.


For AI agents

Use the MCP tool send_outbound_emails. One call sends up to 100 emails from one business. Group the rows by business and send larger lists in several calls with the same batchTag.

Before sending:

  • Resolve every row: businessId, inboxId from list_email_inboxes (omit it for the primary inbox), subject, and final text. Text is plain text rendered as Markdown; nothing is templated server-side. Read macros with get_macro and fill in placeholders yourself.
  • Show the user the counts per business and inbox and one sample email, and get explicit confirmation.
  • Choose a new, distinct batchTag per send. outbound is reserved.

Per-recipient statuses:

StatusMeaning
sentSent now, in a new conversation.
already_sentAn earlier call with this batchTag already sent it. Not sent again.
incompleteAn earlier call created the conversation, but its email was never sent. Check it with get_conversation; it is not resent.
duplicate_in_requestThe address appears earlier in the same call.
failedThe send failed, with an error.

A failed recipient may still have been emailed if only a follow-up step failed. Retry with the same batchTag: a recipient that was emailed comes back as already_sent.

Only one call per business and batchTag runs at a time. A concurrent call is rejected; wait for the first to finish, then retry.

The same send is available over REST, one email per request, as POST /rest/v1/conversations/outbound-email with an optional inboxId. See the REST API guide.

On this page