Rate a draft
Record the human verdict (good or bad) against the draft. Accepted in any status: judging a draft after approving or discarding it is exactly when the verdict is clearest.
Request
- Base URL: https://api.getoneprofile.ai (the document declares no server; this is the origin it was published from)
- URL: https://api.getoneprofile.ai/inbox-ai/drafts/{draft_id}/rate/
- Auth: one of:
- API key in header X-API-Key
- HTTP bearer
Path parameters
Request body
The human verdict on a drafted reply.
Two values, not five stars: a triaging human will click a thumb, not deliberate over a scale, and "good or bad" is all a feedback loop needs.
Response
Successful Response
Why a message that could have sent unattended was put in front of a person.
One vocabulary for every gate between an agent writing a message and the message leaving: what the agent itself said about the draft (LOW_CONFIDENCE, FINDINGS, INSUFFICIENT_DATA, POLICY), what the sender or the cadence asked for (ALWAYS_ASK, SEQUENCE_MANUAL, STEP_REQUIRES_APPROVAL), what the pacing rules refused (DAILY_CAP, CONSECUTIVE_CAP, THREAD_CAP, HOURLY_CAP, ORG_DAILY_CAP), what the mailbox or the thread made unsafe (UNVERIFIED_SENDER, DIFFERENT_SENDER, LABEL, QUESTION, STALE_INBOUND, SEQUENCE_GONE), and what the counterparty turned out to be (BOT_QUESTION, AUTOMATED_COUNTERPARTY, AUTHENTICATION, LANGUAGE, LINKEDIN_ONLY). KILL_SWITCH is the platform switch that stops unattended sending outright, and SEND_INTERRUPTED an unattended reply whose send never got as far as a provider. SENDER_SWITCHED_TO_MANUAL is a LinkedIn step queued unasked that went back to a person because its sender switched to manual before it ran.
Stored on the task so the queue can say why each row is there, and so "why did nothing send" is answerable by counting rows rather than by reading logs.
How sure the model is. Shown on the card; no band sends without a person.
The model's 0-100 calibration, clamped into the categorical band. Null for drafts that predate the field. Presentation only: every decision reads the categorical confidence.
The agent's message this reply came from, when a sequence's agent wrote it. Edits, ratings and the send are recorded against that message too, which is how the agent learns from them. Null on a reply written in the default voice for a conversation outside any sequence.
The human verdict on a drafted reply.
Two values, not five stars: a triaging human will click a thumb, not deliberate over a scale, and "good or bad" is all a feedback loop needs.
When a scheduled reply goes out on its own, unless a person discards or edits it first. Kept once the reply is sending or sent. Null on a reply that was never scheduled, and on one taken off the schedule, by a person editing it or by a check that held it back for a person (see ask_reason).
Who composed an outbound message: a person, or the product itself.
Only meaningful outbound, and NULL on anything inbound. The distinction exists because an agent-written reply has to stay attributable after the fact: "did a human send this" is the first question asked of any send that turns out to have been wrong, and a column is the only place that answer survives.
Where one drafted reply stands.
STALE is its own terminal state rather than a flavour of DISCARDED: "the prospect wrote again before anyone answered" and "a human said no" are different facts, and only the second one says anything about draft quality.
The send states past SCHEDULED exist for the same reason SEND_UNKNOWN does: once a draft can leave without a person watching, "we do not know" has to be a state of its own. Collapsing it into SEND_FAILED would have a retry send the same reply twice; collapsing it into SENT would lose a reply silently.
Changes
No recorded changes to this operation across all 1 revision of this API.