This recipe explains how to create and manage badges in Snag Loyalty.
The Badges feature in Snag Admin allows you to create and manage badges that users can earn by fulfilling specific condtions. These badges are displated on user profiles along with their progress towward unlocking them.
Users can earn badges by:
Each badge displays a list of conditions and tracks user progress toward achieving them. The API provides real-time updates on user completion status, allowing users to see how close they are to earning a badge.
This recipe explains how to manage badges using the Snag API, including creating, updating and deleting badges but also assigning badges to users and revoking them.
The GET /api/loyalty/badges
endpoint allows for fetching of loyalty badges created on your Snag account. This endpoint provides various filters to allow pagination. Badges are sorted by their creation date in descending order.
Request
startingAfter
property to subsequent requests.The POST /api/loyalty/badges
endpoint allows for creating a new badge on your Snag account. This endpoint requires the following parameters:
organizationId
: Your organization IDwebsiteId
: Your website IDname
: The name of the badgedescription
: A description of the badgeimageUrl
: The URL of the badge imagerules
: An array of conditions that must be met to earn the badgeThe POST /api/loyalty/badges/{id}
endpoint allows for updating an existing badge on your Snag account.
The id
parameter is required to identify the badge to update. We only allow updating the name
, description
, and imageUrl
of the badge. The reason for this is to prevent any changes that could affect the badge’s conditions and user progress.
The DELETE /api/loyalty/badges/{id}
endpoint allows for deleting an existing badge on your Snag account.
The id
parameter is required to identify the badge to delete.
The POST /api/loyalty/badges/{id}/reward
endpoint allows for rewarding a user with a badge on your Snag account.
The id
parameter is required to identify the badge to reward, and either userId
or walletAddress
is required to identify the user to reward.
The POST /api/loyalty/badges/{id}/revoke
endpoint allows to revoke a badge from a user on your Snag account.
The id
parameter is required to identify the badge to revoke, and either userId
or walletAddress
is required to identify the user to revoke.
For manual badge assignment, upload a CSV file containing wallet addresses of users who should receive a specific badge. The uploaded file should follow this format:
After upload, the system will process the file and assign the badge to the listed users.
This system provides a flexible way to reward user engagement and encourage participation through achievements. The Badge feature is only available to websites with active loyalty programs.