Frontegg
Use Frontegg's signed interactive signup or explicit user-created event as signup proof.
Webhook events
| Event | What it signals | Growth Rail action |
|---|---|---|
frontegg.user.signedUp | User signup confirmed by provider. | Record signup proof; join to pending SDK attribution claim. |
frontegg.user.created | User signup confirmed by provider. | Record signup proof; join to pending SDK attribution claim. |
How attribution works
A verified provider event proves the signup happened — but not that the user was referred. Growth Rail completes a referral only when that event joins to the opaque attribution claim previously captured by the SDK on the referring user's device.
Create the Growth Rail connection
Open Dashboard → Integrations → Auth, choose Frontegg, and create a Sandbox or Production connection. Copy the generated webhook endpoint URL — you will paste it into Frontegg in the next step.
Register the webhook in Frontegg
In Frontegg Portal → Webhooks, add the copied endpoint and subscribe to frontegg.user.signedUp, frontegg.user.created.
Return to Growth Rail and save the Frontegg webhook Secret key. Growth Rail encrypts and stores it — the raw value is never returned by the API after saving.
Pass attribution data from your app
Pass the stable Frontegg user ID available in the event context/body. Select signedUp for interactive registration and add user.created only when admin-created users are intentionally in scope.
// Use the stable Frontegg user ID, never profile fields.
await GrowthRail.initAppUser(fronteggUser.id);Verify end-to-end in test mode
Complete an interactive signup and confirm frontegg.user.signedUp is verified in Growth Rail.
| Outcome | Meaning |
|---|---|
| Completed | Signup proof and SDK attribution token matched. The referral reward has been triggered. |
| Awaiting attribution | The webhook signature was valid, but the SDK claim has not arrived yet — or the stable user ID did not match a pending claim. The event is held; Growth Rail completes the referral when the claim arrives. |
| Ignored | The event was verified but no matching attribution claim exists and the hold window has expired, or the event type is out of scope. |
- frontegg.user.created can include non-interactive creation. It only completes a reward when the same user has a pending SDK attribution claim.
- SCIM creation is a separate event and is intentionally excluded.