Eseményreferencia
Minden webhook eseménytípus és a pontos payload, amelyet a TicketWave küld.
Eseményreferencia
Végpontonként hat eseménytípusra lehet feliratkozni. Minden kérés ugyanazt az envelope-ot használja — event, timestamp, guild_id és data —, és csak a data objektum tér el.
| Event | Fires when |
|---|---|
ticket.created | Egy jegy megnyílik |
ticket.closed | Egy jegy lezárul |
ticket.updated | Bármilyen más változás történik egy nyitott jegyen |
message.sent | Egy tag vagy a staff ír egy jegybe |
blacklist.added | Egy tag feketelistára kerül |
blacklist.removed | Egy feketelista-bejegyzés eltávolításra kerül |
A nem feloldható mezők null értékként érkeznek, nem pedig kihagyásra kerülnek — így számíthatsz arra, hogy a kulcsok léteznek. A username értéke null, ha a Discord nem adta vissza a felhasználót.
Közös mezők
Minden jegyesemény ezeket tartalmazza:
| Field | Type | Description |
|---|---|---|
ticket_id | string | A mintád alapján olvasható jegyazonosító, pl. ticket-1042 |
ticket_num_id | number | A sorszámozott jegyszám, pl. 1042 |
channel_id | string | A jegy Discord csatornája |
category | string | null | Kategória neve, null, ha a jegynek nincs kategóriája |
user | object | null | A jegy tulajdonosa { id, username } formában |
ticket.created
Közvetlenül azután küldődik, hogy a jegycsatorna létrejött.
{
"event": "ticket.created",
"timestamp": "2026-08-26T08:23:11.000Z",
"guild_id": "123456789012345678",
"data": {
"ticket_id": "ticket-1042",
"ticket_num_id": 1042,
"channel_id": "998877665544332211",
"category": "🤖 Support",
"user": { "id": "987654321098765432", "username": "Luna" },
"created_at": "2026-08-26T08:23:11.000Z"
}
}Ez akkor váltódik ki, amikor a jegy megnyílik, vagyis még azelőtt, hogy a tag bármit is írt volna. Ha az első üzenetre van szükséged, figyeld a message.sent eseményt is.
ticket.closed
{
"event": "ticket.closed",
"timestamp": "2026-08-26T07:45:02.000Z",
"guild_id": "123456789012345678",
"data": {
"ticket_id": "ticket-1041",
"ticket_num_id": 1041,
"channel_id": "998877665544332211",
"category": "💸 Payment",
"user": { "id": "987654321098765432", "username": "Luna" },
"closed_by": { "id": "112233445566778899", "username": "Staff_01" },
"reason": "Issue resolved",
"closed_at": "2026-08-26T07:45:02.000Z"
}
}| Field | Type | Description |
|---|---|---|
closed_by | object | Ki zárta le. Az automatikus lezárásokat a bot jelenti |
reason | string | null | A lezárás oka, null, ha nem adtak meg ilyet |
ticket.updated
Az összesítő esemény a nyitott jegyen történt változásokhoz. Az action megmondja, mi változott, a changes pedig az adott művelet részleteit tartalmazza.
{
"event": "ticket.updated",
"timestamp": "2026-08-26T14:02:19.000Z",
"guild_id": "123456789012345678",
"data": {
"ticket_id": "ticket-1038",
"ticket_num_id": 1038,
"channel_id": "998877665544332211",
"category": "🤖 Support",
"user": { "id": "987654321098765432", "username": "Luna" },
"action": "ticket_priority:add",
"changes": { "priority": "high" },
"reason": null,
"updated_by": { "id": "112233445566778899", "username": "Staff_01" }
}
}Lehetséges action értékek
action | Meaning | changes contains |
|---|---|---|
ticket_claim:add | Egy staff tag lefoglalta a jegyet | (empty) |
ticket_unclaim:add | A lefoglalás megszűnt | (empty) |
ticket_priority:add | A prioritás megváltozott | priority |
ticket_rename:add | A csatornát átnevezték | new_name |
ticket_remind:add | Emlékeztetőt küldtek | (empty) |
ticket_feedback:add | A tag értékelte a jegyet | star_count, feedback |
ticket_schedule_close:add | Lezárást ütemeztek be | duration, schedule_time |
ticket_request_close:add | A staff megkérte a tagot, hogy zárja le | duration, request_duration_time |
ticket_request_close_accept:add | A tag elfogadta | (empty) |
ticket_request_close_deny:add | A tag elutasította | (empty) |
ticket_close_cancel:add | Egy folyamatban lévő lezárást megszakítottak | (empty) |
ticket_additional_access:add | Egy felhasználót vagy szerepkört hozzáadtak a jegyhez | entity_type, entity_id, reason |
ticket_additional_access:remove | Egy felhasználót vagy szerepkört eltávolítottak | entity_type, entity_id, reason |
Ezt a listát kezeld nyitott végűként. Ahogy a TicketWave fejlődik, új műveletek kerülnek hozzáadásra, és ezek ticket.updated formájában érkeznek. Inkább csak azokra az actionökre reagálj, amelyek érdekelnek, a többit pedig hagyd figyelmen kívül az ismeretlen értékek miatti hibák helyett.
Egy jegylépés megválaszolása nem generál eseményt. Különben egy sok lépésből álló jegy elárasztaná a végpontodat, miközben a tag még mindig tölti ki az űrlapot.
message.sent
Minden emberi üzenethez elküldődik egy nyitott jegyen belül. A botoktól érkező üzenetek — beleértve magát a TicketWave-et is — kimaradnak.
{
"event": "message.sent",
"timestamp": "2026-08-26T22:10:55.000Z",
"guild_id": "123456789012345678",
"data": {
"ticket_id": "ticket-1040",
"ticket_num_id": 1040,
"channel_id": "998877665544332211",
"message_id": "1234567890123456789",
"content": "Hello, how can I help you?",
"author": { "id": "112233445566778899", "username": "Staff_01" },
"is_staff": true,
"sent_at": "2026-08-26T22:10:55.000Z"
}
}| Field | Type | Description |
|---|---|---|
content | string | A nyers üzenetszöveg. Melléklet-only üzeneteknél üres |
author | object | A küldő { id, username } adatai |
is_staff | boolean | true, ha a küldőnek van beállított support szerepköre |
Ez messze a legnagyobb forgalmú esemény — egy forgalmas szerver minden üzenethez egy kérést generál. Csak akkor iratkozz fel rá, ha valóban szükséged van üzenetszintű adatokra, és gondoskodj róla, hogy a fogadó gyorsan válaszoljon.
blacklist.added
Nem kapcsolódik jegyhez, ezért ebben a payloadban nincs ticket_id.
{
"event": "blacklist.added",
"timestamp": "2026-08-26T18:33:47.000Z",
"guild_id": "123456789012345678",
"data": {
"user": { "id": "111223344556677889", "username": "BadActor" },
"reason": "Spam",
"added_by": { "id": "112233445566778899", "username": "Staff_01" }
}
}blacklist.removed
{
"event": "blacklist.removed",
"timestamp": "2026-08-26T18:40:12.000Z",
"guild_id": "123456789012345678",
"data": {
"user": { "id": "111223344556677889", "username": "BadActor" },
"removed_by": { "id": "112233445566778899", "username": "Staff_01" }
}
}Teszt események
A Send test event gomb egy valódi, aláírt kérést küld, რომლის data értéke csak ennyi:
{
"event": "ticket.created",
"timestamp": "2026-08-26T12:00:00.000Z",
"guild_id": "123456789012345678",
"data": { "test": true }
}Az event az első olyan típus, amelyre a végpont fel van iratkozva. Ellenőrizd a data.test mezőt, ha a tesztkézbesítéseket ki szeretnéd hagyni az éles logikából.
Következő lépések
- Example Server (Ezeknek a payloadoknak a kezelése Expressben)
- Webhooks (Aláírás, újrapróbálkozások és kézbesítési előzmények)
How is this guide?
