Skip to content
Docs menu

Email templates

Reusable email bodies. Mustache-style placeholders are filled in by the sender service at send time.

Templates are scoped by owner unless marked isShared. Folders are free-form strings, used for grouping in the UI.

POST/api/email-templatesBearer token

Create a template

Save a new template under the caller's account.

Required scopes:contacts.write

Request body

NameTypeDescription
namerequiredstringDisplay name. 1–200 chars.
subjectrequiredstringEmail subject. 1–200 chars.
bodyrequiredstringHTML or plaintext body. 1–50,000 chars.
folderstringFree-form folder label.
isSharedbooleanVisible to all users in the account.

Request body

JSON
{ "name": "Reminder", "subject": "See you tomorrow", "body": "Hi {{firstName}}…" }

Responses

  • 201 CreatedCreated.
    example
    {
      "id": "et_8q4w…",
      "name": "Appointment reminder — 24h",
      "subject": "See you tomorrow at {{appointmentTime}}",
      "body": "Hi {{firstName}},\n\nA quick reminder…",
      "folder": "Reminders",
      "isShared": true,
      "ownerId": "usr_8h2c3p…",
      "createdAt": "2026-05-18T14:00:00Z"
    }

Code samples

Shell
curl -X POST https://app.contactfollowup.com/api/email-templates \
  -H "Authorization: Bearer $HEARTHNOTE_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "name": "Reminder", "subject": "See you tomorrow", "body": "Hi {{firstName}}…" }'
GET/api/email-templatesBearer token

List templates

Templates the caller can see, optionally filtered to a folder.

Required scopes:contacts.read

Query parameters

NameTypeDescription
folderstringRestrict to a single folder.

Responses

  • 200 OKTemplates.
    example
    { "templates": [{
      "id": "et_8q4w…",
      "name": "Appointment reminder — 24h",
      "subject": "See you tomorrow at {{appointmentTime}}",
      "body": "Hi {{firstName}},\n\nA quick reminder…",
      "folder": "Reminders",
      "isShared": true,
      "ownerId": "usr_8h2c3p…",
      "createdAt": "2026-05-18T14:00:00Z"
    }] }

Code samples

Shell
curl -X GET https://app.contactfollowup.com/api/email-templates \
  -H "Authorization: Bearer $HEARTHNOTE_TOKEN" \
  -H "Content-Type: application/json"