System emails

The seven emails the Event Ticketing app sends on its own — order receipt, ticket email, the four transfer emails, and refund. What each one is for, when it fires, and how to change its wording store-wide or for a single event.

Jeff Blake
Written by Jeff Blake Updated November 6, 2026

Alongside Shopify’s own order confirmation, the Event Ticketing app sends its own emails when something happens to a ticket. They are listed together in the app under Settings → System emails, and each event has its own Emails section for changing the wording on that event alone.

These are automatic emails, triggered by an order or a ticket. They are not campaigns: a campaign is an email you compose and send to a list of attendees yourself.

Requirements: The Event Ticketing app installed.

The seven emails

Email When it sends Who receives it
Order receipt The only email the app sends at purchase. Goes out once per order, when the order is fulfilled, with the tickets attached as PDF and Apple Wallet, plus an Add to Google Wallet button. Off by default, and requires the Advanced plan or higher. The buyer
Ticket email Not triggered by the purchase itself. Sent when an attendee completes registration on a ticket type that collects attendee details (right after the order, if your booking form collects those details during checkout), when a transfer is accepted, and when you resend it from an attendee or order page. Carries a link to download or manage that one ticket. The attendee on the ticket
Transfer sent When a customer transfers a ticket, asking the recipient to accept or decline. The recipient
Transfer confirmation When a transfer is started, confirming it went out. The sender
Transfer accepted When the recipient accepts the transfer. The sender
Transfer declined When the transfer is declined or canceled. The sender
Refund When an order is refunded. The buyer

The two ticket-delivery emails are easy to mix up, and they are not alternatives. The Order receipt is the only email the app sends when someone buys: one email per order, to the buyer, with every ticket in the order attached. It is off until you turn it on, so out of the box the app sends nothing at purchase. Customers get Shopify’s order confirmation and download their tickets from the order status page. The Ticket email is one email per ticket, to that ticket’s own attendee, and the purchase itself never triggers it. It goes out when something happens to the ticket: the attendee completes registration, a transfer is accepted, or you resend it. If your booking form collects attendee details during checkout, that registration completes with the order and the ticket email follows right after it. See Ticket delivery setup.

If your store sells more than tickets

These emails only ever fire for orders that contain event tickets.

The app picks up a Shopify order only when at least one line item is a ticket product it created. An order with no tickets in it — merch, gift cards, anything else you sell — is ignored completely. It never appears in the app, and none of the emails above are sent for it. The same is true of refunds: refunding a non-ticket line doesn’t produce a refund email from the app.

On a mixed cart, the app pulls in the ticket lines and ignores the rest. The buyer gets Shopify’s order confirmation covering the whole order, and the app’s emails covering the tickets.

Shopify’s own order confirmation email and SMS are unaffected either way. They are Shopify notifications, edited in your Shopify admin under Settings → Notifications. See Email and SMS receipts.

Change the wording store-wide

  1. In the Event Ticketing app, go to Settings.
  2. Under Emails, open System emails.
  3. Click the name of the email you want to change.

Each email opens an editor with a handful of text fields. Which fields depend on the email:

Email Editable fields
Order receipt Subject, Heading, Custom blurb
Ticket email Subject, Heading, Footer, Custom blurb
Transfer sent Subject, Intro, Detail, Footer, Custom blurb
Transfer confirmation Subject, Intro, Footer, Custom blurb
Transfer accepted Subject, Intro, Footer, Custom blurb
Transfer declined Subject, Heading, Intro, Detail, Custom blurb
Refund Subject, Heading, Custom blurb

Custom blurb is extra copy added into the body. Subject and Custom blurb accept Liquid merge fields; every other field is plain text.

Leave a field empty to use the app’s built-in wording, and clear a field you previously changed to go back to it. There is no default template to paste back, so nothing is lost by experimenting.

Use Send test on a row to mail yourself a copy before going live. The test builds a sample order or ticket, so the values are placeholders but the layout and your wording are real.

Merge fields

The variables available differ per email, because each one is rendered from a different record. The order receipt is rendered per order, so it reads {{ order.number }} and loops over order.tickets. The ticket email is rendered per ticket, so it reads {{ ticket.name }}. The transfer emails expose {{ first_name }} and a transfer group ({{ transfer.recipient.name }}, {{ transfer.sender.name }}; see Transfer fields), and the refund email exposes {{ reimbursement.total }}.

To see everything one email can reference, put the root variable on its own in the custom blurb — {{ order }} or {{ ticket }} — send yourself a test, and read the dump in the email you receive. A template written for one email will not render in another, since the roots differ.

Change the wording for one event

The steps above set the default for your whole store. To change an email for a single event:

  1. Open the event.
  2. Expand the Emails section.
  3. Click the ⋯ button on the email you want to change, and choose Customize wording.

You get the same fields, applied to that event only. The section’s badge reads Using defaults until you change something, then shows how many of the event’s emails have been customized, and each changed row is marked Customized.

Anything you don’t set on the event falls back to your store-wide wording, and anything you don’t set there falls back to the app’s built-in wording. Customizing one event never affects another.

Use your own template

If wording changes aren’t enough, you can design a whole email body yourself and assign it to one of the emails. Custom templates come with some plans. The Custom templates page names them if yours doesn’t include them.

  1. In the Event Ticketing app, go to Settings → Custom templates and click New template.
  2. Under Used for, pick the email the template is for.
  3. Write the body in the rich-text editor, or turn on Edit code to write your own HTML.
  4. In Settings → System emails, click Assign template on that email, and pick the template.

We review custom templates before they reach your customers. Until yours is approved, the app’s default email keeps sending and System emails shows a banner with a Request approval button.

Templates are made for one email

You choose what a template is for when you create it, and the Custom templates list shows it in the Type column. Assign template on an email offers only the templates made for that email. If there are none yet, System emails shows a Create a template for that email button, which starts a new template already set to it.

A template’s Used for setting is locked while the template is assigned to an email, and the editor names where it is used. Unassign it first to change the type. Without the Custom templates feature on your plan, you can’t make a template for a system email.

A rich-text template keeps every button the app adds to that email, placed below your content. If your rich-text template already includes all of that email’s action links itself, the app doesn’t add its button a second time.

A template written in Edit code sends exactly the HTML you write, so it has to include the action links itself. Without them the email is useless: a recipient with no Accept link can’t take the ticket, and the transfer sits pending. Each transfer email has a merge field for its link:

Email Link your Edit code template must include
Transfer sent {{ transfer.links.accept }} and {{ transfer.links.decline }}
Transfer confirmation {{ ticket.links.cancel_transfer }}
Transfer declined {{ ticket.links.transfer }}
Transfer accepted None. This email needs no link.

If you save an Edit code template for one of these emails without its required links, the code field shows an error naming the missing link and the save is refused. In the editor, the required links appear as chips at the front of the merge field row, so you can insert them at the cursor. If a template without them ever reaches a send, the app sends its default email instead, so a recipient is never left without a way to respond.

Here is a minimal Edit code template for Transfer sent:

<p>Hi {{ first_name }},</p>
<p>{{ transfer.sender.name }} sent you a ticket to {{ ticket.event.name }}.</p>
<p><a href="{{ transfer.links.accept }}">Accept the ticket</a></p>
<p><a href="{{ transfer.links.decline }}">Decline</a></p>

The Transfer declined link is empty when the ticket can’t be transferred again, so wrap it in an {% if %} and the button only shows when it works:

{% if ticket.links.transfer %}
  <p><a href="{{ ticket.links.transfer }}">Transfer the ticket again</a></p>
{% endif %}

Transfer fields

All four transfer emails expose the same transfer group:

Merge field What it holds
{{ transfer.recipient.name }} The name the sender entered for the recipient
{{ transfer.recipient.email }} The recipient’s email address
{{ transfer.sender.name }} The name on the ticket being transferred

The ticket’s type and event are on ticket: {{ ticket.ticket_type.name }} and {{ ticket.event.name }}.

What else ticket holds depends on the email. Transfer confirmation and Transfer declined expose the full ticket object (fields like {{ ticket.name }}, the same as in the ticket email). Transfer sent and Transfer accepted expose only ticket.ticket_type.name and ticket.event.name: the ticket isn’t the recipient’s until they accept, and once accepted it is no longer the sender’s.

{{ links.tickets }} links to a page that lists the ticket. It is available on Transfer confirmation and Transfer declined, and not on Transfer sent or Transfer accepted.

The order receipt and ticket email also have merge fields for their links, so an Edit code template can rebuild them: {{ ticket.links.pdf }}, {{ ticket.links.wallet }}, {{ ticket.links.google_wallet }}, {{ ticket.links.transfer }} and {{ ticket.links.edit }}, or the same fields on each item of order.tickets in the order receipt. Each one is empty when that option isn’t available for the ticket, so wrap it in {% if %}. These aren’t required.

Attachments don’t change

The template only controls the body. The order receipt and ticket email attach each ticket’s PDF and Apple Wallet pass whichever template they use. Google Wallet is a button, not an attachment, and doesn’t count toward the file limit. A ticket that still needs registration attaches once registration is complete, and an email that would carry more than 8 files sends none and adds a View tickets online button under your content instead.

Branding and sender

Logo, banner image, and accent color come from Settings → Brand, and apply to every email above. An event can carry its own banner, set in the same per-event editor.

The from name and reply-to address are store-wide, under Settings → Sender preferences. To send from your own domain rather than ours, see Custom sender email (DKIM/SPF).

FAQ

Does the app email customers when their ticket is checked in?

No. None of these emails is sent at check-in, and scanning a ticket doesn’t send anything to the customer. To email attendees when they’re scanned, see Shopify Flow triggers.

Will these emails go to customers who only buy merch?

No. The app only picks up orders containing a ticket product it created. An order without tickets never reaches the app, so none of these emails are sent for it.

What is the difference between the Order receipt and the Ticket email?

The Order receipt is the purchase email: one per order, to the buyer, with every ticket attached, sent once when the order is fulfilled. The Ticket email is not a purchase email. It is one per ticket, to that ticket’s attendee, with a link for that ticket, and it fires only when the attendee completes registration, when a transfer is accepted, or when you resend it.

By default, which emails does a customer get when they buy?

Only Shopify’s order confirmation. The Order receipt is off until you turn it on, and the purchase itself does not trigger the Ticket email. Customers download their tickets from the thank-you page and the order status page. Turn on the Order receipt to email the tickets as attachments as well.

My Order receipt row says it’s off.

Turning it on or off is store-wide, on the Order receipt row in Settings → System emails. It needs the Advanced plan or higher; on a lower plan it switches itself back off when your subscription is next verified. An event’s own Emails section has no on/off switch, only wording. See Order receipt email.

Can I reuse the same wording across several events?

Set it store-wide under Settings → System emails and every event inherits it, including events you create later. Per-event customization is exactly that: the fields you fill in on one event apply to that event only.

Can I edit the rest of the email, not just these fields?

Not in the per-event editor. The layout, buttons, and footer are fixed there. To design the whole body, assign a custom template. See Use your own template.

Yes. Use {{ transfer.links.accept }} and {{ transfer.links.decline }} in a Transfer sent template. The other transfer emails have {{ ticket.links.cancel_transfer }} and {{ ticket.links.transfer }}. An Edit code template has to include the links its email requires, and a rich-text template gets the app’s buttons automatically. See Action links in your own HTML.

Are tickets still attached when I use a custom template?

Yes. The template only changes the body, so the PDF and Apple Wallet attachments on the order receipt and ticket email are added whether the template is rich text or Edit code, and whether or not it contains any links. See Attachments don’t change.

Yes. In the Guest Manager dashboard, go to Settings → Company, open the Outgoing Emails tab, untick Show address in email footer, and save. It applies to all of these emails at once. Your company name stays in the footer.

I edited an email and nothing changed.

Check which level you edited. An event’s own wording overrides the store-wide wording for that event, so a store-wide change won’t show up on an event that has been customized. Open the event’s Emails section and look for the Customized badge on the row.

Do these replace Shopify’s order confirmation?

No. Shopify’s order confirmation and SMS still send as normal, and the app can’t edit them. These emails are in addition to it.