TicketWave Logo
Webhooks

Hendelsesreferanse

Hver webhook-hendelsestype og den nøyaktige payloaden TicketWave sender.

Hendelsesreferanse

Seks hendelsestyper kan abonneres på per endepunkt. Hver forespørsel bruker samme innpakning — event, timestamp, guild_id og data — og bare data-objektet er forskjellig.

EventUtløses når
ticket.createdEn ticket åpnes
ticket.closedEn ticket lukkes
ticket.updatedNoe annet endres på en åpen ticket
message.sentEt medlem eller en ansatt skriver i en ticket
blacklist.addedEt medlem blir svartelistet
blacklist.removedEn svartelisteoppføring fjernes

Felter som ikke kan løses opp sendes som null i stedet for å utelates — så du kan stole på at nøklene finnes. Et username er null når Discord ikke returnerte brukeren.

Delte felter

Hver ticket-hendelse inneholder disse:

FeltTypeBeskrivelse
ticket_idstringDen lesbare ticket-ID-en fra mønsteret ditt, f.eks. ticket-1042
ticket_num_idnumberDet løpende ticket-nummeret, f.eks. 1042
channel_idstringDiscord-kanalen for ticketen
categorystring | nullKategorinavn, null hvis ticketen ikke har noen
userobject | nullEieren av ticketen som { id, username }

ticket.created

Sendes rett etter at ticket-kanalen finnes.

{
  "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"
  }
}

Dette utløses når ticketen er åpnet, altså før medlemmet har skrevet noe som helst. Hvis du trenger den første meldingen, lytt også etter message.sent.


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"
  }
}
FeltTypeBeskrivelse
closed_byobjectHvem som lukket den. Automatiske lukkinger rapporterer boten
reasonstring | nullÅrsaken til lukking, null hvis ingen ble oppgitt

ticket.updated

Samlepunktet for endringer på en åpen ticket. action forteller deg hva som endret seg, changes inneholder detaljene for akkurat den handlingen.

{
  "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" }
  }
}

Mulige action-verdier

actionBetydningchanges inneholder
ticket_claim:addEt ansattmedlem gjorde krav på ticketen(tomt)
ticket_unclaim:addKravet ble frigitt(tomt)
ticket_priority:addPrioriteten ble endretpriority
ticket_rename:addKanalen ble gitt nytt navnnew_name
ticket_remind:addEn påminnelse ble sendt(tomt)
ticket_feedback:addMedlemmet vurderte ticketenstar_count, feedback
ticket_schedule_close:addEn lukking ble planlagtduration, schedule_time
ticket_request_close:addAnsatte ba medlemmet om å lukkeduration, request_duration_time
ticket_request_close_accept:addMedlemmet godtok(tomt)
ticket_request_close_deny:addMedlemmet avslo(tomt)
ticket_close_cancel:addEn pågående lukking ble avbrutt(tomt)
ticket_additional_access:addEn bruker eller rolle ble lagt til i ticketenentity_type, entity_id, reason
ticket_additional_access:removeEn bruker eller rolle ble fjernetentity_type, entity_id, reason

Se på denne listen som åpen. Nye handlinger legges til etter hvert som TicketWave vokser, og de kommer inn som ticket.updated. Håndter bare handlingene du bryr deg om, og ignorer resten i stedet for å kaste feil på ukjente verdier.

Å svare på et ticket-steg produserer ikke en hendelse. En ticket med mange steg ville ellers oversvømme endepunktet ditt mens medlemmet fortsatt fyller ut skjemaet.


message.sent

Sendes for hver menneskelige melding inne i en åpen ticket. Meldinger fra boter — inkludert TicketWave selv — hoppes over.

{
  "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"
  }
}
FeltTypeBeskrivelse
contentstringDen rå meldingsteksten. Tom for meldinger kun med vedlegg
authorobject{ id, username } til avsenderen
is_staffbooleantrue hvis avsenderen har en konfigurert supportrolle

Dette er hendelsen med klart høyest volum — en travel server produserer én forespørsel per melding. Abonner bare på den hvis du faktisk trenger meldingsnivådata, og sørg for at mottakeren svarer raskt.


blacklist.added

Ikke knyttet til en ticket, så denne payloaden har ingen 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" }
  }
}

Testhendelser

Knappen Send test event leverer en ekte, signert forespørsel, der data bare er:

{
  "event": "ticket.created",
  "timestamp": "2026-08-26T12:00:00.000Z",
  "guild_id": "123456789012345678",
  "data": { "test": true }
}

event er den første typen endepunktet er abonnert på. Sjekk data.test hvis du vil hoppe over testleveranser i produksjonslogikken.

Neste steg

How is this guide?