curl -X POST "https://api.scanova.io/campaign/user-log/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"g2_campaign": 4,
"last_shown": "2026-08-20T10:15:00Z"
}'
{
"id": 118,
"last_shown": "2026-08-20T10:15:00Z",
"last_dismissed": null,
"last_submitted": null,
"is_popup_disabled": false
}
Campaign
Log that the review popup was shown, dismissed, or submitted
POST /campaign/user-log/
POST
/
campaign
/
user-log
/
curl -X POST "https://api.scanova.io/campaign/user-log/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"g2_campaign": 4,
"last_shown": "2026-08-20T10:15:00Z"
}'
{
"id": 118,
"last_shown": "2026-08-20T10:15:00Z",
"last_dismissed": null,
"last_submitted": null,
"is_popup_disabled": false
}
Creates the authenticated account’s log row for a G2 review campaign on the Management API host (
api.scanova.io), authenticated with your raw Management API key.
POST https://api.scanova.io/campaign/user-log/
Authorization: 401f7ac837da42b97f613d789819ff93537bee6a
integer
required
The campaign’s
id, from GET /campaign/active/.string
ISO 8601 timestamp of when the popup was shown to the user.
string
ISO 8601 timestamp of when the user dismissed the popup without submitting.
string
ISO 8601 timestamp of when the user clicked through to leave a review.
curl -X POST "https://api.scanova.io/campaign/user-log/" \
-H "Authorization: 401f7ac837da42b97f613d789819ff93537bee6a" \
-H "Content-Type: application/json" \
-d '{
"g2_campaign": 4,
"last_shown": "2026-08-20T10:15:00Z"
}'
{
"id": 118,
"last_shown": "2026-08-20T10:15:00Z",
"last_dismissed": null,
"last_submitted": null,
"is_popup_disabled": false
}
One row per campaign
There’s exactly one log row per (account, campaign) pair. If this account already has a row for theg2_campaign you passed, this call returns 400 with a plain-text error message (not the usual field-level validation-error shape) — switch to Update your campaign log instead of retrying the create.
Related
- Get the active review campaign — find the
g2_campaignid to log against. - Get your dismissal state for the active campaign — read back what this call creates.
- Update your campaign log — update this row on subsequent interactions.
- Management API overview — the auth scheme and quota rules that apply to this endpoint.
Authorizations
Send your Management API key as the raw value of the Authorization header — no "Bearer " or "Token " prefix, and no other characters. Example: Authorization: 401f7ac837da42b97f613d789819ff93537bee6a. A header containing more than one space-separated part is rejected outright. Requests also require the request's Host header to be the management API host (e.g. api.scanova.io) — the same key sent to the regular API host will not authenticate.
Body
application/json
Response
Log row created.
Was this page helpful?