1. Rowfire
  2. Use cases

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 = false

Activation 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.