Asana
Create Asana tasks from Safeguard. What the Asana personal access token needs, which tokens work, and step-by-step setup.
Availability
This integration is switched on per workspace. If you do not see the card under Integrations, ask your Safeguard contact.
What it does
The Asana card connects Safeguard to one Asana project. Safeguard creates Asana tasks for the findings and work you send to Asana and adds comments to them as they change. Find the card under Integrations on the Notification tab.
Public vs private
This does not apply to Asana: you always connect your own Asana workspace with a token.
Supported auth methods
| Method | Use it when | Notes |
|---|---|---|
| Personal access token (dialog label Personal Access Token) | All connections | Created in the Asana developer console. It acts on behalf of the person who created it |
| OAuth (sign in with Asana) | Not available yet |
Permissions required
Asana describes a personal access token as acting on your behalf, so what Safeguard can do depends on its user's access. Safeguard uses it to read your workspaces and projects and to create tasks and comments. It never edits or deletes other tasks or projects.
| What the token's user needs | Required? | What Safeguard uses it for |
|---|---|---|
| Membership in the workspace | Required | Checking the token (/users/me) and listing projects (/projects?workspace=) |
| Access to the chosen project, with permission to add tasks | Required | Reading the project and creating tasks (POST /tasks) |
| Permission to comment on tasks | Required | Adding comments to the tasks it created (POST /tasks/{task}/stories) |
Least privilege: a token of a dedicated Asana user who is a member of the one project only.
Token types
| Token type | Works? | Notes |
|---|---|---|
| Personal access token | Yes | Sent as a Bearer token |
| Service account token | Not tested | |
| OAuth access token | Not available yet | The dialog takes a personal access token |
Expiry: Asana personal access tokens do not expire by default (Enterprise+ admins can change how they are handled). Review and replace them on a fixed schedule, such as every 90 days.
What we never need: organization admin rights, or access to projects other than the one you choose.
Step-by-step setup
Create the credential in Asana
- Open the Asana developer console (
https://app.asana.com/0/my-apps). - Create a new personal access token and give it a description such as
Safeguard. - Copy the token. Keep it secret: it acts as you.
Or check it with curl
curl -s https://app.asana.com/api/1.0/users/me -H "Authorization: Bearer $ASANA_TOKEN"Connect it in Safeguard
- Open Integrations and choose the Notification tab.
- Click Connect on the Asana card.
- On Credentials, enter an Integration Name, an optional Description, and paste the Personal Access Token. If you belong to several workspaces, enter the Workspace GID to list that workspace's projects (otherwise Safeguard uses your first workspace).
- Click Next. On Destination, choose the Project.
- Click Connect.
Webhooks and triggers
The dialog does not set up Asana webhooks yet, so changes made in Asana are not sent back to Safeguard. Safeguard creates tasks and adds comments when the events you route to Asana happen.
What we read and store
- Read: the token's user and workspaces, and the projects of the workspace.
- Stored: the connection's name, workspace and project, links between Safeguard items and Asana tasks, and the token. Safeguard never shows the token again in the dialog.
- Sent to Asana: task names, descriptions and comments about your Safeguard findings.
- No customer data from this integration is sent to third-party LLMs.
Troubleshooting
| Message you see | Cause | Fix |
|---|---|---|
Asana validation failed: ... | Asana refused the token, or the user cannot see the project | Create a new token, or add the user to the project |
Asana connection error: ... | Safeguard could not reach Asana | Try again in a few minutes |
No projects found for these credentials | The workspace has no projects the user can see, or the wrong workspace was used | Enter the right Workspace GID, or add the user to the project |
Rotation and disconnect
- Rotate: create a new token in the developer console, open the Asana connection on the Notification tab, choose Update, paste the new token and choose Save Changes. Then deauthorize the old token.
- Disconnect: choose Delete on the connection, then deauthorize the token in the developer console. Tasks already created stay in Asana.
Vendor references
- Asana personal access token, checked 2026-10-16.