API za pozivnice ispitanika
Pozivnice ispitanika omogućuju vašim sustavima da poznate osobe pozovu na intervju. Izradite osobnu poveznicu za korisnika s pridruženom e-adresom ili ID-jem računa, pošaljite je kako god želite, a odgovori su od početka povezani s tim korisnikom.
Potrebni su vam paket Pro, Business ili Enterprise i API ključ. Ključeve i autentifikaciju opisuje Pregled API-ja.
Rezultate čitajte putem API-ja za razgovore: svaki razgovor sadrži svoj invite i identitete koje ste pridružili.
Ove su krajnje točke starije od ostatka API-ja i zadržavaju izvorne nazive: projekt nazivaju agentom (agentId) i koriste parametre u obliku camelCase.
Izrada pozivne poveznice#
POST /api/v1/respondent-invitesSvaki zahtjev izrađuje jednu poveznicu za jednog ispitanika u jednom projektu. Diaform odmah izrađuje i razgovor te mu pridružuje identitete koje pošaljete, pa su rezultati od početka povezani s tom osobom.
Tijelo zahtjeva#
| Polje | Vrsta | Obavezno | Pravila |
|---|---|---|---|
agentId | string | Da | ID projekta (UUID) u organizaciji ključa |
identities | array | Da | Od 1 do 10 stavki, po jedna za svaku vrstu. |
identities[].type | string | Da | Do 64 znaka: mala slova, brojke, _ i -, a počinje slovom ili brojkom. Velika slova pretvaraju se u mala. |
identities[].value | string | Da | Od 1 do 512 znakova nakon uklanjanja razmaka s rubova. Vrijednost email mora biti valjana e-adresa i sprema se malim slovima. |
organizationId | string | Ne | Ako ga pošaljete, mora odgovarati organizaciji ključa |
send_email | boolean | Ne | true šalje poveznicu e-poštom na identitet email pozivnice i jedan podsjetnik nakon 3 dana ako ispitanik ne završi. Zadano false. |
Kad pošaljete send_email, odgovor sadrži objekt email: { "status": "sent" }, { "status": "failed" } ili { "status": "skipped", "reason": "..." }. Pozivnica se izrađuje u svakom slučaju. Razlozi su no_email, unsubscribed, not_published, no_usage, monthly_limit (mjesečno ograničenje e-poruka s pozivnicama u vašem paketu je iskorišteno), answered, already_sent, in_progress, plan i not_found. Što e-poruka sadrži, pogledajte u članku Prepoznavanje ispitanika.
Uobičajene vrste su email, name, identifier, user_id i account_id. Radi svaka vrsta koja poštuje pravila.
Primjer#
curl -X POST "https://diaform.io/api/v1/respondent-invites" \
-H "Authorization: Bearer $DIAFORM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agentId": "b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d",
"identities": [
{ "type": "email", "value": "alex@acme.com" },
{ "type": "account_id", "value": "acct_4821" }
]
}'Odgovor#
{
"organization_id": "4d6ecdb4-8543-4adf-ae65-1f24106d5474",
"agent_id": "b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d",
"agent_name": "Onboarding interviews",
"invite": {
"id": "3a4f49c7-b8f4-4c44-8f74-fd8e4277c3e4",
"created_at": "2026-05-07T12:00:00.123456+00:00",
"status": "pending",
"opened_at": null,
"completed_at": null,
"conversation_id": "0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee",
"identities": [
{
"id": "71138f36-d16a-41f8-8a1f-65b9b8d483e3",
"created_at": "2026-05-07T12:00:00.123456+00:00",
"conversation_id": "0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee",
"source": "owner",
"identity_type": "email",
"value": "alex@acme.com",
"metadata": {}
},
{
"id": "120feee2-a10e-4b9a-af8e-a54d4dd672a1",
"created_at": "2026-05-07T12:00:00.123456+00:00",
"conversation_id": "0f8d43a2-6df9-49c8-bf5d-fd2b6ec2d9ee",
"source": "owner",
"identity_type": "account_id",
"value": "acct_4821",
"metadata": {}
}
],
"url": "https://acme.diaform.io/c/b8acb3ab-1f3d-4a7e-a846-b7f493f86b6d?invite=dia_resp_pCaJHykjUYBKZdkbVUtbyZRMC3yFzm246SK2K8lw"
}
}| Polje | Opis |
|---|---|
invite.id | ID pozivnice. Webhookovi ga šalju kao respondent.invite_id. |
invite.status | pending, opened ili completed |
invite.conversation_id | Razgovor izrađen za ovog ispitanika |
invite.identities | Identiteti koje ste poslali, svaki s source: "owner" |
invite.url | Poveznica koju šaljete. Koristi vašu potvrđenu vlastitu domenu ako je imate. null nakon što je pozivnica dovršena. |
Kako se poveznica ponaša#
- Izrađena. Pozivnica je
pending, a njezin razgovorinvited. - Otvorena. Kad ispitanik otvori poveznicu, oboje postaje
opened. Razgovor prelazi ustartedčim ispitanik odgovori. - Nastavljena. Ako ispitanik ode i vrati se istom poveznicom, nastavlja isti razgovor.
- Završena. Kad razgovor završi, bilo kao dovršen ili otkazan, pozivnica postaje
completedi poveznica prestaje raditi.
Projekt mora biti objavljen da bi se poveznica otvorila. Poveznice rade i za projekte s načinom Javna poveznica i za one s načinom Samo pozivne poveznice. Na javnim projektima i obična poveznica nastavlja raditi. Pogledajte Prepoznavanje ispitanika.
Starija krajnja točka za razgovore#
GET /api/v1/respondent-conversationsOva krajnja točka vraća popis razgovora projekta i još uvijek radi, pa postojeće integracije ne treba mijenjati. Za novi razvoj koristite Popis razgovora, koji dodaje filtre, transkripte i jednostavnije straničenje.
| Parametar | Obavezno | Opis |
|---|---|---|
agentId | Da | ID projekta |
limit | Ne | Od 1 do 100. Zadano 50. |
status | Ne | invited, opened, started, completed ili cancelled |
cursor | Ne | nextCursor.created_at s prethodne stranice |
cursorId | Ne | nextCursor.id s prethodne stranice |
Vraća conversations (svaki s conversation_id, created_at, status, respondent_email, metadata, identities, summary i invite) i nextCursor, objekt s created_at i id, ili null na zadnjoj stranici. Te dvije vrijednosti pošaljite natrag kao cursor i cursorId.
Kodirajte cursor za URL. Njegova vremenska oznaka sadrži +, koji se mora poslati kao %2B. Nekodirani + čita se kao razmak i zahtjev ne uspijeva uz 400. curl --data-urlencode i URLSearchParams kodiraju ga umjesto vas.
Pogreške#
Pogreške vraćaju JSON s porukom error i vrijednošću code, kao i u ostatku API-ja. Odgovor 400 sadrži i details.fieldErrors, koji navodi polje s pogreškom.
{
"error": "Invalid request",
"code": "invalid_request",
"details": {
"formErrors": [],
"fieldErrors": {
"identities": ["Add at least one respondent identity."]
}
}
}| Status | code | Uzrok |
|---|---|---|
400 | invalid_request | Polje ili parametar upita nedostaje ili nije ispravan |
401 | unauthorized | Zaglavlje Authorization nedostaje, nije u obliku Bearer dia_org_live_... ili je ključ opozvan |
403 | forbidden | Vaša organizacija nema paket Pro, Business ili Enterprise ili organizationId ne odgovara ključu |
404 | not_found | agentId nije projekt u organizaciji ključa |
500 | internal_error | Došlo je do pogreške na strani alata Diaform. Pokušajte ponovno. |
Ograničenja#
Ove dvije krajnje točke nemaju ograničenje broja zahtjeva. Svaka pozivnica prima najviše 10 identiteta (po jedan za svaku vrstu), a svaka organizacija može imati najviše 10 API ključeva.