Welcome users the first time they activate
Send a Braze event the first time a user activates in PostgreSQL, exactly once per user, so the onboarding campaign starts on what they actually did.
- PostgreSQL
- Braze
- Lifecycle
- once per user
The trigger
One read-only SELECT against PostgreSQL. Rowfire polls it for new rows, and the rule fires once per user.
SELECT u.id AS user_id,
u.first_name,
u.email,
a.name AS account,
p.name AS plan,
u.activated_at
FROM users u
JOIN accounts a ON a.id = u.account_id
JOIN plans p ON p.id = a.plan_id
WHERE u.activated_at IS NOT NULL
AND a.is_internal = falseActivation usually means the user did the thing your product is for, which
is a better moment for a welcome than sign-up. The clock is activated_at
and the key is user_id, so each user is welcomed once. Table and column
names are a sketch; adapt them to your schema.
The Braze side
Bind Braze track_event:
external_id:{{ user_id }}- event name:
activated - properties: the plan and the account name, for the campaign to use
Braze actions retry on rate limits and server errors (429, 500, 502,
503), so a busy moment on Braze’s side doesn’t drop a welcome.
For users who never get that far, see rescue trials that never activated.
Questions
What if activated_at is reset and set again?
The rule fires once per user, ever. A second activation of the same user doesn't send a second welcome.
Can the onboarding team see new activations too?
Yes. Add a second rule on the same trigger with a Slack action. Each rule keeps its own cadence.