Appearance
App Events & Notifications
Voxel Points registers standard Voxel app events under a "Voxel Points" category in Voxel → App Events:
points:earned— member in-app notification ON, email OFF by default (earning is frequent; don't spam). Tags:@points(amount),@points(balance),@points(reason),@points(points_name),@points(rule_label),@points(event_key).Saying what the points were for. There is one event for all earning, so the wording has to come from a tag rather than from a different template per rule. Three tags carry it, and they are not interchangeable:
Tag Gives you Use it to @points(reason)the ledger note — "Daily visit — 3 day streak", "Review posted on Bayside Grill" show the specific award @points(rule_label)the rule's name — "Daily visit", "Review posted — Places" show a stable name; renaming the rule renames this @points(event_key)the raw key — daily_login,review:placescompare against, to word one rule differently reasonis prose that changes with each award, so it reads well but cannot be tested.event_keynever changes, so it can. Voxel's own control modifiers do the branching:@points(event_key).is_equal_to(daily_login).then(Thanks for stopping by!) .else(You earned @points(amount) @points(points_name) — @points(reason))Awards that are not earning rules — a streak milestone, an admin adjustment — have no entry in the rule catalog, so
rule_labelfalls back to the note rather than to a placeholder.points:spent— member notification on redemption spends.level:up— a member reached a new level (demotions never fire).streak:milestone— a daily-visit streak milestone.badge:earned— a badge was awarded. Tags:@achievement(name),@achievement(description),@achievement(value).reward:redeemed— member + admin destinations; the admin one is your fulfillment ping and links to the queue. Adds@reward(title),@reward(cost).points:expired— points were written off for inactivity (§14). Only fires if you switch expiry on.points:expiry_warning— sent ahead of an expiry, while there is still time for the member to do something about it.
Because these are ordinary Voxel app events, anything that consumes the registry — including Voxel Toolkit's SMS, Push, and Notification Preferences — picks them up with zero configuration.

