Automations.
PerkUp can send the right reward on the right day without anyone clicking send. Automations watch each individual's important dates and fire a reward, a notification, or an announcement when a milestone arrives.
The rules engine
Automations are configured as Rules (proto/perkup/v1/rules.proto). A rule watches a date on the Individual record and, when that date is reached, runs an action. Rules are grouped by event type:
| Group | Watches | Typical use |
|---|---|---|
birthdays | The individual's birthday. | Birthday reward each year. |
anniversaries | The individual's start date. | Work-anniversary milestone gifts. |
leaveOfAbsence | Leave start / end dates. | Sends tied to parental or medical leave. |
Targeting & timing
Each rule can be tuned so the right people get the right thing at the right moment:
- Label filters — include or exclude people by custom labels, combined with AND/OR logic.
- Date offsets — fire a set number of days before or after the date.
- Grace days — still send if a date was recently missed (e.g. a late import).
What an automation can do
When a rule fires it runs an action (Action.Type):
| Action | Effect |
|---|---|
createProgram | Create and send a reward program to the matched individual. |
directSend | Send a reward directly without a standing program. |
notifyAdmins / notifyManager | Alert admins or the person's manager. |
publicAnnouncement | Post a celebratory announcement (e.g. to Slack). |
How it runs
A scheduled job evaluates rules on a cadence, matches individuals whose dates fall due, and enqueues the resulting sends. New-hire welcome rewards use the same machinery, keyed off the start date. The admin configures all of this under the birthdays, anniversaries, new-hire, and leave sections of the admin platform.
Source: proto/perkup/v1/rules.proto · backend/app/rules · apps/frontend/src/pages/Automations