Templates

Templates are reusable email layouts that separate design from content. Create a template once, then reference it when sending transactional emails or broadcasts. Templates support dynamic variables for personalisation.

Create a template

POST
/v1/templates

Create a new template in draft status.

Request body

ParameterTypeDescription
namerequiredstringInternal name for the template.
subjectrequiredstringDefault subject line. Supports template variables.
htmlrequiredstringHTML email body with template variables.
textstringPlain text version. Auto-generated from HTML if omitted.
cURL
curl -X POST https://api.txtly.com.au/v1/templates \\
  -H "Authorization: Bearer tx_your_api_key" \\
  -H "Content-Type: application/json" \\
  -d '{
    "name": "Welcome Email",
    "subject": "Welcome to {{company_name}}, {{first_name}}!",
    "html": "<h1>Welcome, {{first_name}}!</h1><p>Thanks for joining {{company_name}}.</p>"
  }'
Response — 201 Created
{
  "id": "tmpl_abc123",
  "name": "Welcome Email",
  "subject": "Welcome to {{company_name}}, {{first_name}}!",
  "status": "draft",
  "created_at": "2026-03-21T00:00:00Z"
}

List templates

GET
/v1/templates

List all templates for the current team.

Get a template

GET
/v1/templates/{id}

Retrieve a template by ID, including the full HTML and text content.

Update a template

PATCH
/v1/templates/{id}

Update a template. Only draft templates can be edited directly.

Delete a template

DELETE
/v1/templates/{id}

Delete a template. Templates in use by active workflows cannot be deleted.

Publish a template

POST
/v1/templates/{id}/publish

Publish a draft template, making it available for use in emails, broadcasts, and workflows.

Template status

ParameterTypeDescription
draftstatusTemplate is being edited. Cannot be used in emails or broadcasts.
publishedstatusTemplate is live and available for use. Edits create a new draft version.

Template variables

Use double curly braces to insert dynamic values into your templates. Variables are replaced at send time with contact properties or custom data passed in the API call.

ParameterTypeDescription
{{first_name}}variableContact first name.
{{last_name}}variableContact last name.
{{email}}variableContact email address.
{{unsubscribe_url}}variableOne-click unsubscribe link (auto-generated).
{{company_name}}variableYour team name from account settings.
{{custom.*}}variableAny custom property from the contact record or send-time data.

Using templates when sending

Reference a template by ID when sending an email. You can override the subject and pass additional variables:

{
  "from": "hello@yourdomain.com",
  "to": "user@example.com",
  "template_id": "tmpl_abc123",
  "data": {
    "first_name": "Alice",
    "company_name": "Acme Inc"
  }
}