Stytch
Use Stytch's signed Consumer user or B2B member creation webhook as signup proof.
Webhook events
| Event | What it signals | Growth Rail action |
|---|---|---|
direct.user.create | User signup confirmed by provider. | Record signup proof; join to pending SDK attribution claim. |
direct.member.create | 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 Stytch, and create a Sandbox or Production connection. Copy the generated webhook endpoint URL — you will paste it into Stytch in the next step.
Register the webhook in Stytch
In Stytch Dashboard → Webhooks, add the copied endpoint and subscribe to direct.user.create, direct.member.create.
Return to Growth Rail and save the Stytch/Svix signing secret (whsec_…). Growth Rail encrypts and stores it — the raw value is never returned by the API after saving.
Pass attribution data from your app
For Consumer projects, pass user.user_id to Growth Rail. For B2B projects, pass member.member_id. Enable only the event matching your Stytch project model.
// Consumer: user.user_id · B2B: member.member_id
await GrowthRail.initAppUser(stytchUserId);Verify end-to-end in test mode
Create one user through the Stytch SDK/API path used by your product and confirm the direct.user.create or direct.member.create delivery 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. |
- Dashboard and SCIM creation use different Stytch event variants and are intentionally not treated as self-service signup proof.
- Do not mix Consumer user IDs and B2B member IDs within one Growth Rail connection.