Work Items

Work Items and Events Data

Note: Work Items datasets are only available in Datastream Enterprise tiers. Please contact sales@worklytics.co for more information

Filename

items/organizationName_ANONYMIZED_ITEMS_YYYYMMDDZ00000000000N.extension

Variables:

  • default prefix: items/

  • organizationName: the slugified name of the organization

  • YYYYMMDD, week this file contains data from. Week is in ISO format, being Monday first day of the week.

  • due to size file might be split into N consecutive chunks using the suffix 0000000000N.

  • extension, depending on the format and compression, see below:

Available formats

Note: CSV is not supported for this file because is not able to represent nested objects.

Glossary

  • Source: the tools the organization has connected through Worklytics. Examples:

    • GDrive, Slack, Zoom, GCalendar, GMail, Google Directory, MSFT Office...

  • Objects: model pieces of work. Examples of objects:

    • Document or a file in GDrive

    • Slack channel

    • Zoom meeting

    • Calendar event

  • Event: actions that happened to an object, performed by employees. Examples of events:

    • Comment, upload or edit a document

    • Message sent in a Slack channel

    • Zoom meeting occurrence (the actual action of attend a meeting)

    • Calendar event attendance

  • Work Item: either an object or an event

  • Time Spent:Worklytics' estimation of the amount of time a person worked on the event

File contents

This file shows a combination of items and events associated to them for a given week. Each row is a Json object with nested objects. The structure is intended to hold heterogeneous work sources so contents of certain fields may vary depending on the item type. Properties and metrics fields are a good example of this, for example Calendar meetings may have location, Slack message's' may have a message length or Zoom meetings may encode whether they are recurring or not. An entry may be an object and/or an event. Events have the boolean field "event" value set to true.

Items export schema

Sample rows

NDJSON example (note examples are pretty printed for documentation purposes otherwise will be presented in one row each)

Here is an example of how a meeting looks like:

{
  "week": "2019-07-01",
  "id": "UNIQUE_ID_FOR_ITEM",
  "title": "Worklytics weekly meeting",
  "type": "event",
  "relatedItems": [
    {
      "itemId": {
        "orgId": "orgId",
        "integrationId": "gcal",
        "itemId": "UNIQUE_ID_FOR_RELATED_ITEM"
      },
      "type": "master",
      "relevance": "0" // deprecated, ignore
    }
  ],
  "properties": [
    {
      "name": "location",
      "value": "Meeting Room Z1"
    },
    {
      "name": "status",
      "value": "confirmed"
    },
    {
      "name": "meetingType",
      "value": "RECURRENCE"
    }
  ],
  "metrics": [
    {
      "name": "created",
      "dateValue": "2018-09-13 20:33:16 UTC"
    },
    {
      "name": "start",
      "dateValue": "2019-07-01 21:30:00 UTC"
    },
    {
      "name": "modified",
      "dateValue": "2018-12-16 05:33:21.425 UTC"
    },
    {
      "name": "end",
      "dateValue": "2019-07-01 22:00:00 UTC"
    },
    {
      "name": "durationMillis",
      "value": 1800000
    },
    {
      "name": "attendeesCount",
      "value": 4
    }
  ],
  "url": "https://www.google.com/calendar/event?eid=URL_TO_THE_EVENT",
  "creationTime": "2019-07-01 21:30:00 UTC",
  "lastActiveTime": "2019-07-01 21:30:00 UTC",
  "firstSyncTime": "2019-07-02 04:45:43.386 UTC",
  "lastSyncTime": "2019-07-03 04:50:27.359 UTC",
  "lastUpdateTime": "2019-07-03 04:50:27.537 UTC",
  "integrationId": "gcal",
  "orgId": "worklytics.co",
  "sourceConnectionId": "CONN_ID", // internal, ignore
  "detailVisibilitySetting": "ORG", // internal, ignore
  "parentId": {
    "orgId": "worklytics.co",
    "integrationId": "gcal",
    "itemId": "UNIQUE_ID_FOR_MASTER_ITEM" // may not exist if is a "top level" item
  },
  "relations": [
    {
      "type": "creator",
      "employeeId": "A000001",
      "properties": []
    },
    {
      "type": "organizer",
      "employeeId": "A000001",
      "properties": []
    }
  ]
}

This is what an event attendance looks like:

{
  "week": "2019-07-01",
  "id": "UNIQUE_ID_FOR_PARENT_20190703T090000Z:attendance",
  "title": "Worklytics weekly meeting",
  "type": "attendance",
  "relatedItems": [
    {
      "itemId": {
        "orgId": "worklytics.co",
        "integrationId": "gcal",
        "itemId": "UNIQUE_ID_FOR_PARENT"
      },
      "type": "master",
      "relevance": "100"
    },
    {
      "itemId": {
        "orgId": "worklytics.co",
        "integrationId": "gcal",
        "itemId": "UNIQUE_ID_FOR_PARENT"
      },
      "type": "master",
      "relevance": "0"
    }
  ],
  "properties": [
    {
      "name": "location",
      "value": "Meeting Room Blue"
    },
    {
      "name": "status",
      "value": "confirmed"
    },
    {
      "name": "meetingType",
      "value": "RECURRENCE"
    }
  ],
  "metrics": [
    {
      "name": "created",
      "dateValue": "2018-12-28 10:10:43 UTC"
    },
    {
      "name": "start",
      "dateValue": "2019-07-03 09:00:00 UTC"
    },
    {
      "name": "modified",
      "dateValue": "2019-01-28 06:30:24.34 UTC"
    },
    {
      "name": "end",
      "dateValue": "2019-07-03 09:30:00 UTC"
    },
    {
      "name": "durationMillis",
      "value": 1800000
    },
    {
      "name": "attendeesCount",
      "value": 4
    }
  ],
  "url": "https://www.google.com/calendar/event?eid=ID_FOR_URL",
  "creationTime": "2019-07-03 09:00:00 UTC",
  "lastActiveTime": "2019-07-03 09:30:00 UTC",
  "firstSyncTime": "2019-07-04 04:49:05.49 UTC",
  "lastSyncTime": "2019-07-05 05:44:34.226 UTC",
  "lastUpdateTime": "2019-07-05 07:36:43.54 UTC",
  "integrationId": "gcal",
  "orgId": "worklytics.co",
  "sourceConnectionId": "CONN_ID",
  "detailVisibilitySetting": "ORG",
  "parentId": {
    "orgId": "worklytics.co",
    "integrationId": "gcal",
    "itemId": "UNIQUE_ID_FOR_PARENT"
  },
  "relations": [
    {
      "type": "creator",
      "employeeId": "A000001",
      "properties": []
    },
    {
      "type": "attendee",
      "employeeId": "A000002",
      "properties": [
        {
          "name": "participationStatus",
          "value": "NEEDS_ACTION"
        },
        {
          "name": "responseStatus",
          "value": "needsAction"
        }
      ],
      "directTimeSpent": "1800000",
      "exclusiveTimeSpent": "900000",
      "exclusiveMeetingTimeSpent": "900000"
    },
    {
      "type": "attendee",
      "employeeId": "A000003",
      "properties": [
        {
          "name": "participationStatus",
          "value": "ACCEPTED"
        },
        {
          "name": "responseStatus",
          "value": "accepted"
        }
      ]
    },
    {
      "type": "attendee",
      "employeeId": "A000001",
      "properties": [
        {
          "name": "participationStatus",
          "value": "ACCEPTED"
        },
        {
          "name": "responseStatus",
          "value": "accepted"
        }
      ]
    },
    {
      "type": "attendee",
      "employeeId": "A000005",
      "properties": [
        {
          "name": "participationStatus",
          "value": "ACCEPTED"
        },
        {
          "name": "responseStatus",
          "value": "accepted"
        }
      ]
    },
    {
      "type": "organizer",
      "employeeId": "A000001",
      "properties": []
    },
  ]
}

List of possible values for items and relations. List may grow over time.

Last updated