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:

GroupWatchesTypical use
birthdaysThe individual's birthday.Birthday reward each year.
anniversariesThe individual's start date.Work-anniversary milestone gifts.
leaveOfAbsenceLeave 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):

ActionEffect
createProgramCreate and send a reward program to the matched individual.
directSendSend a reward directly without a standing program.
notifyAdmins / notifyManagerAlert admins or the person's manager.
publicAnnouncementPost 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