← All action domains

Templates

7 operations. Call each with POST https://app.chirply.io/api/v1/actions/<name> and a bearer token; the response is { "data": { "action", "summary", "result" } }. A read badge means the operation changes nothing; write requires the credential’s write scope.

Create a message template

templates.createwrite

Create a reusable SMS, email or ringless-voicemail template. Bodies may contain merge tokens like {{first_name}} or {{company.name}}, resolved per recipient at send time — call templates.list_merge_tokens for the full set. Creating a template sends nothing.

Parameters

FieldTypeRequiredDescription
kind"sms" | "email" | "rvm"requiredWhich channel this template is for.
namestringrequiredTemplate name. Must be unique within the channel.
subjectstringoptionalEmail subject line. Required for email.
bodystringoptionalSMS text, email body, or the spoken script for a text-to-speech voicemail. Required for sms, email and rvm/tts. An email body is PLAIN TEXT, not HTML — raw tags are escaped and arrive as visible characters. Blank lines start new paragraphs, and `[the words you see](https://where-they-go)` becomes an inline hyperlink.
rvm_kind"audio" | "tts"optionalFor rvm only: 'tts' reads a written script, 'audio' plays an uploaded recording.
voicestringoptionalFor rvm/tts: the voice that reads the script.
audio_base64stringoptionalFor rvm/audio: base64-encoded WAV audio. Required when creating an audio voicemail. WAV only — Twilio rejects m4a/aac/webm.

Example

curl -X POST https://app.chirply.io/api/v1/actions/templates.create \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "sms",
    "name": "Example"
  }'
Test with your API key

Over MCP the same operation is the tool templates_create at https://app.chirply.io/api/mcp, same bearer token, same input.

Delete a message template

templates.deletewriteconfirm

PERMANENTLY DESTROY a message template. This cannot be undone, and any campaign, automation or disposition still pointing at it loses its message content.

Marked confirm: this operation is irreversible, reaches real people, or spends money. Holding a credential is itself the confirmation for API and MCP callers — call it only when you mean it. The in-app assistant refuses to run it without a human approving first.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe template to delete.

Example

curl -X POST https://app.chirply.io/api/v1/actions/templates.delete \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool templates_delete at https://app.chirply.io/api/mcp, same bearer token, same input.

Open a message template

templates.getread

Fetch one message template with its subject, body and — for a recorded voicemail — the audio URL.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe template's id.

Example

curl -X POST https://app.chirply.io/api/v1/actions/templates.get \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool templates_get at https://app.chirply.io/api/mcp, same bearer token, same input.

List message templates

templates.listread

List the organization's reusable message templates — SMS bodies, email subject+body pairs, and ringless-voicemail scripts or recordings. These are what campaigns, automations, dispositions and bulk sends pick from.

Parameters

FieldTypeRequiredDescription
limitintegeroptionalMax rows to return (1–100). Default: 25
offsetintegeroptionalRows to skip. Default: 0
kind"sms" | "email" | "rvm"optionalOnly templates for this channel.
querystringoptionalText to match in the name, subject or body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/templates.list \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "limit": 25,
    "offset": 0
  }'
Test with your API key

Over MCP the same operation is the tool templates_list at https://app.chirply.io/api/mcp, same bearer token, same input.

List merge tokens

templates.list_merge_tokensread

List every merge token a template body can use — the built-in contact, company and address fields plus one entry per contact custom field this organization has defined. Use these exact spellings; an unknown {{token}} renders as an empty string.

Parameters

No parameters — POST an empty body.

Example

curl -X POST https://app.chirply.io/api/v1/actions/templates.list_merge_tokens \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{}'
Test with your API key

Over MCP the same operation is the tool templates_list_merge_tokens at https://app.chirply.io/api/mcp, same bearer token, same input.

Preview a template

templates.previewread

Render a template's subject and body with merge tokens resolved, either for a real contact or with the tokens left empty. Sends nothing — this is the preview shown in the template editor.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe template to preview.
contact_idstring (uuid)optionalRender with this contact's values. Omit to render tokens as empty.

Example

curl -X POST https://app.chirply.io/api/v1/actions/templates.preview \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool templates_preview at https://app.chirply.io/api/mcp, same bearer token, same input.

Edit a message template

templates.updatewrite

Update a message template's name, subject, body, voice or recording. Editing a template changes what every campaign, automation and disposition using it will send from now on; messages already sent are unaffected. Omitted fields are left alone.

Parameters

FieldTypeRequiredDescription
idstring (uuid)requiredThe template to edit.
namestringoptionalNew internal name for the template — what the team picks from in campaigns, automations and dispositions. Never shown to a recipient. Must stay unique within this channel. Omit to leave it alone.
subjectstringoptionalEmail subject line.
bodystringoptionalSMS text, email body, or voicemail script. An email body is PLAIN TEXT, not HTML — raw tags are escaped and arrive as visible characters. Blank lines start new paragraphs, and `[the words you see](https://where-they-go)` becomes an inline hyperlink.
rvm_kind"audio" | "tts"optionalFor rvm: switch between 'tts' and 'audio'.
voicestring (or null)optionalFor rvm/tts: the reading voice.
audio_base64stringoptionalFor rvm/audio: replacement base64-encoded WAV audio. Omit to keep the existing recording.

Example

curl -X POST https://app.chirply.io/api/v1/actions/templates.update \
  -H "Authorization: Bearer chp_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "2f6a1c1e-6c3b-4c62-9f6e-8a2d4b7c9e11"
  }'
Test with your API key

Over MCP the same operation is the tool templates_update at https://app.chirply.io/api/mcp, same bearer token, same input.

The machine-readable version of this page is GET https://app.chirply.io/api/v1/actions?domain=templates — same operations, with full JSON Schemas. Authentication, errors and rate limits are covered in the API documentation home.