Skip to main content
GET
Retrieve an interview draft

Authorizations

Authorization
string
header
required

Use Authorization: Bearer <token>. The token is either a user token / OAuth access token, or a service-account API key (cfk_...). A key is valid on every endpoint and acts as its service account, an organization member with per-store permissions. Refused keys answer 403 with Invalid API key., API key revoked., API key expired. or API key disabled..

Path Parameters

project_id
string<uuid>
required

UUID of the project

draft_id
string<uuid>
required

UUID of the interview draft

Response

Successful response

A saved, unsent interview-assignment payload. Becomes one interview per recipient when sent via the assign endpoint (with draft_id), which also deletes the draft.

name
string

The draft's title: generated from the topic at save time unless set by hand; empty when the draft has no topic and no custom name (clients show "Untitled draft interview").

topic
string

The interview focus. When set, a short title is generated from it unless the draft has a custom name.

interview_type
enum<string>
default:interview

Which conversation type the draft fans out to when sent. Set at creation (form type cards, or the scoping conversation's draft tool) and immutable afterwards — updates that change it are rejected (400).

Available options:
interview,
guided-interview
questions
string[]

Optional specific topics or questions (max 10). Rejected on guided-interview drafts — their topics structure the conversation.

topics
object[]

Guided drafts only (rejected otherwise): the ordered, editable topics the interview walks through (max 12). The scoping conversation's draft tool pre-seeds them from the standard guide.

assignee_ids
string<uuid>[]

UUIDs of project members to interview. May go stale; re-validated at send.

invite_emails
string<email>[]

Emails of people not yet on the project. Nobody is contacted until the draft is sent.

language
string | null

ISO language code (e.g. fr) the interviews created from this draft must be conducted in. Null (the default) adapts to each recipient's own preferred language. Unknown codes are rejected (400).

custom_message
string

Optional note replacing the default invitation email copy.

custom_focus
string | null

Overrides the "what it's about" focus block in invitation emails without changing the interview focus. Null (the default) shows the topic truncated to a teaser; empty string removes the block; text is shown verbatim.

Maximum string length: 500
artifacts
object[]

Knowledge-store artifacts whose content the interviewer gets in her prompt, each with whether the respondent can also open it. Empty (the default) means none — the interviewer then knows only the focus, topics and reference documents. Slugs are normalised (trimmed, lowercased, first pick kept); an unknown or out-of-scope slug is rejected (400). Resolved at interview time against the latest versions, so an artifact removed from scope later simply drops out. Replacing the list replaces the visibility too.

scheduled_send_at
string<date-time> | null
reminders_enabled
boolean
default:false
reminder_start_after_days
integer
default:2
Required range: 1 <= x <= 30
reminder_interval_days
integer
default:3
Required range: 1 <= x <= 30
reminder_max_count
integer
default:3
Required range: 1 <= x <= 10
id
string<uuid>
read-only
name_is_custom
boolean
read-only

True once the draft was named by hand; topic changes then keep its name.

assignee_emails
string<email>[]
read-only

Emails of the member recipients in assignee_ids, same order; ids that are no longer users are left out.

campaign
object | null

Campaign the interviews created from this draft will belong to; null when none. Set via campaign_id / campaign_name.

test_runs
object[]
read-only

This draft's test runs, newest first (see InterviewTestRun).

source_session
object | null

The Clara session that created a draft (provenance, SET_NULL on both ends). kind decides the route a client builds: clara_fast = in-process Work with Clara conversation (/agent/clara-fast?conversation_id=), cma = Managed-Agents Clara session (/agent/clara?session_id=), coach = any other coach conversation (e.g. scoping), recorded but not linked from the test page.

artifact_selection_warning
string | null
read-only

Warn-only guidance when the selected artifacts are large (about 200k characters in total); null otherwise. Never blocks.

created_by
string<uuid> | null
read-only
created_by_email
string<email> | null
read-only
created_at
string<date-time>
read-only
updated_at
string<date-time>
read-only