Overview
Audience webhooks notify your server when a player links or disconnects an external account (Steam, Discord, Epic Games, etc.) within a project you manage. Events are delivered as signed HTTP POST requests to an endpoint you configure in Hub.Configure in Hub
Go to Hub and open Settings > Webhooks > Add Webhook. Select one or both audience events:| Event | Fired when |
|---|---|
audience_account_linked | A player links an external account |
audience_account_unlinked | A player disconnects an external account |
Payload
Both events use the same envelope shape. Thedata field contains the player and account details.
type is audience_account_unlinked. All other fields are identical.
Supported provider values: steam, discord, epic_games, x, telegram, tiktok, twitch
Verify the Signature
Webhooks are signed by AWS SNS using RSA. Verify signatures using thesns-validator npm package. There is no shared secret or custom header.
SNS delivers messages with Content-Type: text/plain. If you use Express, configure a raw text body parser for your webhook route:
TopicArn confirms the event originated from Immutable’s infrastructure and not a third-party SNS topic.
Retry Policy
SNS retries failed deliveries automatically according to the SNS delivery retry policy. There is no manual retry in Hub. If your endpoint is unavailable for an extended period, events may be permanently dropped.Best Practices
- Respond quickly. Return
200to SNS immediately and process the event asynchronously to avoid delivery timeouts. - Deduplicate. Use the
idfield to detect duplicate deliveries. The same event may arrive more than once. - Scope by project. The
project_idfield identifies which of your projects the player belongs to. A player can appear in multiple projects and trigger events for each.