Rewards & Recognition.
Recognition in PerkUp is delivered through Programs. A program defines who is being recognized, with what budget, on what occasion, and how the reward reaches them.
Programs
A Program is the unit of sending. Every program has a type that shapes its behavior (proto/perkup/v1/program.proto):
| Type | What it does |
|---|---|
rewards | A one-off or recurring reward send to selected recipients. |
direct / bulkDirect | Direct sends to one or many individuals. |
anniversaries / birthdays | Milestone sends — see Automations. |
perks / personalFunds / policies | Recurring spend — see Perk Programs. |
leaveOfAbsences | Sends tied to an individual's leave. |
Spot rewards & recognition
Managers and admins can send an instant spot reward from the app: pick recipients, an occasion, a message and image, and a value. Recognition can be public — a celebratory announcement — or a private send. Reusable reward templates keep messaging consistent across senders and across automated programs.
Occasions
Every send carries an occasion, which drives the framing and imagery (ProgramOccasion): appreciation, birthday, holiday, incentive, life event, lunch, new employee, team event, work anniversary, and customer gifting.
Acceptance & expiry
A recipient is notified, accepts the reward, and then chooses a gift, spends a balance, or claims swag — see Recipient Experience. Rewards can carry an expiry; unredeemed value is reconciled back to the funding account. The end-to-end money movement is in Money & Balances.
Source: proto/perkup/v1/program.proto · functions/src/services/programs*.ts · apps/frontend/src/pages/{SpotRewards,NewReward,Templates}