Skip to content

What publishing the draft would change

POST
/api/v1/workspaces/{workspace}/transactional/templates/{template}/publish-preview
curl --request POST \
--url https://reputecast.example.com/api/v1/workspaces/acme-newsletter/transactional/templates/password-reset/publish-preview \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "makeOptional": [ { "default": "example", "name": "example" } ] }'

Permission: transactional:view

The diff since the live version, the breaking-change check against the calls of the last 7 days, the checks, test renders with each test data set and the last real call, and whether the workspace’s approval rule applies. makeOptional previews the recommended fix.

workspace
required

Workspace slug

string
/^[a-z0-9][a-z0-9-]{1,62}$/

Workspace slug

template
required

The template’s ID, such as password-reset, or its UUID

string
<= 64 characters

The template’s ID, such as password-reset, or its UUID

Media typeapplication/json
object
makeOptional
Array<object>
<= 50 items
object
default
required
string
<= 4000 characters
name
required
string
>= 1 characters <= 64 characters

Example generated

{
"makeOptional": [
{
"default": "example",
"name": "example"
}
]
}

OK

Media typeapplication/json
object
approval
required
object
approvers
required
Array<string>
reason
string
required
required
boolean
blocking
required
Array<string>
breaking
required
object
breaking
required
Array<object>
object
callsWithout
required
integer format: int64
name
required
string
suggestedDefault
required
string
type
required
string
calls
required

Calls to the template in the last 7 days

integer format: int64
summary
required
string
unused
required
Array<string>
canPublish
required
boolean
category
object
id
required
string
kind
required
string
Allowed values: essential optional
name
required
string
checks
required
object
blocks
required
integer format: int64
checks
required
Array<object>
object
detail
string
fixes
required
Array<object>
object
kind
required
string
Allowed values: declare_variable remove_variable make_optional add_test_value insert_footer set_alt minify edit_link replace_link move_to_body turn_off_tracking
label
required
string
path
Array<integer>
testData
string
value
string
variable
string
group
required
string
Allowed values: Content Links Compliance Subject Variables Test data Privacy Accessibility
id
required
string
line
integer format: int64
path
required
Array<integer>
severity
required
string
Allowed values: block warn info pass
testData
string
title
required
string
variable
string
where
string
Allowed values: subject preheader body text
clipBytes
required
integer format: int64
images
required
integer format: int64
links
required
integer format: int64
passed
required
integer format: int64
plainText
required
string
sizeBytes
required
integer format: int64
testData
required
Array<object>
object
at
string
defaults
required
Array<string>
missing
required
Array<string>
name
required
string
ok
required
boolean
problem
string
recipient
string
source
required
string
Allowed values: test_data last_call
subject
string
variables
required
object
undeclared
required
Array<object>
object
column
required
integer format: int64
line
required
integer format: int64
name
required
string
where
required
string
Allowed values: subject preheader body text
unused
required
Array<string>
used
required
Array<object>
object
column
required
integer format: int64
line
required
integer format: int64
name
required
string
where
required
string
Allowed values: subject preheader body text
verdict
required
string
Allowed values: ready warnings blocked
warnings
required
integer format: int64
diff
required
object
changed
required
boolean
content
required
Array<object>
object
kind
required
string
Allowed values: ctx add del
text
required
string
contentSummary
required
string
languages
Array<object>
object
change
required
string
Allowed values: added changed removed
language
required
string
name
required
string
preheader
object
after
required
string
before
required
string
settings
required
Array<string>
subject
object
after
required
string
before
required
string
variables
required
Array<object>
object
after
object
default
string
<= 4000 characters
description
string
<= 300 characters
name
required
string
>= 1 characters <= 64 characters /^[A-Za-z_][A-Za-z0-9_]*$/
required
required
boolean
sample
string
<= 4000 characters
sensitive
required

Never stored: logs and stored content show ••••••

boolean
type
required
string
Allowed values: text number boolean date url list object
before
object
default
string
<= 4000 characters
description
string
<= 300 characters
name
required
string
>= 1 characters <= 64 characters /^[A-Za-z_][A-Za-z0-9_]*$/
required
required
boolean
sample
string
<= 4000 characters
sensitive
required

Never stored: logs and stored content show ••••••

boolean
type
required
string
Allowed values: text number boolean date url list object
change
required
string
Allowed values: added removed changed
name
required
string
summary
required
string
draftRevision
required
integer format: int64
draftSavedAt
required
string format: date-time
draftSavedBy
required
string
key
required
string
languages
required
Array<object>
object
attention
required
integer format: int64
gets
required
string
getsName
required
string
language
required
string
name
required
string
status
required
string
Allowed values: source up_to_date outdated draft
liveBy
string
liveSince
string format: date-time
liveVersion
integer format: int64
name
required
string
nextVersion
required
integer format: int64
templateId
required
string
testRenders
required
Array<object>
object
at
string
defaults
required
Array<string>
missing
required
Array<string>
name
required
string
ok
required
boolean
problem
string
recipient
string
source
required
string
Allowed values: test_data last_call
subject
string

Example

{
"category": {
"kind": "essential"
},
"checks": {
"checks": [
{
"fixes": [
{
"kind": "declare_variable"
}
],
"group": "Content",
"id": "variables.undeclared",
"severity": "block",
"where": "subject"
}
],
"testData": [
{
"source": "test_data"
}
],
"variables": {
"undeclared": [
{
"where": "subject"
}
],
"used": [
{
"where": "subject"
}
]
},
"verdict": "ready"
},
"diff": {
"content": [
{
"kind": "ctx"
}
],
"languages": [
{
"change": "added"
}
],
"variables": [
{
"after": {
"name": "reset_url",
"type": "text"
},
"before": {
"name": "reset_url",
"type": "text"
},
"change": "added",
"summary": "date · required"
}
]
},
"languages": [
{
"status": "source"
}
],
"testRenders": [
{
"source": "test_data"
}
]
}

Error

Media typeapplication/problem+json
object
code

Stable error code, e.g. permission_denied

string
detail

A human-readable explanation specific to this occurrence of the problem.

string
errors

Optional list of individual error details

Array<object>
object
location

Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’

string
message

Error message text

string
value

The value at the given location

helpers

Members who hold the missing permission

Array<string>
instance

A URI reference that identifies the specific occurrence of the problem.

string format: uri
meta
object
key
additional properties
permission

The missing permission key

string
status

HTTP status code

integer format: int64
title

A short, human-readable summary of the problem type. This value should not change between occurrences of the error.

string
type

A URI reference to human-readable documentation for the error.

string format: uri
default: about:blank

Example

{
"detail": "Property foo is required but is missing.",
"instance": "https://example.com/error-log/abc123",
"status": 400,
"title": "Bad Request",
"type": "about:blank"
}