Skip to main content
POST
/
api
/
templates
Create template
curl --request POST \
  --url https://your-instance.example.com/api/templates \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "Demo follow-up",
  "template": "Hi {{firstName}}, thanks for the demo today!",
  "type": "message",
  "category": "sales-followup"
}
'
{
  "success": true,
  "data": {
    "_id": "66a0a0b0c0d0e0f0a0b0c0d0",
    "name": "Demo follow-up",
    "template": "Hi {{firstName}}, thanks for the demo today!",
    "type": "message",
    "category": "sales-followup",
    "organizationId": "65a0e0e0e0e0e0e0e0e0e0e0",
    "createdBy": "65b1f0a2c3d4e5f6a7b8c9d0",
    "createdAt": "2026-04-12T08:00:00.000Z",
    "updatedAt": "2026-04-12T08:00:00.000Z"
  }
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
name
string
required

Template display name shown in the template picker.

template
string
required

Template body with {{firstName}}-style placeholders resolved at send time.

type
string
required

Template kind: sms, email, campaign, script, automation.

category
string

Grouping label for filtering; required unless type === "automation".

Response

Template created

success
enum<boolean>
required
Available options:
true
data
object
required

Mongoose Template document. category is omitted when type === "automation".

Example:
{
"_id": "66a0a0b0c0d0e0f0a0b0c0d0",
"name": "Demo follow-up",
"template": "Hi {{firstName}}, thanks for the demo today!",
"type": "message",
"category": "sales-followup",
"userId": "65b1f0a2c3d4e5f6a7b8c9d0",
"organizationId": "65a0e0e0e0e0e0e0e0e0e0e0",
"createdBy": "65b1f0a2c3d4e5f6a7b8c9d0",
"createdAt": "2026-04-12T08:00:00.000Z",
"updatedAt": "2026-04-12T08:00:00.000Z"
}