Prerequisite You need administrative access to your Growi dashboard to configure webhook URLs.
Overview
When a brand has a Webhook URL configured, Growi will send an HTTP POST request with a JSON body whenever a campaign’s creator affiliation changes state.Configuration
In the Organization settings, configure:- Webhook URL: A single HTTPS URL that will receive webhook POST requests.
Event Types
The webhook payload includes anevent field to differentiate between actions:
| Event | Description |
|---|---|
campaign_affiliate.activated | Creator was added/activated on the campaign |
campaign_affiliate.removed | Creator was removed from the campaign |
campaign_affiliate.left | Creator left the campaign |
If the system encounters an unknown status, it will fall back to
campaign_affiliate.<status>.Delivery Details
| Setting | Value |
|---|---|
| Method | POST |
| Content-Type | application/json |
| Connect Timeout | 10 seconds |
| Read Timeout | 10 seconds |
| Success Criteria | Any 2xx response |
| Retries | Up to 3 retries on failure |
Payload Format
The request body is a single JSON object with the following fields:Event name that indicates what happened.
ISO-8601 timestamp of the underlying record update.
Internal ID of the campaign-creator association record.
Campaign ID.
Organization ID.
Creator’s user ID.
The raw status value on the record (e.g.,
active, removed, left).Campaign name, when available.
Brand slug, when available.
Creator email, when available.
Creator name, when available.
Default affiliate tag for the creator on this campaign, when available.
Optional fields are omitted when values are not present. The
occurred_at field uses the campaign affiliation record’s updated_at timestamp.Example Payloads
Creator Added to Campaign
Creator Removed from Campaign
Troubleshooting
Webhook Not Being Received
Webhook Not Being Received
Ensure your webhook URL is correctly configured in Organization settings and is publicly accessible over HTTPS.
Receiving Duplicate Events
Receiving Duplicate Events
Implement idempotency in your webhook handler using the
campaign_affiliate_id and occurred_at fields to deduplicate events.Webhook Failing with Timeout
Webhook Failing with Timeout
Your endpoint must respond within 10 seconds. Consider processing webhooks asynchronously and returning a 200 response immediately.