Personalize Integration Checklist
Use this checklist for implementation review, onboarding, and production launch.
Access and ownership
- We have separate base URLs and credentials for each required environment.
-
x-api-key,x-brand-key, event signing secrets, and tenant values are held in a secrets manager. - A named system owns each inventory identifier and customer identifier.
- The team that will operate the integration has an on-call owner and runbook.
- Production cadence, expected volumes, and retention of our own request logs are agreed.
Identifier contract
- Gaming outer object keys equal their records'
game_codevalues. - Game Launch
ootb_game_codevalues match Gaming Inventorygame_codevalues exactly. - Sports discipline, class, meeting, event, market, and selection keys match their corresponding hierarchy keys exactly.
- IDs are treated as opaque, case-sensitive strings and are not translated or recycled.
- Required events use the top-level
customerfield with an Optimove customer identifier. - Automated monitoring reports event keys that do not exist in the current inventory.
Gaming Inventory
- The complete file passes
POST /validate. - We run our own target-contract checks and do not treat
200from/validateas complete contract proof. - Required fields and all fields we plan to send conform to the documented types.
- Channel flags include at least one enabled channel whenever flags are supplied.
- Inclusion, exclusion, skin, and regulation values use agreed vocabularies.
- One-key/value object rules are followed for
tagsandgame_features. - The first full snapshot has been uploaded through its temporary signed form.
- We capture the returned version identifier when available, or discover and store the processing trace ID through
GET /logs/recent. - We poll the trace logs until
COMPLETEDorFAILED. - After
COMPLETED, we reconcile the exportedgame_codecount and set throughGET /downloadand continue monitoring event joins/representative results. - We prevent another upload from starting while the previous upload is unresolved.
- We tested adding, changing, and omitting a game from the next full snapshot.
- We alert on failed, overdue, missing, and unexpectedly small inventory runs.
- We block a snapshot that removes more than half the catalogue and coordinate any planned large removal with Optimove.
- We retain the exact submitted file ourselves; trace-specific download is treated as best-effort diagnostics.
Sports Inventory
- We can create a complete Category → Class → Type → Event → Market → Selection hierarchy.
- POST and PUT requests contain between 1 and 500 records.
- Parent keys are created before dependent child records.
- We understand that POST is a full-record upsert and can clear omitted optional values.
- We use PUT for intentional partial top-level updates.
- When changing a nested object, we send its complete intended replacement.
- Selection odds updates send a consistent decimal value with any fractional numerator and denominator.
- Parent records are deleted individually so cascading behaviour is preserved.
- We record request time, method, record keys, payload checksum, response status, and response body.
- We retry timeouts,
429, and5xxresponses with bounded exponential backoff and jitter. - We serialise competing changes for the same record key.
- We tested create, update, deactivate/hide, price change, and delete behaviour.
- We understand that
202 Acceptedconfirms receipt into asynchronous processing, not final persistence.
Real-Time Events
- Events are delivered through the Server-Side Events API.
- Gaming sends Game Launch for identified customers.
- Sports sends Bet Placement for identified customers.
- Gaming sends Game Session if any enabled method needs financial or value-aware session data.
- Sports sends Bet Settled if Prior Win or another settlement-aware method is enabled.
- Event examples have been tested as real JSON, including lowercase
true,false, andnull. - Event timestamps reflect the actual action time and retain ordering during replay.
- Required field coverage and event volume are monitored by event type.
- A test customer and item can be traced end to end from inventory through event receipt to Optimove Personalize.
Failure exercises
- Invalid inventory is rejected before it can replace a known-good Gaming snapshot.
- A failed Gaming run triggers an alert and trace-based diagnosis.
- A missing scheduled Gaming run triggers an alert.
- A Sports timeout can be reconciled before replay to limit duplicate/out-of-order effects.
- A stale Sports update cannot race and overwrite a newer state.
- An unknown game or selection key appears in monitoring.
- A Real-Time Event outage appears in monitoring.
- Credentials can be rotated without code changes.
Production sign-off
- All placeholders in the published documentation and integration configuration are resolved.
- Known publication blockers affecting our chosen contracts are closed.
- We own inventory publication, monitoring, reconciliation, and recovery.
- Optimove has confirmed the required recommendation methods and their optional event dependencies.
- Test evidence and runbooks are stored where both delivery and support teams can access them.
Updated about 2 hours ago
Did this page help you?
