Skip to content

Email Templates ​

Templates are reusable email bodies that you can use in campaign email steps.

Variables ​

Write variables with double curly braces, for example {{first_name}}. They are replaced when an email is sent. You can use any contact field, such as first_name, last_name, email or company, as well as the keys of custom_fields.

The template object ​

json
{
  "id": 7,
  "name": "SaaS intro",
  "subject": "Quick question, {{first_name}}",
  "body": "<p>Hi {{first_name}}, ...</p>",
  "category": "prospection",
  "variables": ["first_name"],
  "is_library": false,
  "created_at": "...",
  "updated_at": "..."
}

category is one of prospection, follow-up, welcome, newsletter, promotional, transactional or other.

Endpoints ​

MethodPathPermissionDescription
GET/templatestemplates:readList templates (paginated). Query: search, category
POST/templatestemplates:writeCreate a template
GET/templates/{id}templates:readGet a template
PUT/templates/{id}templates:writeUpdate a template (partial)
DELETE/templates/{id}templates:writeDelete a template. Returns 204.
POST/templates/{id}/previewtemplates:readRender the template with a contact's data or with sample values
GET/templates/{id}/variablestemplates:readThe variables the template uses
POST/templates/{id}/duplicatetemplates:writeCopy a template

List templates ​

GET /templates returns only templates in the authenticated token's workspace.

ParameterTypeDefaultDescription
pageinteger1Page number, starting at 1
per_pageinteger15Results per page, from 1 to 100
searchstringPartial template name
categorystringOne of the template categories listed above
sortstringcreated_atname, subject, category, created_at or updated_at
directionstringdescasc or desc
http
GET /api/v1/templates?search=welcome&category=welcome&sort=name&direction=asc&page=2

The response follows the pagination contract. Equal sort values are ordered consistently by template ID.

Create a template ​

FieldTypeRules
namestringRequired. Max 255 characters
subjectstringRequired. Max 500 characters
bodystringRequired. HTML
categoryenumSee the list above
variablesarrayOptional list of variable names
is_librarybooleanSaves the template to your library

201: { "data": Template }

Preview ​

POST /templates/{id}/preview
json
{ "contact_id": 42 }

If you leave out contact_id, you can send variables instead, for example { "variables": { "first_name": "Alice" } }. With neither, the template is rendered with sample values (John Doe, Example Inc).

200: { "data": { "subject": "Quick question, Alice", "body": "<p>Hi Alice, ...</p>" } }

Variables ​

GET /templates/{id}/variables returns { "data": { "variables": ["first_name", "company"] } }.

Duplicate ​

POST /templates/{id}/duplicate accepts an optional name. Without one, the copy is named "<name> (Copy)".

201: { "data": Template }


Marketplace ​

The marketplace holds ready-made templates published by Beeving. Copying a marketplace template creates an ordinary template in your workspace.

MethodPathPermissionDescription
GET/marketplace/templatestemplates:readBrowse templates, featured and most popular first. Query: search, category, featured (1 or 0)
GET/marketplace/templates/{id}templates:readGet a marketplace template
POST/marketplace/templates/{id}/copytemplates:writeCopy it to your workspace. Accepts an optional name
GET/marketplace/packstemplates:readBrowse published template packs
GET/marketplace/packs/{id}templates:readGet a published pack

Marketplace listings are global and return published records only.

List marketplace templates ​

ParameterTypeDefaultDescription
pageinteger1Page number, starting at 1
per_pageinteger15Results per page, from 1 to 100
searchstringPartial name, subject or description
categorystringTemplate category
localestringfr or en
featuredbooleanFilter featured or non-featured records
sortstringdownloads_countname, category, locale, is_featured, downloads_count, created_at or updated_at
directionstringdescasc or desc

Without an explicit sort, featured templates appear first, then the most downloaded. Equal values are ordered by template ID.

http
GET /api/v1/marketplace/templates?search=agency&locale=en&featured=1&sort=downloads_count&direction=desc

List marketplace packs ​

ParameterTypeDefaultDescription
pageinteger1Page number, starting at 1
per_pageinteger15Results per page, from 1 to 100
searchstringPartial name, slug or description
localestringfr or en
featuredbooleanFilter featured or non-featured packs
sortstringdownloads_countslug, locale, name, is_featured, downloads_count, created_at or updated_at
directionstringdescasc or desc

Without an explicit sort, featured packs appear first, then the most downloaded. Only published templates are embedded in each pack. Equal values are ordered by pack ID.

http
GET /api/v1/marketplace/packs?search=outreach&locale=en&sort=name&direction=asc&per_page=10

Both list responses follow the pagination contract.

json
{
  "id": 3,
  "name": "Cold intro for agencies",
  "description": "...",
  "category": "prospection",
  "subject": "...",
  "body": "...",
  "variables": ["first_name", "company"],
  "is_featured": true,
  "is_published": true,
  "downloads_count": 1240,
  "created_at": "...",
  "updated_at": "..."
}

A successful copy returns 201: { "data": Template, "message": "Template copied successfully" }.

API v1.0