Konversations-API
En konversation är en intervju mellan AI:n och en respondent. API:t returnerar vem respondenten är, AI-sammanfattningen med ett svar per fråga och hela transkriptionen. Läs mer om autentisering, paginering och fel under API-översikt.
Lista konversationer#
HTTP
GET /api/v1/projects/{project_id}/conversationsReturnerar ett projekts konversationer, de nyaste först, var och en med sin AI-sammanfattning. Transkriptioner ingår inte i listan. Du hämtar dem med Hämta en konversation.
Frågeparametrar#
| Parameter | Beskrivning |
|---|---|
status | En eller flera av invited, opened, started, completed, cancelled, avgränsade med kommatecken. Utan parametern returneras alla statusar utom invited. |
sentiment | En eller flera av positive, negative, neutral, mixed, avgränsade med kommatecken |
created_after | Bara konversationer som skapades vid eller efter den här ISO 8601-tidpunkten, till exempel 2026-05-01T00:00:00Z |
created_before | Bara konversationer som skapades vid eller före den här tidpunkten |
search | Text att söka efter i sammanfattningar, citat och uppgifter om respondenten. Upp till 200 tecken. |
limit | 1 till 100. Standard 25. |
cursor | next_cursor från föregående sida |
Bara slutförda konversationer har en fullständig sammanfattning, så de flesta integrationer skickar status=completed.
Exempel#
curl -G "https://diaform.io/api/v1/projects/b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d/conversations" \
-H "Authorization: Bearer $DIAFORM_API_KEY" \
--data-urlencode "status=completed" \
--data-urlencode "sentiment=negative,mixed" \
--data-urlencode "created_after=2026-05-01T00:00:00Z" \
--data-urlencode "limit=50"Svar#
JSON
{
"data": [
{
"id": "0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee",
"project_id": "b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d",
"status": "completed",
"created_at": "2026-05-07T12:00:00.123456+00:00",
"started_at": "2026-05-07T12:01:11.482913+00:00",
"ended_at": "2026-05-07T12:15:41.204+00:00",
"duration_seconds": 870,
"country": "DE",
"overall_sentiment": "mixed",
"respondent": {
"label": "alex@acme.com",
"email": null,
"identities": [
{ "type": "email", "value": "alex@acme.com", "source": "owner" },
{ "type": "name", "value": "Alex", "source": "ai" }
]
},
"metadata": {},
"invite": {
"id": "3a4f49c7-b8f4-4c44-8f74-fd8e4277c3e4",
"status": "completed",
"created_at": "2026-05-07T12:00:00.123456+00:00",
"opened_at": "2026-05-07T12:01:11.482913+00:00",
"completed_at": "2026-05-07T12:15:41.204+00:00"
},
"summary": {
"overall_sentiment": "mixed",
"answers": [
{
"question_id": "V1StGXR8_Z5jdHi6B-myT",
"question": "How did your first week with the product go?",
"summary": "Setup was quick, but inviting teammates was confusing.",
"sentiment": "mixed",
"confidence": "high",
"quotes": ["I had no idea where the invite button was"]
}
],
"urgent_issues": [],
"additional_insights": "Would pay more for a Slack integration."
}
}
],
"has_more": true,
"next_cursor": "WyIyMDI2LTA1LTA3VDEyOjAwOjAwLjEyMzQ1NiswMDowMCIsIjBmOGQ0M2EyIl0"
}Fält för konversationer#
| Fält | Typ | Beskrivning |
|---|---|---|
id | string | Konversationens ID, samma som webhooks skickar som conversation_id |
project_id | string | Projektet som konversationen hör till |
status | string | invited, opened, started, completed eller cancelled. Dashboarden visar started som Pågår. |
created_at | string | När konversationen skapades. För inbjudningar är det när inbjudan skapades. |
started_at | string eller null | När intervjun startade |
ended_at | string eller null | När konversationen slutfördes eller avbröts |
duration_seconds | number eller null | Tid från start till slut |
country | string eller null | Respondentens landskod, om den är känd |
overall_sentiment | string eller null | positive, negative, neutral eller mixed. Samma som summary.overall_sentiment. |
respondent.label | string eller null | Det bästa namnet på respondenten: i första hand e-postadressen, sedan namnet, sedan en annan identitet |
respondent.email | string eller null | Äldre fält, null för nya konversationer. Läs e-postadresser från respondent.identities. |
respondent.identities | array | Allt som är känt om respondenten. source är owner (du angav den), ai (hämtad ur respondentens meddelanden) eller system (tillagd av Diaform). |
metadata | object | Tomt för inbjudningar och direktlänkar. För inbäddade konversationer innehåller det uppgifter om inbäddningen, som "embed": true och embed_parent_origin. |
invite | object eller null | Uppgifter om inbjudan när konversationen kom från en respondentinbjudan, annars null |
summary | object eller null | AI-sammanfattningen. null tills konversationen är slut och sammanfattningen är klar. |
Fält i sammanfattningen#
| Fält | Typ | Beskrivning |
|---|---|---|
overall_sentiment | string | positive, negative, neutral eller mixed |
answers | array | En post per fråga som respondenten fick |
answers[].question_id | string | Frågans ID i projektet |
answers[].question | string | Frågan som den ställdes |
answers[].summary | string | Kort sammanfattning av svaret |
answers[].sentiment | string | positive, negative, neutral eller mixed |
answers[].confidence | string | high, medium eller low: hur fullständigt frågan besvarades |
answers[].quotes | array | Citat som sticker ut, med respondentens egna ord. Ofta tom. |
urgent_issues | array | Kritiska problem som respondenten tog upp, som korta strängar |
additional_insights | string eller null | Användbar feedback som inte hörde till någon fråga |
Hämta en konversation#
HTTP
GET /api/v1/conversations/{conversation_id}Returnerar en konversation med alla fält från listan, plus transkriptionen i messages.
Exempel#
curl "https://diaform.io/api/v1/conversations/0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee" \
-H "Authorization: Bearer $DIAFORM_API_KEY"Svar#
Fälten som är gemensamma med listan är förkortade här.
JSON
{
"id": "0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee",
"project_id": "b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d",
"status": "completed",
"overall_sentiment": "mixed",
"summary": {},
"messages": [
{
"role": "interviewer",
"text": "Hi! Thanks for taking the time. How did your first week with the product go?"
},
{
"role": "respondent",
"text": "Setup was fast. But I had no idea where the invite button was."
},
{
"role": "interviewer",
"text": "Where did you expect to find it?"
}
]
}| Fält | Typ | Beskrivning |
|---|---|---|
messages | array | Transkriptionen i ordning. Tom när respondenten aldrig svarade. |
messages[].role | string | interviewer (AI:n) eller respondent |
messages[].text | string | Det som sades. Talade svar visas som transkriberad text, och ett val eller betyg som text, till exempel Selected answers: Pro. |