Skip to main content
POST
Mark one email the agent wrote for a contact Looks good

Authorizations

X-API-Key
string
header
required

Path Parameters

sequence_id
string<uuid>
required
step_id
string<uuid>
required

Query Parameters

record_id
string<uuid>
required
message_id
string<uuid> | null

The email on screen, as the step's preview answered it in message_id. Given, the mark is refused when the words saved for the contact are no longer those; left out, it marks whatever is saved now.

Response

Successful Response

body
string
required
in_thread
boolean
required
missing_columns
string[]
required
subject
string
required
agent_written
boolean
default:false

The agent wrote this for the contact. A preview is one draft; the real send is written fresh, unless approved.

approved
boolean
default:false

The words were marked Looks good, with the contact's thread on the AI writing tab or as this one email from the Builder, and still stand, so they are what sends. They stop standing, and the agent writes the step fresh, once the agent's writing or the contact's row changes.

is_sample
boolean
default:false
message_id
string<uuid> | null

The agent's message these words are, on an agent-written step: the sample on screen, or the one marked Looks good. The looks-good route takes it back as message_id, so a mark lands only on the words that were read.

pinned
boolean
default:false

The words are pinned for this contact by a person (their own edit) or by the approval queue, and send exactly as they are. A thread marked Looks good is approved instead.

sample_created_at
string<date-time> | null
sample_version
integer | null
sent
SentStepEmailReadSchema · object | null

The email this step already got out to this contact, as it went, when one did: what they received, whoever wrote it, rather than the words above. Set by the preview route; null when the step has not reached them.

spam_findings
SpamFindingReadSchema · object[]

The spam check and the placeholder scan, run on the agent's words for this contact. Always empty for a written step, whose text the composer's own check covers. Advice, never a refusal.

waiting_for_approval
boolean
default:false

This contact's message at this step waits for a person's approval on its Tasks card, where its words are changed, approved or rejected. Set by the preview route; false once the card is decided, or when the step never asked.

written
boolean
default:true

False only when the preview was asked to write nothing and nothing is written for this contact at this step yet: subject and body are empty.