Asana Data Inspection
Asana is a SaaS platform for project management. It is designed to help you track, keep projects organized, and hit deadlines.
In order to integrate Asana Data Inspection with Relyance AI, you will want a Service Account Token* (please see Appendix: Tokens).
The service account token is only available for enterprise subscriptions. This provides access to both public and private projects.
Personal tasks that are not linked to any project are inaccessible.
Relyance will scan every task associated with a project that has been created or modified in the last 6 months.
In Asana:
- Login to your Asana account as a Super admin.
- Go to your Admin console.
- Click the Apps tab from within your admin console.
- Click Service accounts.
- Click the Add Service Account button.
- Fill out the details in the resulting dialog.
- Copy the Service Account Token to be used in Relyance AI.
In the Relyance AI application:
- Login to your Relyance account.
- Navigate to the Settings Menu in the bottom left-hand side.
- Select Integrations.
- Click on the Vendors and Data Stores filter.
- Find the Asana integration card and click it to open its connections.
- Under Authentication Method, choose Access Token with Data Inspection.

- Paste the Access Token from the Asana page into the respective field.
- Set the Min Likelihood. The Asana Data Inspection integration uses the following potential likelihoods to identify PI data: - very unlikely
- unlikely
- possible
- likely
- very likely The more unlikely this is set to, the more false positives will show in Relyance.
- Click Authenticate.
- At this point, you should see the following result on the Vendor Integrations page:

- Congratulations, you are now connected to Asana.
Appendix:
Tokens
The Asana integration is compatible with both Personal Account Tokens and Service Account Tokens. If you opt to use a Personal Account Token, please note that Relyance will only be able to access the projects to which your account has permissions. This includes both public projects and the private ones associated with your account.
For a more comprehensive access that includes both private and public projects, we recommend using a Service Account Token.
For instructions on how to use a Personal Account Token with Asana, please refer to this guide.
If the connection reports Connected but returns nothing
These are the ways this integration comes back empty without reporting an error. Generated from the integration catalog, so it tracks what the connection actually asks for.
- A feature you enabled returns nothing. Some scopes belong to a feature rather than to the connection: Data subject requests needs
users:read,workspaces:read. Turning the feature on after the connection exists does not widen the grant it already holds, so re-authenticate the connection. - A credential rotated at the vendor is not picked up here. Access Token is stored when you save the connection, so regenerating the value at the vendor breaks the next scan until it is re-pasted here. Recording the expiry on the connection means Relyance warns you before it lapses.
- Throughput is limited on purpose. Maximum Concurrent API Calls defaults to
45. Raising it past what the vendor allows produces rate-limit errors that surface as a partial scan; it does not change how much data is collected.
Authentication methods and fields
Pick one of these under Authentication Method on the connection wizard's Authentication step. This table is generated from the integration catalog, so it always matches what the form actually asks for.
| Method | Required | Optional |
|---|---|---|
| Custom | Access Token (secret) |
Maximum Concurrent API Calls |
| Access Token with Data Inspection | Access Token (secret) |
White List Project IDs, Maximum Concurrent API Calls |
Manage this integration with Terraform
Connections for this integration can be managed as code with the Relyance Terraform provider. Non-secret fields go in auth.params; secret fields go in auth.secrets_wo, which is write-only — never stored in Terraform state. Rotate secrets by bumping auth.secrets_wo_version.
Access token — Custom
resource "relyance_integration_connection" "asana_0" {
vendor = "asana"
name = "<your connection name>"
auth = {
method = "access-token-standard"
params = {
data_storage_location = "us"
}
# Secret fields are write-only: sent to Relyance, never stored in state.
secrets_wo = {
ACCOUNT_TOKEN = var.asana_account_token
}
secrets_wo_version = 1
}
scans = { "data-inspection" = { enabled = true } }
}Access token — Access Token with Data Inspection
resource "relyance_integration_connection" "asana_1" {
vendor = "asana"
name = "<your connection name>"
auth = {
method = "access-token-with-data-inspection"
params = {
data_storage_location = "us"
}
# Secret fields are write-only: sent to Relyance, never stored in state.
secrets_wo = {
ACCOUNT_TOKEN = var.asana_account_token
}
secrets_wo_version = 1
}
scans = { "data-inspection" = { enabled = true } }
}