Asana Sanitized Data

The following table(s) contains detailed examples of the metadata fields available from the Asana API endpoints Worklytics leverages. In order to pseudonymize and sanitize PII and other potentially sensitive data, Worklytics provides access to a Data Loss Prevention (DLP) Proxy, which allows customers to pre-filter metadata, within customer infrastructure, before it is sent to Worklytics for processing.

These are the fields Worklytics recommends but the Worklytics DLP Proxy provides full field-level control and therefore any field may be removed or sanitized.

Field descriptions are taken from third party API documentation, these are maintained on a best effort basis and Worklytics can not guarantee their indefinite accuracy. Please refer to the source API site for the most up-to-date documentation.

How to read the "DLP Proxy" column in the table(s):

⭕ This field is transformed, usually partially redacted

🟡 This field is "pseudonymized" by the DLP Proxy: only a SHA256 hash of its value is sent to Worklytics; never the value itself

To see the full (unsanitized) version of this document, click here.

Worklytics requires access to the following API primary endpoints:

ModelDescriptionAPI docs

Used to retrieve a list of teams for a given workspace Endpoints: /api/1.0/workspaces/{workspaceId}/teams

Used to retrieve a list of workspaces (all projects and tasks have an associated workspace) Endpoints: /api/1.0/workspaces

Used to retrieve a list of users (a user object represents an account in Asana that can be given access to various workspaces, projects, and tasks) Endpoints: /api/1.0/users

Used to retrieve a list of projects for a given team Endpoints: /api/1.0/teams/{teamId}/projects

Used to retrieve a list of tasks (or an individual one). Also used to search for tasks in a workspace, and retrieve subtasks of a given task. Endpoints: /api/1.0/tasks /api/1.0/tasks/{taskId} /api/1.0/tasks/{taskId}/subtasks /api/1.0/workspaces/{workspaceId}/tasks/search

Used to retrieve a list of stories associated with a task. Endpoints: /api/1.0/tasks/{taskId}/stories

TeamCompact

API docs: https://developers.asana.com/reference/getteamsforworkspace

DLP Proxy docs: Asana

DLP ProxyProperty NameTypeDescription

🟡 Pseudonymized

gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

resourceType

String

WorkspaceCompact

API docs: https://developers.asana.com/reference/workspaces

DLP Proxy docs: Asana

DLP ProxyProperty NameTypeDescription

🟡 Pseudonymized

gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

resourceType

String

User

API docs: https://developers.asana.com/docs/users

DLP Proxy docs: Asana

DLP ProxyProperty NameTypeDescription

🟡 Pseudonymized

email

String

The user's email address Raw example: alice@acme.com Sanitized example:

{
	"scope":"email",
	"domain":"acme.com",
	"hash":"aT3usZghgyWmDoXRncq5qhmQJQMjY49xDJylpM4TyYI"
}

🟡 Pseudonymized

gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

resourceType

String

ProjectCompact

API docs: https://developers.asana.com/reference/projects

DLP Proxy docs: Asana

DLP ProxyProperty NameTypeDescription

🟡 Pseudonymized

gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

resourceType

String

Task

API docs: https://developers.asana.com/reference/tasks

DLP Proxy docs: Asana

DLP ProxyProperty NameTypeDescription

🟢 Allowed

actualTimeMinutes

Long

🟢 Allowed

approvalStatus

String

🟡 Pseudonymized

assignee

User

The user to whom the task is assigned. Any PII data is pseudonymized.

🟢 Allowed

assigneeSection

Resource

🟢 Allowed

assigneeStatus

String

🟢 Allowed

completed

Boolean

🟢 Allowed

completedAt

Instant

🟡 Pseudonymized

completedBy

User

The user who completed the task. Any PII data is pseudonymized.

🟢 Allowed

createdAt

Instant

🟡 Pseudonymized

createdBy

User

The user who created the task. Any PII data is pseudonymized.

🟡 Pseudonymized

createdBy.email

String

The user's email address Raw example: alice@acme.com Sanitized example:

{
	"scope":"email",
	"domain":"acme.com",
	"hash":"aT3usZghgyWmDoXRncq5qhmQJQMjY49xDJylpM4TyYI"
}

🟡 Pseudonymized

createdBy.gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

createdBy.resourceType

String

🟡 Pseudonymized

customFields[]

List of CustomField

🟢 Allowed

customFields[].asanaCreatedField

String

🟡 Pseudonymized

customFields[].createdBy

User

Any PII data is pseudonymized.

🟢 Allowed

customFields[].currencyCode

String

🟢 Allowed

customFields[].customLabel

String

🟢 Allowed

customFields[].customLabelPosition

String

🟢 Allowed

customFields[].dateValue

CustomFieldDate

🟢 Allowed

customFields[].dateValue.date

LocalDate

🟢 Allowed

customFields[].dateValue.dateTime

String

🟢 Allowed

customFields[].displayValue

String

🟢 Allowed

customFields[].enabled

Boolean

🟡 Pseudonymized

customFields[].enumOptions[]

List of EnumObject

🟢 Allowed

customFields[].enumOptions[].enabled

Boolean

🟡 Pseudonymized

customFields[].enumOptions[].gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

customFields[].enumOptions[].resourceType

String

🟢 Allowed

customFields[].enumValue

EnumObject

🟢 Allowed

customFields[].format

String

🟡 Pseudonymized

customFields[].gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

customFields[].hasNotificationsEnabled

Boolean

🟢 Allowed

customFields[].isGlobalToWorkspace

Boolean

🟢 Allowed

customFields[].multiEnumValues[]

List of EnumObject

🟢 Allowed

customFields[].numberValue

String

🟢 Allowed

customFields[].peopleValue[]

List of Resource

🟢 Allowed

customFields[].precision

Integer

🟢 Allowed

customFields[].resourceSubtype

String

🟢 Allowed

customFields[].resourceType

String

🟢 Allowed

customFields[].textValue

String

🟢 Allowed

customFields[].type

String

🟡 Pseudonymized

dependencies[]

List of Resource

🟡 Pseudonymized

dependencies[].gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

dependencies[].resourceType

String

🟢 Allowed

dependents[]

List of Resource

🟢 Allowed

dueAt

Instant

🟢 Allowed

dueOn

LocalDate

🟡 Pseudonymized

followers[]

List of User

List of users following the task. Any PII data is pseudonymized.

🟡 Pseudonymized

gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

is_rendered_as_separator

Boolean

🟢 Allowed

liked

Boolean

🟡 Pseudonymized

likes[]

List of UserInteraction

User interactions of the task. Any PII data is pseudonymized.

🟡 Pseudonymized

likes[].gid

String

Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟡 Pseudonymized

likes[].user

User

Any PII data is pseudonymized.

🟢 Allowed

memberships[]

List of Membership

🟢 Allowed

memberships[].project

Resource

🟢 Allowed

memberships[].section

Resource

🟢 Allowed

modifiedAt

Instant

🟢 Allowed

numHearts

Integer

🟢 Allowed

numLikes

Integer

🟢 Allowed

numSubtasks

Integer

🟢 Allowed

parent

Task

🟢 Allowed

permalinkUrl

String

🟡 Pseudonymized

projects[]

List of ProjectCompact

🟡 Pseudonymized

projects[].gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

projects[].resourceType

String

🟢 Allowed

resourceSubtype

String

🟢 Allowed

resourceType

String

🟢 Allowed

startAt

Instant

🟢 Allowed

startOn

LocalDate

🟡 Pseudonymized

tags[]

List of TagCompact

🟡 Pseudonymized

tags[].gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

tags[].resourceType

String

🟡 Pseudonymized

workspace

WorkspaceCompact

🟡 Pseudonymized

workspace.gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

workspace.resourceType

String

Story

API docs: https://developers.asana.com/reference/stories

DLP Proxy docs: Asana

DLP ProxyProperty NameTypeDescription

🟡 Pseudonymized

assignee

User

Any PII data is pseudonymized.

🟡 Pseudonymized

assignee.email

String

The user's email address Raw example: alice@acme.com Sanitized example:

{
	"scope":"email",
	"domain":"acme.com",
	"hash":"aT3usZghgyWmDoXRncq5qhmQJQMjY49xDJylpM4TyYI"
}

🟡 Pseudonymized

assignee.gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

assignee.resourceType

String

🟢 Allowed

createdAt

Instant

🟡 Pseudonymized

createdBy

User

Any PII data is pseudonymized.

🟡 Pseudonymized

customField

CustomField

🟢 Allowed

customField.asanaCreatedField

String

🟡 Pseudonymized

customField.createdBy

User

Any PII data is pseudonymized.

🟢 Allowed

customField.currencyCode

String

🟢 Allowed

customField.customLabel

String

🟢 Allowed

customField.customLabelPosition

String

🟢 Allowed

customField.dateValue

CustomFieldDate

🟢 Allowed

customField.dateValue.date

LocalDate

🟢 Allowed

customField.dateValue.dateTime

String

🟢 Allowed

customField.displayValue

String

🟢 Allowed

customField.enabled

Boolean

🟡 Pseudonymized

customField.enumOptions[]

List of EnumObject

🟢 Allowed

customField.enumOptions[].enabled

Boolean

🟡 Pseudonymized

customField.enumOptions[].gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

customField.enumOptions[].resourceType

String

🟢 Allowed

customField.enumValue

EnumObject

🟢 Allowed

customField.format

String

🟡 Pseudonymized

customField.gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

customField.hasNotificationsEnabled

Boolean

🟢 Allowed

customField.isGlobalToWorkspace

Boolean

🟢 Allowed

customField.multiEnumValues[]

List of EnumObject

🟢 Allowed

customField.numberValue

String

🟡 Pseudonymized

customField.peopleValue[]

List of Resource

🟡 Pseudonymized

customField.peopleValue[].gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

customField.peopleValue[].resourceType

String

🟢 Allowed

customField.precision

Integer

🟢 Allowed

customField.resourceSubtype

String

🟢 Allowed

customField.resourceType

String

🟢 Allowed

customField.textValue

String

🟢 Allowed

customField.type

String

🟡 Pseudonymized

dependency

ResourceWithSubtype

🟡 Pseudonymized

dependency.gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

dependency.resourceSubtype

String

🟢 Allowed

dependency.resourceType

String

🟢 Allowed

duplicateOf

ResourceWithSubtype

🟢 Allowed

duplicatedFrom

ResourceWithSubtype

🟡 Pseudonymized

follower

User

Any PII data is pseudonymized.

🟡 Pseudonymized

gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

htmlText

String

🟢 Allowed

isEditable

Boolean

🟢 Allowed

isEdited

Boolean

🟢 Allowed

isPinned

Boolean

🟢 Allowed

liked

Boolean

🟡 Pseudonymized

likes[]

List of UserInteraction

Any PII data is pseudonymized.

🟡 Pseudonymized

likes[].gid

String

Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟡 Pseudonymized

likes[].user

User

Any PII data is pseudonymized.

🟢 Allowed

newApprovalStatus

String

🟢 Allowed

newDates

StoryDate

🟢 Allowed

newDates.dueAt

Instant

🟢 Allowed

newDates.dueOn

LocalDate

🟢 Allowed

newDates.startOn

LocalDate

🟢 Allowed

newEnumValue

EnumObject

🟢 Allowed

newMultiEnumValues[]

List of EnumObject

🟢 Allowed

newName

String

🟢 Allowed

newNumberValue

String

🟢 Allowed

newPeopleValue

Resource

🟢 Allowed

newResourceSubtype

String

🟢 Allowed

newSection

Resource

🟢 Allowed

newTextValue

String

🟢 Allowed

numHearts

Integer

🟢 Allowed

numLikes

Integer

🟢 Allowed

oldApprovalStatus

String

🟢 Allowed

oldDates

StoryDate

🟢 Allowed

oldEnumValue

EnumObject

🟢 Allowed

oldMultiEnumValues[]

List of EnumObject

🟢 Allowed

oldName

String

🟢 Allowed

oldNumberValue

String

🟢 Allowed

oldPeopleValue

Resource

🟢 Allowed

oldResourceSubtype

String

🟢 Allowed

oldSection

Resource

🟢 Allowed

oldTextValue

String

🟡 Pseudonymized

previews[]

List of Preview

🟢 Allowed

previews[].fallBack

String

🟢 Allowed

previews[].footer

String

🟡 Pseudonymized

previews[].gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

previews[].header

String

🟢 Allowed

previews[].headerLink

String

🟢 Allowed

previews[].htmlText

String

🟢 Allowed

previews[].resourceType

String

🟢 Allowed

previews[].text

String

🟢 Allowed

previews[].title

String

🟢 Allowed

previews[].titleLink

String

🟡 Pseudonymized

project

ProjectCompact

🟡 Pseudonymized

project.gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

project.resourceType

String

🟢 Allowed

resourceSubtype

String

🟢 Allowed

resourceType

String

🟢 Allowed

source

String

🟢 Allowed

stickerName

String

🟡 Pseudonymized

story

StoryCompact

🟢 Allowed

story.createdAt

Instant

🟡 Pseudonymized

story.createdBy

User

Any PII data is pseudonymized.

🟡 Pseudonymized

story.gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

story.resourceSubtype

String

🟢 Allowed

story.resourceType

String

🟡 Pseudonymized

tag

TagCompact

🟡 Pseudonymized

tag.gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

tag.resourceType

String

🟡 Pseudonymized

target

Task

🟢 Allowed

target.actualTimeMinutes

Long

🟢 Allowed

target.approvalStatus

String

🟡 Pseudonymized

target.assignee

User

The user to whom the task is assigned. Any PII data is pseudonymized.

🟢 Allowed

target.assigneeSection

Resource

🟢 Allowed

target.assigneeStatus

String

🟢 Allowed

target.completed

Boolean

🟢 Allowed

target.completedAt

Instant

🟡 Pseudonymized

target.completedBy

User

The user who completed the task. Any PII data is pseudonymized.

🟢 Allowed

target.createdAt

Instant

🟡 Pseudonymized

target.createdBy

User

The user who created the task. Any PII data is pseudonymized.

🟢 Allowed

target.customFields[]

List of CustomField

🟢 Allowed

target.dependencies[]

List of Resource

🟢 Allowed

target.dependents[]

List of Resource

🟢 Allowed

target.dueAt

Instant

🟢 Allowed

target.dueOn

LocalDate

🟡 Pseudonymized

target.followers[]

List of User

List of users following the task. Any PII data is pseudonymized.

🟡 Pseudonymized

target.gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

target.is_rendered_as_separator

Boolean

🟢 Allowed

target.liked

Boolean

🟡 Pseudonymized

target.likes[]

List of UserInteraction

User interactions of the task. Any PII data is pseudonymized.

🟢 Allowed

target.memberships[]

List of Membership

🟢 Allowed

target.memberships[].project

Resource

🟢 Allowed

target.memberships[].section

Resource

🟢 Allowed

target.modifiedAt

Instant

🟢 Allowed

target.numHearts

Integer

🟢 Allowed

target.numLikes

Integer

🟢 Allowed

target.numSubtasks

Integer

🟢 Allowed

target.parent

Task

🟢 Allowed

target.permalinkUrl

String

🟢 Allowed

target.projects[]

List of ProjectCompact

🟢 Allowed

target.resourceSubtype

String

🟢 Allowed

target.resourceType

String

🟢 Allowed

target.startAt

Instant

🟢 Allowed

target.startOn

LocalDate

🟢 Allowed

target.tags[]

List of TagCompact

🟡 Pseudonymized

target.workspace

WorkspaceCompact

🟡 Pseudonymized

target.workspace.gid

String

Globally unique identifier of the resource Raw example: 4831887 Sanitized example:

p~SIoJOpeSgYF7YUP

🟢 Allowed

target.workspace.resourceType

String

🟢 Allowed

task

Task

🟢 Allowed

type

String

Last updated