Download Standard XML or JSON Files

Standard XML and JSON files are available for any submitted or dispatched form. These files include metadata that can help with your organization’s audit and compliance requirements. For example, the standard XML and JSON files include information about the last user to answer or edit a question. This topic describes how to download the files and the metadata that they include.

Tip:Downloading an XML or JSON file is a manual process. For integrations with third-party systems, consider setting up an XML or JSON output document. You can then link the documents to a Data Destination to send directly to your third-party system.

You can also:

Available on all tiers:

Essentials
Advanced
Enterprise

Contents

Steps to download an XML or JSON file

Some types of output documents might not include all metadata. If you want to get more information, you can download a standard JSON or XML file. These are available from the View the Details of a Form Submission page.

You can download an XML or JSON file for any dispatched, submitted, or transferred (TrueContext TeamworkClosed-enabled) form. You can then open the file or manually upload it to your third-party system.

  1. Navigate to the submissions page of your form:

    Data & Analytics > Submissions (by Form) > FormName > Continue

    or

    Forms & Integrations > FormName > Go to submissions

    Result: The Web Portal displays the Form Submissions page for the selected form. By default, The Form Submissions page displays form submissions from the last 30 days.

    Tip:You can change your Search Options to find specific submitted or dispatched forms. For example, filter on a date range to find all submitted forms from 2022-01-01 through 2022-12-31.

  2. Select the Reference # of the dispatched, submitted, or transferred form.

    Result: The Web Portal displays the details page.

  3. Hover over the arrow next to the reference number to show the list of actions.

    The details page of a submitted record. Hover over the arrow next to the submission's reference number, then select "Download Standard XML" or "Download Standard JSON".

  4. Select either Download Standard XML or Download Standard JSON.

    Result: The XML or JSON file of the selected form downloads.

    Info:If the XML or JSON document is linked to a Multi-Language Form, the system prompts you to select a language for the document. The document shows translated form content based on the form’s translation file. The key names and question Unique IDs don’t change. For your integrations, map to the question Unique IDClosed, which doesn’t change, rather than the question text.

Tip:You can also download an XML or JSON file with the TrueContext REST API.

Description of metadata in a standard JSON or XML file

The following table describes the metadata that you can find in the standard XML and JSON downloads.

Info:The workflowStatus, workflowState, and dataFlowState are new properties that replace the old displayStatus, state, and dataState properties. You can start using the new properties now. You must switch to the new properties before September 30, 2025, when the old properties will be deprecated. The topic Changes to Work Management Metadata describes these changes and what you need to do.

Type of metadata JSON example XML example
Submission details

Status:

"displayStatus": "In Progress (Dispatching)",

Workflow statusClosed:

"workflowStatus": "Dispatched (Pending Download)",

State:

"state": "InProgress",

Workflow stateClosed:

"workflowState": "Dispatched",

Data state:

"dataState": "Dispatching",

Data flow stateClosed:

"dataFlowState": "PendingDownload",

Completion result:

"completionResult": "Approved",

DispatchClosed status on the Web Portal:

"orphanedDispatch": false,

If the field user submits a dispatched form after the dispatch was deleted in the Web Portal, then orphanedDispatch=true.

Submitted date and time on the user’s device:

"deviceSubmitDate": {
    "provided": {
       "time": "2023-03-09T10:31:58-05:00",
       "zone": "America/Toronto"
       },
    "shifted": "2023-03-09T10:31:58-05:00"
    },

Received date and time on the TrueContext server:

"serverReceiveDate": "2023-03-09T10:32:41-05:00",

Status:

<displayStatus>In Progress (Dispatching)</displayStatus>

Workflow status:

<workflowStatus>Dispatched (Pending Download)</workflowStatus>

State:

<state>InProgress</state>

Workflow state:

<workflowState>Dispatched</workflowState>

Data state:

<dataState>Dispatching</dataState>

Data flow state:

<dataFlowState>PendingDownload</dataFlowState>

Completion result:

<completionResult>Approved</completionResult>

Dispatch status on the Web Portal:

<orphanedDispatch>false</orphanedDispatch>

If the field user submits a dispatched form after the dispatch was deleted in the Web Portal, then orphanedDispatch=true.

Submitted date and time on the user’s device:

<deviceSubmitDate>
    <provided>
      <time>2023-03-09T10:31:58-05:00</time>
      <zone>America/Toronto</zone>
    </provided>
    <shifted>2023-03-09T10:31:58-05:00</shifted>
  </deviceSubmitDate>

Received date and time on the TrueContext server:

<serverReceiveDate>2023-03-09T10:32:41-05:00</serverReceiveDate>

Dispatch details

Dispatch date and time:

"dispatchDate": "2023-08-10T10:52:10-04:00",

Dispatch details:

    "dispatchMetadata": {
        "notes": "Tell building security about your arrival before you start work.",
        "priority": "Medium",
        "dueDate": {
            "provided": {
                "time": "2023-08-18T11:30:00-04:00",
                "zone": "America/New_York"
            },
            "shifted": "2023-08-18T11:30:00-04:00"
        },
        "coordinates": {
            "latitude": 45.3472904,
            "longitude": -75.9095115,
            "altitude": null
        }
    },

Dispatch date and time:

<dispatchDate>2023-08-10T10:52:10-04:00</dispatchDate>

Dispatch details:

  <dispatchMetadata>
    <notes>Tell building security about your arrival before you start work.</notes>
    <priority>Medium</priority>
    <dueDate>
      <provided>
        <time>2023-08-18T11:30:00-04:00</time>
        <zone>America/New_York</zone>
      </provided>
      <shifted>2023-08-18T11:30:00-04:00</shifted>
    </dueDate>
    <coordinates>
      <latitude>45.3472904</latitude>
      <longitude>-75.9095115</longitude>
    </coordinates>
  </dispatchMetadata>
Form details

Form and FormSpaceClosed identifiers and versions:

"form": {
        "identifier": "1423164009",
        "versionIdentifier": "1527638015",
        "name": "HVAC Work Order",
        "version": 48,
        "formSpaceIdentifier": "195823004",
        "formSpaceName": "Existing Customers"
    },

Form and FormSpace identifiers and versions:

<form identifier="1423164009">
    <versionIdentifier>1527638015</versionIdentifier>
    <name>HVAC Work Order</name>
    <version>48</version>
    <formSpaceIdentifier>195823004</formSpaceIdentifier>
    <formSpaceName>Existing Customers</formSpaceName>
  </form>
Submitter details

Submitter identifiers:

"user": {
        "identifier": "1317016005",
        "username": "j.smith",
        "displayName": "Jenny Smith"
    },

Submitter identifiers:

<user identifier="1317016005">
    <username>j.smith</username>
    <displayName>Jenny Smith</displayName>
  </user>
Dispatcher details

Dispatcher identifiers:

"dispatcher": {
        "identifier": "137549047",
        "username": "l.yung",
        "displayName": "Lynn Yung"
    },

Dispatcher identifiers:

<dispatcher identifier="137549047">
    <username>l.yung</username>
    <displayName>Lynn Yung</displayName>
  </dispatcher>
Submitter’s geo location

Geo location details include:

  • Timestamp (date and time) of when the location was collected

  • Location coordinates

  • Location address

"geoStamp": {
        "success": true,
        "captureTimestamp": {
            "provided": {
                "time": "2023-06-14T12:46:53-04:00",
                "zone": "America/Toronto"
            },
            "shifted": "2023-06-14T12:46:53-04:00"
        },
        "errorMessage": null,
        "source": "GPS",
        "coordinates": {
            "latitude": 45.342761120048436,
            "longitude": -75.915798518297,
            "altitude": 0.0
        },
        "accuracy": 4025.286,
        "address": "2500 Solandt Rd, Kanata, ON K2K 3G5, Canada",
        "addressDetails": {
            "source": "Google",
            "components": [
                {
                    "shortName": "2500",
                    "longName": "2500",
                    "types": [
                        "street_number"
                    ]
                },
                {
                    "shortName": "Solandt Rd",
                    "longName": "Solandt Road",
                    "types": [
                        "route"
                    ]
                },
                {
                    "shortName": "Kanata",
                    "longName": "Kanata",
                    "types": [
                        "political",
                        "sublocality",
                        "sublocality_level_1"
                    ]
                },
                {
                    "shortName": "Ottawa",
                    "longName": "Ottawa",
                    "types": [
                        "locality",
                        "political"
                    ]
                },
                {
                    "shortName": "Ottawa",
                    "longName": "Ottawa",
                    "types": [
                        "administrative_area_level_3",
                        "political"
                    ]
                },
                {
                    "shortName": "Ottawa",
                    "longName": "Ottawa",
                    "types": [
                        "administrative_area_level_2",
                        "political"
                    ]
                },
                {
                    "shortName": "ON",
                    "longName": "Ontario",
                    "types": [
                        "administrative_area_level_1",
                        "political"
                    ]
                },
                {
                    "shortName": "CA",
                    "longName": "Canada",
                    "types": [
                        "country",
                        "political"
                    ]
                },
                {
                    "shortName": "K2K 3G5",
                    "longName": "K2K 3G5",
                    "types": [
                        "postal_code"
                    ]
                }
            ]
        }
    },

Geo location details include:

  • Timestamp (date and time) of when the location was collected

  • Location coordinates

  • Location address

<geoStamp>
    <success>true</success>
    <captureTimestamp>
      <provided>
        <time>2023-06-14T12:46:53-04:00</time>
        <zone>America/Toronto</zone>
      </provided>
      <shifted>2023-06-14T12:46:53-04:00</shifted>
    </captureTimestamp>
    <source>GPS</source>
    <coordinates>
      <latitude>45.342761120048436</latitude>
      <longitude>-75.915798518297</longitude>
      <altitude>0.0</altitude>
    </coordinates>
    <accuracy>4025.286</accuracy>
    <address>2500 Solandt Rd, Kanata, ON K2K 3G5, Canada</address>
    <addressDetails>
      <source>Google</source>
      <components>
        <component>
          <shortName>2500</shortName>
          <longName>2500</longName>
          <types>
            <type>street_number</type>
          </types>
        </component>
        <component>
          <shortName>Solandt Rd</shortName>
          <longName>Solandt Road</longName>
          <types>
            <type>route</type>
          </types>
        </component>
        <component>
          <shortName>Kanata</shortName>
          <longName>Kanata</longName>
          <types>
            <type>political</type>
            <type>sublocality</type>
            <type>sublocality_level_1</type>
          </types>
        </component>
        <component>
          <shortName>Ottawa</shortName>
          <longName>Ottawa</longName>
          <types>
            <type>locality</type>
            <type>political</type>
          </types>
        </component>
        <component>
          <shortName>Ottawa</shortName>
          <longName>Ottawa</longName>
          <types>
            <type>administrative_area_level_3</type>
            <type>political</type>
          </types>
        </component>
        <component>
          <shortName>Ottawa</shortName>
          <longName>Ottawa</longName>
          <types>
            <type>administrative_area_level_2</type>
            <type>political</type>
          </types>
        </component>
        <component>
          <shortName>ON</shortName>
          <longName>Ontario</longName>
          <types>
            <type>administrative_area_level_1</type>
            <type>political</type>
          </types>
        </component>
        <component>
          <shortName>CA</shortName>
          <longName>Canada</longName>
          <types>
            <type>country</type>
            <type>political</type>
          </types>
        </component>
        <component>
          <shortName>K2K 3G5</shortName>
          <longName>K2K 3G5</longName>
          <types>
            <type>postal_code</type>
          </types>
        </component>
      </components>
    </addressDetails>
  </geoStamp>
Device details

OS type and TrueContext Mobile App version:

"device": {
        "os": "iOS",
        "osVersion": "15.5",
        "mobileAppVersion": "16.6.0.3480"
    },

OS type and TrueContext Mobile App version:

<device>
    <os>iOS</os>
    <osVersion>15.5</osVersion>
    <mobileAppVersion>16.6.0.3480</mobileAppVersion>
  </device>

Last time an answer was modified

Date and time last modified:

"lastModified": {
     "provided": {
        "time": "2023-08-10T11:05:46-04:00",
        "zone": "America/New_York"
        },
     "shifted": "2023-08-10T11:05:46-04:00"
    },

User details:

"modifiedBy": {
     "identifier": "1317016008",
     "username": "p.schmidt",
     "displayName": "Paul Schmidt"
    },

If a dispatcher prefills any answers, their user details show in the modifiedBy section.

Date and time last modified:

<lastModified>
    <provided>
       <time>2023-08-10T11:05:46-04:00</time>
       <zone>America/New_York</zone>
    </provided>
    <shifted>2023-08-10T11:05:46-04:00</shifted>
  </lastModified>

User details:

<modifiedBy identifier="1317016008">
    <username>p.schmidt</username>
    <displayName>Paul Schmidt</displayName>
  </modifiedBy>

If a dispatcher prefills any answers, their user details show in the modifiedBy section.

Info:You can also set up the question-level metadata in the following output documents:

Explanation of timestamp values

The standard downloads display two timestamps: provided and shifted.

For submitted and transferred (TrueContext Teamwork-enabled) forms:

  • provided—Timestamp in the mobile user’s time zone (from their device settings).

  • shifted—In standard downloads, the shifted timestamp is the same as the provided timestamp.

For dispatched forms, the mobile user’s time zone isn’t available to the server. In these cases, we fall back to: