API za razgovore
Razgovor je jedan intervju između AI-ja i jednog ispitanika. API vraća tko je ispitanik, AI sažetak s jednim odgovorom po pitanju i cijeli transkript. Autentifikaciju, straničenje i pogreške opisuje Pregled API-ja.
Popis razgovora#
HTTP
GET /api/v1/projects/{project_id}/conversationsVraća razgovore projekta, od najnovijeg, svaki s AI sažetkom. Transkripti nisu uključeni u popis. Dohvatite ih kako je opisano u odjeljku Dohvat razgovora.
Parametri upita#
| Parametar | Opis |
|---|---|
status | Jedna ili više vrijednosti invited, opened, started, completed, cancelled, odvojenih zarezima. Bez njega se vraćaju svi statusi osim invited. |
sentiment | Jedna ili više vrijednosti positive, negative, neutral, mixed, odvojenih zarezima |
created_after | Samo razgovori izrađeni u ovo vrijeme ili nakon njega, u formatu ISO 8601, npr. 2026-05-01T00:00:00Z |
created_before | Samo razgovori izrađeni u ovo vrijeme ili prije njega |
search | Tekst koji se traži u sažecima, citatima i podacima o ispitaniku. Do 200 znakova. |
limit | Od 1 do 100. Zadano 25. |
cursor | Vrijednost next_cursor s prethodne stranice |
Samo dovršeni razgovori imaju potpun sažetak, pa većina integracija šalje status=completed.
Primjer#
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"Odgovor#
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"
}Polja razgovora#
| Polje | Vrsta | Opis |
|---|---|---|
id | string | ID razgovora, isti onaj koji webhookovi šalju kao conversation_id |
project_id | string | Projekt kojem razgovor pripada |
status | string | invited, opened, started, completed ili cancelled. Nadzorna ploča prikazuje started kao U tijeku. |
created_at | string | Kada je razgovor izrađen. Za pozivnice je to trenutak izrade pozivnice. |
started_at | string ili null | Kada je intervju počeo |
ended_at | string ili null | Kada je razgovor dovršen ili otkazan |
duration_seconds | number ili null | Vrijeme od početka do kraja |
country | string ili null | Kôd države ispitanika, ako je poznat |
overall_sentiment | string ili null | positive, negative, neutral ili mixed. Isto kao summary.overall_sentiment. |
respondent.label | string ili null | Najbolji naziv za ispitanika: njegova e-adresa, zatim ime, zatim neki drugi identitet |
respondent.email | string ili null | Zastarjelo polje, null za nove razgovore. E-adrese čitajte iz respondent.identities. |
respondent.identities | array | Sve što se zna o ispitaniku. source je owner (vi ste ga dali), ai (izdvojen iz njegovih poruka) ili system (dodao ga je Diaform). |
metadata | object | Prazno za pozivnice i izravne poveznice. Za ugrađene razgovore sadrži podatke o ugradnji poput "embed": true i embed_parent_origin. |
invite | object ili null | Podaci o pozivnici kad je razgovor nastao iz pozivnice ispitanika, inače null |
summary | object ili null | AI sažetak. null dok razgovor ne završi i sažetak ne bude spreman. |
Polja sažetka#
| Polje | Vrsta | Opis |
|---|---|---|
overall_sentiment | string | positive, negative, neutral ili mixed |
answers | array | Jedan unos za svako pitanje postavljeno ispitaniku |
answers[].question_id | string | ID pitanja u projektu |
answers[].question | string | Pitanje kako je postavljeno |
answers[].summary | string | Kratak sažetak odgovora |
answers[].sentiment | string | positive, negative, neutral ili mixed |
answers[].confidence | string | high, medium ili low: koliko je potpuno odgovoreno na pitanje |
answers[].quotes | array | Istaknuti citati, vlastitim riječima ispitanika. Često prazno. |
urgent_issues | array | Kritični problemi koje je ispitanik iznio, kao kratki znakovni nizovi |
additional_insights | string ili null | Korisne povratne informacije koje se nisu uklapale ni u jedno pitanje |
Dohvat razgovora#
HTTP
GET /api/v1/conversations/{conversation_id}Vraća jedan razgovor sa svim poljima s popisa te transkriptom u messages.
Primjer#
curl "https://diaform.io/api/v1/conversations/0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee" \
-H "Authorization: Bearer $DIAFORM_API_KEY"Odgovor#
Polja zajednička s popisom ovdje su skraćena.
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?"
}
]
}| Polje | Vrsta | Opis |
|---|---|---|
messages | array | Transkript po redu. Prazno ako ispitanik nije nijednom odgovorio. |
messages[].role | string | interviewer (AI) ili respondent |
messages[].text | string | Što je rečeno. Izgovoreni odgovori prikazuju se kao transkripcija, a odabir ili ocjena kao tekst, npr. Selected answers: Pro. |