Work Items
Work Items and Events Data
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
Format | Compression | Extension |
---|---|---|
NONE,GZIP | .json[.gz] | |
NONE,SNAPPY,DEFLATE | .avro | |
NONE,SNAPPY,GZIP,ZSTD | .parquet[.gz] |
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
Field | Type | Description and examples |
---|---|---|
week | DATE | The ISOWEEK this work item happened |
id | STRING | The id of the work item |
type | STRING | Type of work item: file, meeting, slack channel... |
relatedItems | RECORD | Other work items related to this one, if any |
├─ itemId | RECORD | Structure that holds the related item identifier |
├─── orgId | STRING | Organization this item belongs to |
├─── integrationId | STRING | DEPRECATED |
├─── sourceKindId | STRING | Source |
├─── itemId | STRING | Id |
├─ type | STRING | Type of relation (parent, in-reply-to emails...) |
metrics | RECORD | Metrics for work item. Can be collected from source or derived. Value can either be numeric or a date |
├─ name | STRING | Metric name |
├─ value | FLOAT | Numeric value (examples: meeting duration, file size) |
├─ dateValue | TIMESTAMP | Timestamp (example: meeting start) |
url | STRING | The url associated with the work item if any |
contentType | STRING | Content type. Usually present in items related to files (ex: application/vnd.google-apps.spreadsheet) |
creationTime | TIMESTAMP | When the item was created |
lastActiveTime | TIMESTAMP | When the item was last actioned (created and active are same in events) |
firstSyncTime | TIMESTAMP | DEPRECATED. |
lastSyncTime | TIMESTAMP | DEPRECATED. |
lastUpdateTime | TIMESTAMP | When the item was seen by Worklytics |
integrationId | STRING | DEPRECATED |
sourceKindId | STRING | Source of item |
orgId | STRING | Organization this item belongs to |
sourceConnectionId | INTEGER | Worklytics identifier for customer connector |
detailVisibilitySetting | STRING | DEPRECATED. |
event | BOOLEAN | True if the work item is an event |
parentId | RECORD | Parent id of the work item if any |
├─ orgId | STRING | Organization this item belongs to |
├─ integrationId | STRING | DEPRECATED |
├─ sourceKindId | STRING | Source |
├─ itemId | STRING | Id |
title | STRING | Title of the item if available (email subject, file name, pull request name...) |
relations | RECORD | People related to this item |
├─ type | STRING | Type of relation (attendee, creator, organizer, editor...) |
├─ employeeId | STRING | Employee ID, if action taken by employee in Worklytics records, or, |
├─ externalId | STRING | Anonymized external identifier of the person that did the action |
├─ properties | RECORD | Properties associated with the action (example: RSVP status on meeting, lenght of comment,...) |
├─── name | STRING | Name |
├─── value | STRING | Value |
├─ directTimeSpent | INTEGER | Time spent working on an event (in milliseconds) |
├─ exclusiveTimeSpent | INTEGER | Time spent working exclusively on this event given their concurrent work (in milliseconds) |
├─ exclusiveMeetingTimeSpent | INTEGER | Meetings only. Time spent working exclusively on the meeting considering other concurrent meetings (in milliseconds) |
properties | RECORD | Properties of the item, vary across sources |
├─ name | STRING | Name |
├─ value | STRING | Value |
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:
This is what an event attendance looks like:
List of possible values for items and relations. List may grow over time.
Source (integrationId) | Item type | Relation type |
---|---|---|
gapps_groups | manager | |
gapps_groups | member | |
gapps_groups | owner | |
gcal | attendance | attendee |
gcal | attendance | creator |
gcal | attendance | organizer |
gcal | attendance | resource |
gcal | event | attendee |
gcal | event | creator |
gcal | event | organizer |
gdrive | file | owner |
gdrive | file | reader |
gdrive | file | writer |
gdrive | revision | author |
github | actor | |
github | commit | author |
github | issue | creator |
github | issue_comment | author |
github | issue_comment_created | subject |
github | issue_comment_edited | subject |
github | issue_opened | subject |
github | pull | contributor |
github | pull | reviewer |
github | pull_request | contributor |
github | pull_request_assigned | subject |
github | pull_request_closed | subject |
github | pull_request_comment | author |
github | pull_request_create | creator |
github | pull_request_edited | subject |
github | pull_request_labeled | subject |
github | pull_request_merge | merger |
github | pull_request_opened | subject |
github | pull_request_reopened | subject |
github | pull_request_review_comment | author |
github | pull_request_review_comment_created | subject |
github | pull_request_review_comment_deleted | subject |
github | pull_request_review_comment_edited | subject |
github | pull_request_review_request_removed | subject |
github | pull_request_review_requested | subject |
github | pull_request_unassigned | subject |
github | pull_request_unlabeled | subject |
github | push | sender |
gmail | chat | From |
gmail | chat | To |
gmail | chat_sent | From |
gmail | message | BCC |
gmail | message | CC |
gmail | message | From |
gmail | message | To |
gmail | message_sent | From |
jira | comment | author |
jira | comment_created | author |
jira | issue | assignee |
jira | issue | attachmentAuthor |
jira | issue | creator |
jira | issue_created | actor |
jira | issue_deleted | actor |
jira | issue_resolved | actor |
jira | issue_updated | actor |
slack | channel | channel_creator |
slack | channel | channel_member |
slack | message | author |
slack | message | mentioned |
slack | message | reactor |
Last updated