# Dispatch Webhooks
Dispatch webhooks are a way to get notified when you update your system information on PluralKit. It can be used for integrations where you want to perform some action when you run a bot command on Discord, but also don't want to (or can't) set up a Discord bot to listen to messages.
You will need a publicly-accessible webserver that can receive and process JSON-formatted POST requests.
# Security
WARNING
On the internet, security is important! Don't skip this section.
To get dispatch events from PluralKit, you must set up a public HTTP endpoint. As such, anyone who knows the URL to the endpoint - not only PluralKit - can send POST requests and "pretend" to be PluralKit.
For this reason, when you register a webhook URL, PluralKit generates a secret token, and then includes it with every event sent to you in the signing_token key. If you receive an event with an invalid signing_token, you must stop processing the request and respond with a 401 status code.
PluralKit will send invalid requests to your endpoint, with PING event type, once in a while to confirm that you are correctly validating requests. If validation fails, or if requests to your endpoint are repeatedly unsuccessful, the endpoint will be removed.
# Dispatch Event Model
| key | type | description |
|---|---|---|
| type | string | event type |
| signing_token | string | the signing token for your webhook URL |
| system_id | string | the system ID associated with this event |
| id | string? | the ID of the entity referenced by the event (can be a system/member/group/switch/Discord user ID) |
| data | object? | event data |
# Dispatch Events
| name | description | content of data object | notes |
|---|---|---|---|
| PING | PluralKit is checking if your webhook URL is working. | null | Reply with a 200 status code if the signing_token is correct, or a 401 status code if it is invalid. |
| UPDATE_SYSTEM | your system was updated | system object only containing modififed keys | |
| UPDATE_SETTINGS | your bot settings were updated | system settings object only containing modified keys | |
| CREATE_MEMBER | a new member was created | member object only containing name key | new member ID can be found in the top-level id key` |
| UPDATE_MEMBER | a member was updated | member object only containing modified keys | member ID can be found in the top-level id key` |
| DELETE_MEMBER | a member was deleted | null | old member ID can be found in the top-level id key` |
| CREATE_GROUP | a new group was created | group object only containing name key | new group ID can be found in the top-level id key` |
| UPDATE_GROUP | a group was updated | group object only containing modified keys | group ID can be found in the top-level id key` |
| UPDATE_GROUP_MEMBERS | the member list of a group was updated | unknown | This event is currently non-functional |
| DELETE_GROUP | a group was deleted | null | old group ID can be found in the top-level id key` |
| LINK_ACCOUNT | a new Discord account was linked to your system | null | new account ID can be found in the top-level id key |
| UNLINK_ACCOUNT | a Discord account was unlinked from your system | null | old account ID can be found in the top-level id key |
| UPDATE_SYSTEM_GUILD | your system settings in a specific server were updated | system guild settings with only modified keys | |
| UPDATE_MEMBER_GUILD | the settings for a member in a specific server were updated | member guild settings with only modified keys | |
| CREATE_MESSAGE | a message was sent | message object | |
| CREATE_SWITCH | a new switch was logged | switch object | |
| UPDATE_SWITCH | a switch was updated | switch object with only modified keys | |
| DELETE_SWITCH | a switch was deleted | null | old switch ID can be found in top-level id key |
| DELETE_ALL_SWITCHES | your system's switches were bulk deleted | null | |
| SUCCESSFUL_IMPORT | some information was successfully imported through the pk;import command to your system | null | |
| UPDATE_AUTOPROXY | your system's autoproxy in a specific server and/or channel was updated | autoproxy settings with only modified keys |