Skip to content

Update templates

BetaAPI v2 is in public beta: endpoints, fields and behaviour can change before general availability. See the changelog

PATCH
/back_in_stock/templates/{key}
curl --request PATCH \
--url https://app.stoqapp.com/api/v2/external/back_in_stock/templates/example \
--header 'Content-Type: application/json' \
--header 'X-Auth-Token: <X-Auth-Token>' \
--data '{ "email": { "subject": "string", "preheader": "string", "heading": "string", "body": "string", "footer": "string", "button": { "text": "Preorder now", "destination": "checkout", "background_color": "#1A1A1A", "text_color": "#1A1A1A", "radius": 0 }, "colors": { "background": "string", "section": "string", "text": "Preorder now" }, "radius": 0, "css": "string", "html": { "enabled": true, "template": "string" }, "reviews": { "enabled": true, "count": 5, "min_rating": 5, "title": "string" }, "social": { "facebook": "string", "instagram": "string", "pinterest": "string", "twitter": "string", "tiktok": "string", "whatsapp": "string", "youtube": "string", "icon_color": "#FFFFFF" }, "unsubscribe_text": "Preorder now", "klaviyo_flow_name": "Summer Sneaker Drop" }, "sms": { "body": "string", "link_destination": "checkout", "klaviyo_flow_name": "Summer Sneaker Drop" }, "locale": "fr" }'

Update one back-in-stock notification’s email and SMS copy. key is “signup_thank_you”, “restock_alert” or “reminder”. The body is the GET shape: email{subject, preheader, heading, body, footer, button{…}, colors{…}, radius, css, html{enabled, template}, reviews{…}, social{…}, unsubscribe_text, klaviyo_flow_name} and sms{body, link_destination, klaviyo_flow_name}. An optional body locale (“fr”, “pt-BR”) writes the copy in that language only; omit it for the shop default. Colours, switches and other untranslated fields ignore it. Turning a notification on or off, and its timing, is PATCH /back_in_stock/notification_settings/:key.

Note: Deep partial: absent fields are unchanged; unknown or read-only keys are rejected (signup_thank_you has no email.button.destination or sms.link_destination). Errors are 422 keyed “template.”; nothing is saved when any field fails. Rejects HTML except in email.html.template and email.css, and runs Template validations and callbacks. Colours, corner radii and the Judge.me reviews block are shared by the restock alert and the reminder; social links, the icon colour and email.unsubscribe_text by every template of the shop.

key
required
string
Media typeapplication/json
object
email
object
subject

Subject of the email.

string
preheader

Pre-header – the preview line after the subject in the inbox.

string
heading

Heading at the top of the email body.

string
body

Description – the main body copy of the email.

string
footer

Footer line at the bottom of the email.

string
button
object
text

Button text on the email.

string
destination

“Take customer to”: where the email button lands, the checkout or the product page. Not on signup_thank_you.

string
Allowed values: checkout product
background_color

Button – Background colour of the email button. Hex.

string
/^#([0-9a-fA-F]{3,8})$/
text_color

Button – Text colour of the email button. Hex.

string
/^#([0-9a-fA-F]{3,8})$/
radius

Corner radius of the email button, in pixels. Saving it sets it on the restock alert and the reminder alike.

integer
colors
object
background

Colors – Background of the email. Hex, e.g. “#FFFFFF”.

string
/^#([0-9a-fA-F]{3,8})$/
section

Colors – Background of the content section of the email. Hex. Saving it sets it on the restock alert and the reminder alike.

string
/^#([0-9a-fA-F]{3,8})$/
text

Colors – Text colour of the email. Hex.

string
/^#([0-9a-fA-F]{3,8})$/
radius

Corner radius of the content section, in pixels. Saving it sets it on the restock alert and the reminder alike.

integer
css

Custom CSS added to the email. Applies to the standard email design. An empty string removes it.

string
html
object
enabled

The “Use HTML template” switch: true sends email.html.template, false the standard STOQ email.

boolean
template

The custom HTML email (Custom HTML tab). Sent instead of the standard email while email.html.enabled is true. Takes the same {{ }} variables as the editor. Paid plans only.

string
reviews
object
enabled

Show product reviews: adds the product’s Judge.me star rating and top reviews to the email. Paid plans only; shows only while Judge.me is connected (Settings > Integrations). Saving it sets it on the restock alert and the reminder alike.

boolean
count

Number of reviews to show in the Judge.me reviews block, 1 to 3. Saving it sets it on the restock alert and the reminder alike.

integer
>= 1 <= 3
min_rating

Only show reviews rated at least this many stars: 5, 4 or 3. Saving it sets it on the restock alert and the reminder alike.

integer
Allowed values: 5 4 3
title

Section title of the Judge.me reviews block, e.g. “What customers are saying”. Saving it sets it on the restock alert and the reminder alike.

string
social
object
facebook

Facebook profile URL, without the https:// prefix. Shows as an icon in the email. Saving it sets it on every notification template of the shop.

string
instagram

Instagram profile URL, without the https:// prefix. Saving it sets it on every notification template of the shop.

string
pinterest

Pinterest profile URL, without the https:// prefix. Saving it sets it on every notification template of the shop.

string
twitter

X (Twitter) profile URL, without the https:// prefix. Saving it sets it on every notification template of the shop.

string
tiktok

TikTok profile URL, without the https:// prefix. Saving it sets it on every notification template of the shop.

string
whatsapp

WhatsApp link, without the https:// prefix. Saving it sets it on every notification template of the shop.

string
youtube

YouTube channel URL, without the https:// prefix. Saving it sets it on every notification template of the shop.

string
icon_color

Icon Color of the social icons: white (#FFFFFF) or black (#000000). Saving it sets it on every notification template of the shop.

string
Allowed values: #FFFFFF #000000
unsubscribe_text

Text of the unsubscribe link at the bottom of the email. Saving it sets it on every notification template of the shop.

string
klaviyo_flow_name

Flow name to trigger in Klaviyo instead of sending the email here. Only used while the email platform is Klaviyo.

string
sms
object
body

SMS Body – the text message sent instead of the email.

string
link_destination

“Link takes customer to”: where the SMS link lands, the checkout or the product page. Not on signup_thank_you.

string
Allowed values: checkout product
klaviyo_flow_name

Flow name to trigger in Klaviyo instead of sending the SMS here. Only used while the SMS platform is Klaviyo.

string
locale

Language the translated fields are written in, such as ‘fr’ or ‘pt-BR’. Omitted: the shop’s default language. Untranslated fields ignore it.

string

Example

{
"email": {
"subject": "string",
"preheader": "string",
"heading": "string",
"body": "string",
"footer": "string",
"button": {
"text": "Preorder now",
"destination": "checkout",
"background_color": "#1A1A1A",
"text_color": "#1A1A1A",
"radius": 0
},
"colors": {
"background": "string",
"section": "string",
"text": "Preorder now"
},
"radius": 0,
"css": "string",
"html": {
"enabled": true,
"template": "string"
},
"reviews": {
"enabled": true,
"count": 5,
"min_rating": 5,
"title": "string"
},
"social": {
"facebook": "string",
"instagram": "string",
"pinterest": "string",
"twitter": "string",
"tiktok": "string",
"whatsapp": "string",
"youtube": "string",
"icon_color": "#FFFFFF"
},
"unsubscribe_text": "Preorder now",
"klaviyo_flow_name": "Summer Sneaker Drop"
},
"sms": {
"body": "string",
"link_destination": "checkout",
"klaviyo_flow_name": "Summer Sneaker Drop"
},
"locale": "fr"
}

Success — the updated resource.

Media typeapplication/json
object

Example generated

{}

Saved. Returns the updated section, with also_changed for cascades.

Media typeapplication/json
object

Example generated

{}

Missing or invalid X-Auth-Token.

Media typeapplication/json

Error envelope returned by every failed request.

object
errors
required
Array<string>

Example

{
"errors": [
"Unauthorized"
]
}

The resource does not exist for this shop, or the action path is not registered.

Media typeapplication/json

Error envelope returned by every failed request.

object
errors
required
Array<string>

Example

{
"errors": [
"Offer not found"
]
}

Invalid fields, keyed by canonical section paths. Nothing was saved.

Media typeapplication/json
object
errors
required
object
key
additional properties
Array<string>

Example generated

{
"errors": {
"additionalProperty": [
"example"
]
}
}

Rate limited — cost-weighted per token (read 1, write 2; 360 points / 60s). Check Retry-After.

Media typeapplication/json

Error envelope returned by every failed request.

object
errors
required
Array<string>

Example

{
"errors": [
"Rate limit exceeded"
]
}
Was this page helpful?

Still stuck? Ask Quinn or chat with support