Create and assign interviews
Create and assign one interview per assignee. Admin only.
Provide existing project members via assignee_ids and/or new people to
invite via invite_emails (at least one is required). Invitees are added
as non-admin Contributors. A separate interview is created for each
assignee and the response is the list of created interviews.
write_scope defaults to local. A global write scope requires every
assignee to already be a project admin and cannot be combined with
invite_emails.
campaign_id / campaign_name group the created interviews under an
interview campaign (e.g. a workshop wave). campaign_id picks an existing
campaign of the project; campaign_name reuses the project’s campaign
with that name (case-insensitive) or creates it.
Authorizations
Use Authorization: Bearer
Path Parameters
UUID of the project
Body
UUIDs of existing project members to interview (must be tech/contributor members).
Email addresses of people to invite on the fly as non-admin Contributors and assign an interview.
The interview focus. Used to auto-name the interview and seed its first question.
Whether interview edits stay local to the conversation or write to the shared knowledge store.
local, global Existing campaign to group the created interviews under (must belong
to the project). Wins over campaign_name when both are sent.
Campaign to group the created interviews under, by name: reuses the project's campaign with that name (case-insensitive) or creates it.
Response
Interviews created and assigned
Interview title (auto-generated from the topic when not provided).
UUID of the user who created the interview.
Email of the user who created the interview (the importer, for imported interviews).
Conversation type: "interview" (standard), "guided-interview" (multi-topic), or "imported-interview" (a read-only transcript of an interview recorded outside the platform, created via the import-transcript endpoint).
Free-form parameters associated with the conversation type.
Ordered list of transcript entries (messages, tool calls, etc.).
Assistant memory state accumulated over the conversation.
UUIDs of documents scoped locally to this interview.
UUID of the assigned user (null while a pending invite has not yet joined).
UUID of the user who created the assignment.
Assignee email, falling back to the invite email for not-yet-joined invitees.
True when assigned to someone who has not yet joined the project.
Guided interviews only: the ordered topic agenda seeded at assign time, with per-topic progress. Empty for every other interview type.
Campaign this interview belongs to; null for ad hoc interviews.
Parse-pipeline state of an imported external transcript (interviews of type
"imported-interview"). Null on every other interview type. The raw submitted
transcript is never returned — the parsed chat_history is the transcript.
Null for imported interviews until their transcript parse completes.
pending, in_progress, completed Whether edits stay local to the conversation or write to the shared knowledge store.
local, global