messages.templates
The shop's customer message templates, one per kind (invoice_reminder, quote_followup, review_request): the wording in use (custom or built-in), the placeholders each kind takes, and the locked link placeholder that must stay in the body. Owner or office only.
When to use it
The shop can set its own wording for the automatic customer emails: invoice reminders, quote follow-ups and review requests. Read messages.templates for the wording in use and the placeholders each kind takes.
What to tell the owner
Tell them what you found in plain words. Don't read back raw fields.
| Field | Type | Required |
|---|
shop_id | string (uuid) | yes |
Example
GET https://doingwork.work/v1/messages/templates?shop_id=00000000-0000-4000-8000-000000000000
Output
| Field | Type | Always there |
|---|
templates | array | yes |
templates[].kind | string | yes |
templates[].custom | boolean | yes |
templates[].subject | string | yes |
templates[].body | string | yes |
templates[].link_placeholder | string | yes |
templates[].placeholders | array | yes |
templates[].default_subject | string | yes |
templates[].default_body | string | yes |
templates[].updated_by | ['string', 'null', ' ', '(', 'u', 'u', 'i', 'd', ')'] | yes |
templates[].updated_at | ['string', 'null', ' ', '(', 'd', 'a', 't', 'e', '-', 't', 'i', 'm', 'e', ')'] | yes |
{
"templates": [
{
"kind": "...",
"custom": true,
"subject": "...",
"body": "...",
"link_placeholder": "...",
"placeholders": [
"..."
],
"default_subject": "...",
"default_body": "...",
"updated_by": "00000000-0000-4000-8000-000000000000",
"updated_at": "..."
}
]
}
Errors
| Code | Status | What to do |
|---|
invalid_input, invalid_token, rate_limited | | Can happen on any call. See errors. |