Get an email template

Overview

Get an email type's current template for editing.

Use this to load it into your editor.

You'll need the company_id and the template type.

Returns the template content and settings: your saved version (override), what is actually sent (resolved) and the defaults (defaults). HTML regions are base64-encoded; subjects are plain text.

Prerequisites

  • A bearer token. See Authentication.
  • The account's id (company_id), with the email templates section turned on.
  • The email type, from List email types.

Base URL

EnvironmentURL
Productionhttps://production-api.shoutaboutus.com
Developmenthttps://development-api.shoutaboutus.com

Endpoint

POST /api/v1/account/white-label/email-templates/get

Authentication

Partner or Account token

  • company_id must be inside your own account tree. A Partner token can use any account under the partner; an Account token only its own account.
  • An account outside your tree, or one that doesn't exist, is rejected with 422.
  • The email templates section must be turned on for the account's partner (email_templates_enabled in Get branding). When it's off, every email template call for that account returns 403 with The email template section is disabled for this account.
  • Types managed centrally by the platform return 403 (This template is managed centrally and cannot be edited here.).

Rate limit

This endpoint has no rate limit.

Request parameters

None.

Request body

FieldTypeRequiredDescription
company_idintegerYesThe account. Must exist and be inside your account tree.
typestringYesThe email type, from List email types.

Request payload

{
  "company_id": 5994,
  "type": "user_welcome"
}

Response body

The payload is inside data. HTML regions are base64-encoded.

FieldTypeDescription
statusstringsuccess.
dataobjectThe template.
data.typestringThe email type.
data.overrideobjectYour saved content. Each field is null when you haven't saved it.
data.override.headerstring or nullSaved header (base64 HTML).
data.override.bodystring or nullSaved body (base64 HTML).
data.override.footerstring or nullSaved footer (base64 HTML).
data.override.signaturestring or nullSaved signature (base64 HTML).
data.override.subject_overridestring or nullSaved subject (plain text).
data.override.custom_htmlstring or nullSaved full-HTML body (base64).
data.template_modestringregions or html.
data.resolvedobjectWhat is sent: your content where saved, else the default.
data.resolved.headerstringHeader (base64 HTML; empty when there is none).
data.resolved.bodystringBody (base64 HTML).
data.resolved.footerstringFooter (base64 HTML; empty when there is none).
data.resolved.signaturestringSignature (base64 HTML).
data.resolved.subjectstringSubject (plain text, with merge fields).
data.is_enabledbooleanWhether it's sent.
data.show_logobooleanWhether the logo is shown.
data.delivery_methodstringdirect or webhook.
data.customizedbooleanWhether you have saved your own content or subject.
data.themeobjectTheme values used in the email.
data.theme.primary_colorstringThe partner's brand colour.
defaultsobjectThe default template.
defaults.headerstringDefault header (base64 HTML).
defaults.bodystringDefault body (base64 HTML).
defaults.footerstringDefault footer (base64 HTML).
defaults.signaturestringDefault signature (base64 HTML).
defaults.subjectstringDefault subject (plain text).
defaults.custom_htmlstringStarting point for html mode: the default header, body and signature together (base64 HTML).

Response payload

{
  "data": {
    "status": "success",
    "data": {
      "type": "user_welcome",
      "override": {
        "header": null,
        "body": "PHA+SGkgdGhlcmUsPC9wPg==",
        "footer": null,
        "signature": null,
        "subject_override": "Welcome aboard, [customerName]!",
        "custom_html": null
      },
      "template_mode": "regions",
      "resolved": {
        "header": "",
        "body": "PHA+SGkgdGhlcmUsPC9wPg==",
        "footer": "",
        "signature": "PHA+VGhhbmsgeW91LDxicj48c3Ryb25nPltwYXJ0bmVyVGl0bGVdPC9zdHJvbmc+PC9wPg==",
        "subject": "Welcome aboard, [customerName]!"
      },
      "is_enabled": true,
      "show_logo": true,
      "delivery_method": "direct",
      "customized": true,
      "theme": {
        "primary_color": "#1459c4"
      }
    },
    "defaults": {
      "header": "",
      "body": "PHA+SGkgdGhlcmUsPC9wPg==",
      "footer": "",
      "signature": "PHA+VGhhbmsgeW91LDxicj48c3Ryb25nPltwYXJ0bmVyVGl0bGVdPC9zdHJvbmc+PC9wPg==",
      "subject": "Welcome to [partnerTitle]",
      "custom_html": "PHA+SGkgdGhlcmUsPC9wPg=="
    }
  }
}

Examples

Success payload

See Response payload.

Error payload

403 Email templates section is off

{
  "message": "The email template section is disabled for this account.",
  "status": "error",
  "errors": []
}

403 Type managed centrally

{
  "message": "This template is managed centrally and cannot be edited here.",
  "status": "error",
  "errors": []
}

422 type is missing

{
  "message": "The type field is required.",
  "errors": {
    "type": [
      "The type field is required."
    ]
  }
}

422 type isn't a known email type

{
  "message": "The selected type is invalid.",
  "errors": {
    "type": [
      "The selected type is invalid."
    ]
  }
}

422 Account outside your tree

{
  "message": "The selected company id does not belong to your company hierarchy.",
  "errors": {
    "company_id": [
      "The selected company id does not belong to your company hierarchy."
    ]
  }
}
StatusMeaning
200The template.
401The token is missing, expired or invalid.
403The email templates section is off for this account, or the type is managed centrally.
422company_id or type is missing or invalid, or the account is outside your tree.
500Unexpected server error.

Example request

curl --request POST \
  --url "https://production-api.shoutaboutus.com/api/v1/account/white-label/email-templates/get" \
  --header 'Authorization: Bearer <bearer-token>' \
  --header 'Accept: application/json' \
  --header 'Content-Type: application/json' \
  --data '{"company_id": 5994, "type": "user_welcome"}'

Did this page help you?