Session retries retain byte-identical JSON and the same delivery ID; each attempt receives a fresh signature timestamp. Non-2xx responses and connection failures enter the retry path. Delivery ordering is not guaranteed. A removed subscription is skipped by a queued job. Failures are reported without failing the originating model operation; retries are bounded rather than durable indefinite delivery.
The session delivery ID identifies one delivery for one subscription. Two subscriptions receiving the same underlying session event get separate IDs. Use the session UUID plus event type for business-level deduplication, and delivery ID for retry deduplication. Legacy payload
id is a record ID, not an event ID: dropping every repeated transaction ID would also drop legitimate updates.
Signature contract
Dashboard test requests
The released Test action sends an actual HTTP request withX-WeGive-Test: true; receivers should separate these from business counts. Actions 1–7 use a recent renderable record from the organization, so test requests can contain real contact data. Actions 8–9 use a synthetic session sample, a fresh delivery UUID, and current occurred_at, with the same event/delivery headers as live requests. Tests use a 5-second timeout and 3-second connection timeout and are a single immediate attempt. A static View sample/API sample response is distinct from a real delivery.
The subscription-management API’s id, event_type, target_url, has_signing_secret, and reveal-once signing_secret describe the subscription, not fields automatically added to webhook bodies.