Skip to content

Scenario context and snapshot

Wogeez Engine Wogeez Engine

Before to begin

We invite you to consult the manual documentation to understand contexts and snapshots.

API Endpoint

This endpoint retrieves snapshots of a context, which represent the result of a scenario execution for a given company. Each snapshot captures the state of the scenario at execution time (e.g., specific version, device used, associated mission, correlation data). Results can be filtered by scenario, version, mission, or device, and are paginated.

Parameters

Path parameter

Name Type Required Description
id String ✔️ Company ID

Query parameters

Name Type Required Description
scenarioId String Identifier of the executed scenario
scenarioVersionId String Identifier of the scenario version
deviceId String Identifier of the device used during execution
mission String Mission associated with the execution
correlation String Correlation key to group multiple executions
page Int Page number (for pagination)
pageSize Int Number of results per page
format String Output format (json)

Example

Request

Fetch all snapshots for a company and scenario
curl -X GET "https://api-v2.wogeez.com/companies/COMPANY_ID/resources/scenarios/contexts/snapshots?scenarioId=SCENARIO_ID&page=0&pageSize=30&format=json" \
  -H "Authorization: Bearer your-jwt-token" \
  -H "Accept: application/json"

Result

The response represents a paginated list of scenario execution contexts (in this case, only one context).

Response
{
  "total": 1,
  "page": {
    "page": 0,
    "pageSize": 30
  },
  "contexts": [
    {
      "id": "b9815cf9-d4bb-46a7-9e14-8f9a6cab9ea4",
      "context": {
        "id": {
          "correlation": "ACORENTIN-5634bdf4-f0a3-499c-9999-67175220f2a3-30d5b095-8844-4ab6-b4f9-e63c4f4f26a4-1758028548007-hidden-camel",
          "mission": "hidden-camel",
          "companyID": "d013e5cb-efe0-4cac-bcef-71f1020d3195",
          "scenarioID": "5634bdf4-f0a3-499c-9999-67175220f2a3",
          "scenarioVersionID": "30d5b095-8844-4ab6-b4f9-e63c4f4f26a4",
          "deviceID": "ACORENTIN"
        },
        "steps": [
          {
            "id": {
              "id": "step-halloween1-veille"
            },
            "success": true,
            "productions": [
              {
                "id": {
                  "id": "step-halloween1-veille"
                },
                "success": true,
                "error": null,
                "type": "NOTHING"
              }
            ]
          },
          {
            "id": {
              "id": "step-halloween1-accueil"
            },
            "success": true,
            "productions": [
              {
                "id": {
                  "id": "step-halloween1-accueil"
                },
                "success": true,
                "error": null,
                "type": "NOTHING"
              }
            ]
          },
          {
            "id": {
              "id": "step-halloween1-formulaire"
            },
            "success": true,
            "productions": [
              {
                "id": {
                  "id": "user-registration-halloween1-form"
                },
                "success": true,
                "error": null,
                "type": "FORM",
                "inputs": {
                  "civility": "M",
                  "lastname": "Corentin",
                  "firstname": "Dupont",
                  "mail": "[email protected]",
                  "opt-in-newsletter": true,
                  "rules": true
                }
              }
            ]
          }
        ]
      },
      "createdAt": "2025-09-16T15:17:25.733796488",
      "writedAt": "2025-09-16T15:17:25.733799362",
      "receivedAt": "2025-09-16T15:17:25.733747802"
    }
  ]
}

This JSON shows the execution trace of a scenario broken down into steps:

  • The scenario was executed successfully.
  • Each step was validated (success: true).
  • The final step (formulaire) captured a form submission with user details.
  • Metadata (company, scenario version, device, mission) links the execution to its business context.

In the JSON, the user data (like firstname, lastname, mail, etc.) is nested deep inside the snapshot, specifically in the productions.inputs object of certain steps (like the FORM step).

Path inside the JSON
contexts[].context.steps[].productions[].inputs

Steps and Productions

A scenario execution is broken down into steps. Each step may or may not produce data. These outputs are called productions.

  • A production represents the concrete result of executing a step.
  • Some steps complete without generating data (production type = NOTHING).
  • Other steps generate specific data structures depending on their role in the scenario.

Examples of productions

  • FORM → a form filled in by a user (e.g., registration form, survey).
  • TICKET → a ticket issued as part of the process (e.g., proof of purchase, event ticket).
  • BASKET → a shopping basket or collection of items.

Important

This list is not exhaustive — additional production types may be introduced and will be documented in detail in the future.

Dates in a Snapshot

Each snapshot contains three different timestamps. They do not represent the same moment and must be interpreted carefully:

Field Meaning
createdAt The actual creation date of the snapshot, recorded at the end of the scenario execution. Since a scenario can take variable time to complete, this timestamp is not always representative of when the user data was actually produced. Data entered by the user may have occurred seconds or minutes earlier, but the snapshot is only created once the entire scenario finishes.
receivedAt The timestamp when the system received the data event. This corresponds more closely to the moment when the information reached servers.
writedAt The timestamp when the data was persisted into the data warehouse. Since the warehouse uses event-store mechanisms, the write operation may be delayed in case of high load or resource throttling.

Important

The snapshot becomes queryable via the API starting from writedAt.