Skip to main content
WEBHOOK
points.level_changed
{
  "type": "points.level_changed",
  "user": {
    "id": "user-id",
    "email": "user@example.com",
    "tz": "Europe/London",
    "subscribedToEmails": true,
    "created": "2021-01-01T00:00:00Z",
    "updated": "2021-01-01T00:00:00Z",
    "attributes": {
      "department": "engineering",
      "role": "developer"
    }
  },
  "points": {
    "id": "0040fe51-6bce-4b44-b0ad-bddc4e123534",
    "key": "xp",
    "name": "XP",
    "description": "Experience points",
    "badgeUrl": null,
    "maxPoints": null,
    "total": 100
  },
  "previousLevel": {
    "id": "1140fe51-6bce-4b44-b0ad-bddc4e123534",
    "key": "bronze",
    "name": "Bronze",
    "description": "Starting level",
    "badgeUrl": "https://example.com/bronze.png",
    "points": 0
  },
  "newLevel": {
    "id": "2240fe51-6bce-4b44-b0ad-bddc4e123534",
    "key": "silver",
    "name": "Silver",
    "description": "Mid-tier level",
    "badgeUrl": null,
    "points": 50
  }
}
This event fires when a user’s level changes within a points system because they earned or lost points. It is separate from points.changed, which reflects points balance changes more broadly. Use points.level_changed when you care specifically about level transitions.

Body

application/json

The webhook event.

type
enum<string>
required

The webhook event type.

Available options:
points.level_changed
user
User · object
required

The user whose level changed.

points
PointsResponse · object
required

The points system in which the level changed.

previousLevel
PointsLevel · object
required

The user's previous level, or null if the user had no level.

newLevel
PointsLevel · object
required

The user's new level, or null if the user no longer has a level.

Response

200

Return a 200 status to indicate the webhook was received and processed.