Skip to content

Schema

Property Type Description Example Value
jobId ID The XOi Job’s ID "cjob-830517ba-7603-44136fa3-62374c4389f7-C112-781a49102793"
workflowJobId ID The XOi Workflow Job ID. The workflow added to the XOi Job by the Technician. “wjob-15e5cf6a-9e1e-i161-e35749099a6f-iR25-4dcd5b886198”
orgId string “jeffs-fast-hvac”
workflowName string “Installation”
reportingCategory string The Workflow’s current Reporting Category “Install”
jobLocation string “123 Main St”
createdAt AWSDateTime “2023-03-21T13:25:29.200000+00:00”
completedAt AWSDateTime “2023-03-21T21:57:46.606000+00:00”
stepData object Contains reference keys and their values based on the step type. See each Step Type schema below. "yourReferenceKey": { "value": {…}}, "anotherReferenceKey": { "value": {…}}

Workflow Step Data Value

Note: If any step is empty but has a reference key set, it will return as null. If no steps have a reference key set, stepData is returned as None.

Content Only (Dataplate)

Field Type Description Example
make string The make of the equipment "TRANE"
model string The model number of the equipment "DM96VC0804CNAA"
serial string The serial number of the equipment "2012112481"

Note:

If multiple dataplates are uploaded to a single step, the API will append a number to the reference key per dataplate uploaded (<reference_key>_1).

The key for equipment items is regenerated each time a request is made. It is possible that multiple requests will return equipment items with different keys compared to previous responses. For instance, the first dataplate may be returned with the key yourKeyForDataplateStep in one call, but in a subsequent call, it could be returned with the key yourKeyForDataplateStep_1. For this reason, it is important to note that you cannot rely on the ordering of the dataplates by their reference key, as it may vary between different requests.

For example, three dataplates uploaded to the same step will return as:

"stepData": {
        "yourKeyForDataplateStep": {
            "value": {
                "make": "CARRIER",
                "model": "A32NMQ24PBVJ42",
                "serial": "E018804"
            }
        },
        "yourKeyForDataplateStep_1": {
            "value": {
                "make": "DAIKIN",
                "model": "FXTQ18TAVJUDAB",
                "serial": "1910036390"
            }
        },
        "yourKeyForDataplateStep_2": {
            "value": {
                "make": "TRANE",
                "model": "QTF13579AGKD89",
                "serial": "9021401585"
            }
        }
}

Yes / No

Field Type Description Example
value boolean If "Yes", then value is true. If "No", then value is false. "value": true

Multiple Choice

A Multiple Choice step, where multiple answers are allowed.

Field Type Description Example
value array An array of choices selected in the multiple choice step. "keyMultipleChoice": { "value": ["Option 1", "Option 2", "Option 3"]},

Single Choice

A Multiple Choice step, where only one answer is allowed.

Field Type Description Example
value string A choice selected in the multiple choice step. "keySingleChoice": {"value": "A choice"}

Numeric

Field Type Description Example
value float The number entered by the user. "keyNumericTimeMinutes": {"value": 5.0,"unit_type": "Time","unit": "Minutes"}
unit_type string The type of unit requested on the step.
unit string The unit requested on the step.

Short Text

Field Type Description Example
value string The text typed by a user in this step. "keyShortText": {"value": "A short text response."},

Date

Field Type Description Example
value AWSDateTime The date selected by the user. "keyDate": {"value": "2023-08-05T00:00:00.000000Z"},

Errors

404 Not Found

The job IDs you requested may not exist or the workflow job and container job do not match (cjob, wjob).

Empty Step Data

If stepData is empty, then no reference keys have been configured for that workflow.

"Cannot determine single type of data for step.”

Except “Content Only” steps, any workflow steps with “extract dataplate text” enabled will not be returned in the API. Instead, add a “Content Only” step separately to capture dataplate information.

Example

Example HTTP GET Request

https://api-jobs-external.xoi.io/reporting-data/job/cjob-91a57c20-d31d-44136fa3-9b8a45af8b23-C112-aede8de69c63/workflow-job/wjob-4f68742c-d31d-44136fa3-9d1b4c6a8dca-C112-d425f0213d73

Example JSON Response

{
  "jobId": "cjob-...",
  "workflowJobId": "wjob-15e5cf6a-9e1e-i161-e35749099a6f-uC84-4dcd5b886198",
  "jobLocation": "123 Main St",
  "orgId": "jeffs-fast-hvac",
  "workflowName": "Installation",
  "reportingCategory": "Install",
  "createdAt": "2023-03-21T13:25:29.200000+00:00",
  "completedAt": "2023-03-21T21:57:46.606000+00:00",
  "stepData": {
    "outdoorEquipment": {
      "value": {
        "make": "CARRIER",
        "model": "A32NMQ24PBVJ42",
        "serial": "E018804"
      }
    },
    "outdoorEquipment_1": {
      "value": {
        "make": "DAIKIN",
        "model": "FXTQ18TAVJUDAB",
        "serial": "1910036390"
      }
    },
    "indoorEquipment": {
      "value": {
        "make": "TRANE",
        "model": "QTF13579AGKD89",
        "serial": "9021401585"
      }
    },
    "indoorVoltage": {
      "value": 15,
      "unit_type": "Power",
      "unit": "Amps"
    },
    "outdoorVoltage": {
      "value": 30,
      "unit_type": "Power",
      "unit": "Amps"
    },
    "staticPressureInSpec": {
      "value": false
    },
    "lineSetLength": {
      "value": 1
    },
    "amtRefrigerentAdded": {
      "value": 0,
      "unit_type": "Weight",
      "unit": "Pounds"
    },
    "cloudServicesAccepted": {
      "value": false
    }
  }
}