Skip to main content

Comms templates (event emails)

Overview

Manage customizable email templates sent to attendees during the event registration lifecycle — confirmation, pending approval, approved, denied, etc. Templates are scoped to an organizing event under /event/{organizingEvent}/comms. Each template is identified by a template slug (e.g. registration_confirmation). Subscription: Pro plan required. Upgrade at https://app.animo.co/admin/settings/billing.

Available templates

TemplateValueWhen sent
Registration confirmationregistration_confirmationAfter registration (paid tickets, or types that don’t require approval)
Pending approvalpending_approvalAfter registration when approval is required
Registration approvedregistration_approvedWhen an organizer approves a pending order
Registration approved (failed payment)registration_approved_with_failed_paymentWhen approved but payment subsequently fails
Registration deniedregistration_deniedWhen an organizer rejects a pending order
Registration abandonedregistration_abandonedWhen a registrant abandons checkout
Templates marked as “private event” (pending_approval, registration_approved, registration_approved_with_failed_payment, registration_denied) are only listed when the event has at least one ticket type with approval_required: true. They can still be accessed individually via show regardless.

Template variables

Use these placeholders in subject and body. They are replaced at send time:
VariableDescription
{event}Event name
{first_name}Attendee first name
{last_name}Attendee last name
{email}Attendee email
{ticket_type}Ticket type name
{order_url}Link to the order page
{order_button}Styled button linking to the order page

Default vs custom templates

  • is_default: true — no custom override saved; subject and body reflect the system default for the event’s locale
  • is_default: false — a custom override exists in the database
DELETE resets a template back to the system default.

Endpoints

List comms templates

  • Method: GET
  • Path: /api/v1/{company}/event/{organizingEvent}/comms
  • Scope: events:read
  • Subscription: Pro plan (USE_API)
Returns all applicable templates for the event, merging saved overrides with defaults.

Response 200

{
  "data": [
    {
      "template": "registration_confirmation",
      "subject": "🎫 Your registration for {event} has been confirmed!",
      "body": "<p>Hi {first_name},</p><p>You're registered for {event}.</p>",
      "is_default": true
    },
    {
      "template": "pending_approval",
      "subject": "⏳ Registration pending approval for {event}",
      "body": "<p>Hi {first_name}, your registration is being reviewed.</p>",
      "is_default": false
    }
  ]
}

Response fields

FieldTypeDescription
templatestringTemplate identifier — use as {template} path param
subjectstringEmail subject line (may contain variables)
bodystringEmail HTML body (may contain variables)
is_defaultbooleantrue if using system default, false if customized

Show comms template

  • Method: GET
  • Path: /api/v1/{company}/event/{organizingEvent}/comms/{template}
  • Scope: events:read
  • Subscription: Pro plan (USE_API)

Path parameters

NameTypeDescription
templatestringTemplate value, e.g. registration_confirmation

Response 200

Single MessageResource in data envelope.

Errors

StatusWhen
404Unknown template value

Update comms template

  • Method: PATCH
  • Path: /api/v1/{company}/event/{organizingEvent}/comms/{template}
  • Scope: events:update
  • Subscription: Pro plan (USE_API)
Creates a custom override if none exists, or updates the existing one.

Request body

See the request body table below for field requirements. At least one of subject or body is required.
{
  "subject": "🎫 You're in! {event}",
  "body": "<p>Hi {first_name},</p><p>Your spot at {event} is confirmed.</p><p>{order_button}</p>"
}
FieldRequiredDescription
subjectOne of subject/bodyEmail subject (max 255 chars)
bodyOne of subject/bodyEmail HTML body

Response 200

Returns the updated MessageResource with is_default: false.

Reset comms template

  • Method: DELETE
  • Path: /api/v1/{company}/event/{organizingEvent}/comms/{template}
  • Scope: events:update
  • Subscription: Pro plan (USE_API)
Removes the custom override. The template reverts to the system default on next show or index.

Response 200

{
  "status": "Deleted"
}