Import an external interview transcript
Import the transcript of an interview recorded outside the platform (e.g. a Granola/Teams/Zoom export). Admin only.
Creates a read-only interview (type “imported-interview”) holding the raw text
and enqueues an async parse that turns it into speaker-labeled chat_history
messages (each carrying a speaker name) plus inferred metadata. The response
returns immediately with import_info.import_status = "parsing"; poll the
interview detail endpoint until it is “ready” (status becomes “completed”)
before reading the transcript. All metadata fields are optional — anything
omitted is inferred from the transcript; importer-supplied values always win.
Authorizations
Use Authorization: Bearer
Path Parameters
UUID of the project
Body
Response
Interview created; parsing in progress
A structured interview conversation, including its full transcript.
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 mono-topic), "guided-interview"
(a multi-topic deep-dive whose ordered topics come from the sent draft or
assign payload; its focus text lives in
type_additional_parameters.interview_focus), 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.
Files uploaded during this interview (ordered by upload time). Only the id and name are included; resolve a fresh signed download URL via the project-level local-documents detail endpoint.
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.
Invitation-email customization and reminder schedule for an assigned interview. Null for self-assigned interviews, non-interview conversations, and interviews created before this feature existed.
The seeded interview topic and optional specific questions, for rendering the
in-chat intro card. Null for non-interviews and interviews without a topic.
For guided interviews this is read from
type_additional_parameters.interview_focus (they have no focus issue).
Guided interviews only: the ordered topic agenda seeded at send time, with per-topic progress. Empty for every other interview type.
Campaign this interview belongs to; null for ad hoc interviews.
True while the requesting user has never started an assigned interview in this project. Drives the intro card's expanded "how it works" explainer.
Parse-pipeline state of an imported external transcript (interviews of type
"imported-interview"). Null on every other interview type. The raw pasted
transcript is never returned — the parsed chat_history is the transcript.
Background-generated summary of the conversation ("" until generated).
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 Simplified interview: when true the invite opens the distraction-free full-page chat (/interview//) instead of the app. Set at assign time; never changed afterwards.