API pre rozhovory
Rozhovor je jedno sedenie medzi AI a jedným respondentom. API vracia, kto je respondent, AI zhrnutie s jednou odpoveďou na každú otázku a celý prepis. Overenie, stránkovanie a chyby opisuje Prehľad API.
Zoznam rozhovorov#
HTTP
GET /api/v1/projects/{project_id}/conversationsVráti rozhovory projektu od najnovších, každý s AI zhrnutím. Prepisy v zozname nie sú. Získate ich cez Načítanie rozhovoru.
Parametre dopytu#
| Parameter | Popis |
|---|---|
status | Jedna alebo viac hodnôt invited, opened, started, completed, cancelled, oddelených čiarkami. Bez neho sa vrátia všetky stavy okrem invited. |
sentiment | Jedna alebo viac hodnôt positive, negative, neutral, mixed, oddelených čiarkami |
created_after | Len rozhovory vytvorené v tomto čase ISO 8601 alebo po ňom, napríklad 2026-05-01T00:00:00Z |
created_before | Len rozhovory vytvorené v tomto čase alebo pred ním |
search | Text, ktorý sa hľadá v zhrnutiach, citátoch a údajoch o respondentovi. Najviac 200 znakov. |
limit | 1 až 100. Predvolene 25. |
cursor | Hodnota next_cursor z predchádzajúcej stránky |
Úplné zhrnutie majú len dokončené rozhovory, preto väčšina integrácií posiela status=completed.
Príklad#
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"Odpoveď#
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"
}Polia rozhovoru#
| Pole | Typ | Popis |
|---|---|---|
id | string | ID rozhovoru, rovnaké, aké webhooky posielajú ako conversation_id |
project_id | string | Projekt, ku ktorému patrí |
status | string | invited, opened, started, completed alebo cancelled. Dashboard zobrazuje started ako Prebieha. |
created_at | string | Kedy bol rozhovor vytvorený. Pri pozvánkach je to čas vytvorenia pozvánky. |
started_at | string alebo null | Kedy sa rozhovor začal |
ended_at | string alebo null | Kedy bol rozhovor dokončený alebo zrušený |
duration_seconds | number alebo null | Čas od začiatku do konca |
country | string alebo null | Kód krajiny respondenta, ak je známy |
overall_sentiment | string alebo null | positive, negative, neutral alebo mixed. Rovnaké ako summary.overall_sentiment. |
respondent.label | string alebo null | Najlepšie označenie respondenta: e-mail, potom meno, potom iná identita |
respondent.email | string alebo null | Zastarané pole, pri nových rozhovoroch null. E-maily čítajte z respondent.identities. |
respondent.identities | array | Všetko, čo je o respondentovi známe. source je owner (dodali ste ho vy), ai (získané z jeho správ) alebo system (pridal Diaform). |
metadata | object | Pri pozvánkach a priamych odkazoch prázdne. Pri vložených rozhovoroch obsahuje údaje o vložení, napríklad "embed": true a embed_parent_origin. |
invite | object alebo null | Údaje o pozvánke, ak rozhovor vznikol z pozvánky respondenta, inak null |
summary | object alebo null | AI zhrnutie. null, kým sa rozhovor neskončí a zhrnutie nie je hotové. |
Polia zhrnutia#
| Pole | Typ | Popis |
|---|---|---|
overall_sentiment | string | positive, negative, neutral alebo mixed |
answers | array | Jedna položka pre každú otázku, ktorú respondent dostal |
answers[].question_id | string | ID otázky v projekte |
answers[].question | string | Otázka tak, ako bola položená |
answers[].summary | string | Krátke zhrnutie odpovede |
answers[].sentiment | string | positive, negative, neutral alebo mixed |
answers[].confidence | string | high, medium alebo low: ako úplne bola otázka zodpovedaná |
answers[].quotes | array | Zaujímavé citáty vlastnými slovami respondenta. Často prázdne. |
urgent_issues | array | Kritické problémy, ktoré respondent spomenul, ako krátke reťazce |
additional_insights | string alebo null | Užitočná spätná väzba, ktorá nepatrila k žiadnej otázke |
Načítanie rozhovoru#
HTTP
GET /api/v1/conversations/{conversation_id}Vráti jeden rozhovor so všetkými poľami zo zoznamu a navyše s prepisom v messages.
Príklad#
curl "https://diaform.io/api/v1/conversations/0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee" \
-H "Authorization: Bearer $DIAFORM_API_KEY"Odpoveď#
Polia spoločné so zoznamom sú tu skrátené.
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?"
}
]
}| Pole | Typ | Popis |
|---|---|---|
messages | array | Prepis v poradí správ. Prázdny, ak respondent vôbec neodpovedal. |
messages[].role | string | interviewer (AI) alebo respondent |
messages[].text | string | Čo zaznelo. Hovorené odpovede sú uvedené ako prepis reči a výber alebo hodnotenie ako text, napríklad Selected answers: Pro. |