Skip to main content
This event fires every time a user appears in the tenant for the first time, regardless of the source channel. It’s the ideal trigger to provision the new user into external systems (CRM, marketing, billing).
The internal event name (used when subscribing webhooks in the Console) is user_created.

Subscribe to this event

Point a listener at your URL with EventName: "user_created". Auth, secret and signature verification are covered in Subscribing and verifying webhooks.

When it fires

  • User signs up through the community’s public form
  • Admin creates the user manually in the dashboard
  • User signs in for the first time via SSO (Google, Apple, OIDC)
  • Bulk import creates the user
  • You create the user via API

When it does NOT fire

  • Login of an existing user (no creation happens)
  • Profile update (name, email, phone)
  • Reactivation of a soft-deleted user (the user already existed)
  • Creation fails (validation, duplicate email, etc.)
  • User not found while enriching the payload (delivery is skipped)

Payload

The payload is serialized in PascalCase and delivered in the body of the POST with Content-Type: application/json:
The top-level fields (UserId, Email, FirstName, …) and the nested User object exist side by side to keep parity with v1 of the platform. We recommend consuming the nested User object in new code — it has the same shape as other events (user_joined_group, user_received_badge, etc.) and simplifies generic handlers.

Payload fields

Request headers

The full explanation of how to verify X-Cativa-Signature, handle retries and ensure idempotency (with examples in Node, Python, Go and C#) lives in Subscribing and verifying webhooks.

Use cases

  • Provision in your CRM — create a contact in HubSpot/Pipedrive/Salesforce with Email, FirstName, LastName and a CustomerId tag for cross-tenant segmentation.
  • Email onboarding — kick off a welcome sequence in your email provider (Mailchimp, Customer.io, ActiveCampaign) using the Email you just received.
  • Sync with billing — create the matching customer in Stripe/Asaas or in your own internal system, even before the first payment.

Reacting to the event

After verifying the HMAC signature, provision the new user in your CRM. The example does an idempotent upsert by UserId and tags the source tenant via CustomerId:

user_joined_group

Fired when the user joins a group in the community.

user_received_badge

Fired when the user earns a badge (purchase, manual assignment or automation).

Subscribing to webhooks

How to register listeners, verify HMAC and handle retries.

Webhooks (overview)

Why webhooks, delivery guarantees and payload format.