Webhookok
A webhookokkal a DinkyTask napi terv és beküldés eseményeit más rendszerekhez is ki tudod vezetni. Egy családhoz egy webhook végpontot állítasz be, és a DinkyTask automatikusan elküldi rá a támogatott eseményeket. A fogadó oldalon az event mező alapján tudod szétválasztani, mire reagáljon az automatizáció.
Mire jó?
- IFTTT Webhooks appletek triggereléséhez
- Node-RED, Make, Zapier vagy hasonló automatizáló folyamatok bekötéséhez
- saját backend, script vagy értesítési rendszer meghívásához
Hol lehet beállítani?
- Nyisd meg a Profil oldalt szülőként.
- Menj a Haladó beállítások részhez.
- Kapcsold be a webhookot.
- Add meg a cél URL-t.
- Válassz HTTP methodot: általában POST.
- Ha kell, add meg az auth fejléceket JSON-ben, például
{"Authorization":"Bearer ..."}vagy{"X-API-Key":"..."}.
A családi webhook egy közös végpontot használ: ha a webhook be van kapcsolva, minden támogatott esemény erre a végpontra érkezik.
Küldött események
plan.started— a napi terv elindult.plan.completed— az összes kötelező feladat sikerült, a terv teljesült.plan.failed— a terv nem teljesült, például kötelező feladat bukott, végleg kimaradt, vagy pending review nélkül lejárt.plan.expired— a terv ideje úgy járt le, hogy még volt szülői review-ra váró beadás; a terv technikai státusza ilyenkorreview_expired.submission.pending_review— egy beküldés szülői jóváhagyásra vár.submission.approved— egy beküldés elfogadásra került, akár automatikusan, akár szülő által.submission.rejected— egy beküldést elutasítottak.
HTTP kérés
- A beállított method lehet
POST,PUTvagyPATCH. - A payload JSON formátumban megy ki.
- Egy webhook hívás maximum 10 másodpercig vár válaszra.
- A DinkyTask naplózza a családhoz a hívás idejét, payloadját, válasz státuszát, időtartamát és sikerességét, hogy support esetén visszanézhető legyen.
- A webhook küldés aktív próbaidőhöz vagy prémium előfizetéshez kötött. Ha a jogosultság lejár, a mentett beállítás megmarad, de az eseményküldés inaktív lesz, amíg a jogosultság vissza nem tér.
Payload dokumentáció
A payload minden eseménynél ugyanazt az alapstruktúrát használja. Az event mező alapján tudod eldönteni, mire reagáljon az automatizáció.
Gyökér mezők
eventstring
Az esemény neve. Lehetséges értékek:plan.started,plan.completed,plan.failed,plan.expired,submission.pending_review,submission.approved,submission.rejected. Aplan.expireda szülői review miatt lejárt (review_expired) tervekre megy ki; sima sikertelen lejáratnálplan.failedérkezik.modelstring
Payload modellverzió, példáulplan_bound_v2.occurred_atstring / ISO dátum
Az esemény időpontja a szerver szerint.statusstring
A terv technikai státusza, példáulactive,completed,failed.display_statusstring
Gyerek/szülő felé mutatható állapot. Példáulpartial, ha a terv technikailag bukott, de volt sikeres kötelező feladat.scorenumber vagy null
Terv eseménynél a terv pontszáma, beküldés eseménynél az érintett beküldés pontszáma.automation_keystring vagy null
A terv opcionális automatizálási kulcsa. Ezt lehet Home Assistant, Node-RED vagy saját script routinghoz használni.child_namestring vagy null
Gyors elérésű gyereknév a payload gyökerén.plan_titlestring
Gyors elérésű tervnév a payload gyökerén.familyobject
A család adatai. Jelenleg biztosan tartalmazza azidmezőt.childobject
A gyerek adatai:id,name.planobject
A terv alapadatai:id,title,name,automation_key,date,status,start_at,end_at,ordered,score_pct.summaryobject
Összesített eredmények: teljesített kötelezők, összes kötelező, megszerzett ⭐/💎, pontszám és darabszámok.tasksarray
A terv összes feladata státusszal, sorrenddel és jutalommal.completed_tasksarray
A sikeres, jóváhagyott feladatok listája.failed_tasksarray
A sikertelen kötelező feladatok listája.taskobject
Beküldés eseményeknél az érintett feladat adatai.submissionobject
Beküldés eseményeknél az attempt/beküldés adatai:id,attempt_type,status,score_pct,submitted_at,reviewed_at.
summary mezők
required_completednumber
Hány kötelező feladat sikerült.required_totalnumber
Hány kötelező feladat volt a tervben.stars_earnednumber
Mennyi ⭐ csillagot szerzett a gyerek a jóváhagyott kötelező feladatokból.diamonds_earnednumber
Mennyi 💎 gyémántot szerzett a jóváhagyott szorgalmi feladatokból.score_pctnumber vagy null
A terv számított százalékos eredménye, ha elérhető.completed_countnumber
Összesen hány feladat lett jóváhagyva.failed_required_countnumber
Hány kötelező feladat nem jóváhagyott állapotban szerepel a payloadban.
tasks[] mezők
idstring
Feladat azonosító.titlestring
Feladat címe.typestring
Feladattípus, példáulquiz,matching,study,photo_proof,video,habit.positionnumber
Feladat helye a tervben.requiredboolean
Igaz, ha kötelező feladat.bonusboolean
Igaz, ha szorgalmi/bonusz feladat.statusstring vagy null
Legutóbbi beadás státusza, példáulapproved,rejected,pending_review, vagynull, ha még nincs beadás.attempt_countnumber
Hány beadási próbálkozás tartozik a feladathoz.latest_attempt_statusstring vagy null
A legutóbbi próbálkozás státusza, ha van.latest_attempt_nonumber vagy null
A legutóbbi próbálkozás sorszáma, ha van.scorenumber vagy null
Legutóbbi kiértékelés pontszáma, ha van.reward_currencystringstarkötelező feladatnál,diamondszorgalmi feladatnál.reward_pointsnumber
A feladatért járó pontos jutalomérték.
Teljes példa payload
{
"event": "plan.failed",
"model": "plan_bound_v2",
"occurred_at": "2026-04-30T18:30:00",
"status": "failed",
"display_status": "partial",
"score": 37.5,
"automation_key": "homework_done",
"child_name": "Misi",
"plan_title": "Misi plan 2026-04-30",
"family": {
"id": "80a4cdcd-cd23-431e-81de-ff474f915238"
},
"child": {
"id": "child-user-id",
"name": "Misi"
},
"plan": {
"id": "plan-id",
"title": "Misi plan 2026-04-30",
"name": "Misi plan 2026-04-30",
"automation_key": "homework_done",
"date": "2026-04-30",
"status": "failed",
"start_at": "2026-04-30T17:00:00",
"end_at": "2026-04-30T18:30:00",
"ordered": true,
"score_pct": 37.5
},
"summary": {
"required_completed": 1,
"required_total": 2,
"stars_earned": 3,
"diamonds_earned": 2,
"score_pct": 37.5,
"completed_count": 2,
"failed_required_count": 1
},
"tasks": [
{
"id": "task-id-1",
"title": "Rendrakás",
"type": "photo_proof",
"position": 0,
"required": true,
"bonus": false,
"status": "approved",
"attempt_count": 1,
"latest_attempt_status": "approved",
"latest_attempt_no": 1,
"score": 100,
"reward_currency": "star",
"reward_points": 3
},
{
"id": "task-id-2",
"title": "Matek kvíz",
"type": "quiz",
"position": 1,
"required": true,
"bonus": false,
"status": "rejected",
"attempt_count": 1,
"latest_attempt_status": "rejected",
"latest_attempt_no": 1,
"score": 40,
"reward_currency": "star",
"reward_points": 5
},
{
"id": "task-id-3",
"title": "Extra rajz",
"type": "photo_proof",
"position": 2,
"required": false,
"bonus": true,
"status": "approved",
"attempt_count": 1,
"latest_attempt_status": "approved",
"latest_attempt_no": 1,
"score": 100,
"reward_currency": "diamond",
"reward_points": 2
}
],
"completed_tasks": [
{
"id": "task-id-1",
"title": "Rendrakás",
"type": "photo_proof",
"position": 0,
"required": true,
"bonus": false,
"status": "approved",
"attempt_count": 1,
"latest_attempt_status": "approved",
"latest_attempt_no": 1,
"score": 100,
"reward_currency": "star",
"reward_points": 3
},
{
"id": "task-id-3",
"title": "Extra rajz",
"type": "photo_proof",
"position": 2,
"required": false,
"bonus": true,
"status": "approved",
"attempt_count": 1,
"latest_attempt_status": "approved",
"latest_attempt_no": 1,
"score": 100,
"reward_currency": "diamond",
"reward_points": 2
}
],
"failed_tasks": [
{
"id": "task-id-2",
"title": "Matek kvíz",
"type": "quiz",
"position": 1,
"required": true,
"bonus": false,
"status": "rejected",
"attempt_count": 1,
"latest_attempt_status": "rejected",
"latest_attempt_no": 1,
"score": 40,
"reward_currency": "star",
"reward_points": 5
}
]
} Biztonsági tipp
Webhook URL-t csak olyan rendszer felé adj meg, amit te kezelsz vagy megbízhatónak tartasz. Ha a fogadó oldal támogat titkos tokent, egyedi útvonalat vagy API kulcsot, érdemes használni.