Asana organizes your campaigns, briefs, and retros into structured projects with tasks, custom fields, and attachments. These three jobs pull task data from Asana’s REST API into Mavera (Generate, Mave Agent) to automate content production from completed briefs, generate campaign status reports, and extract messaging insights from sprint retrospectives.Documentation Index
Fetch the complete documentation index at: https://docs.mavera.io/llms.txt
Use this file to discover all available pages before exploring further.
API Reference Card
| Detail | Value |
|---|---|
| Base URL | https://app.asana.com/api/1.0 |
| Auth | Personal Access Token (PAT) or OAuth 2.0 |
| Rate limits | Free: ~150 req/min. Premium/Business/Enterprise: ~1,500 req/min |
| Key endpoints | GET /projects/{id}/tasks, GET /tasks/{id}, POST /tasks/{id}/stories, GET /tasks/{id}/subtasks |
| Pagination | Cursor-based via offset token; max 100 items per page |
| Mavera base | https://app.mavera.io/api/v1 |
| Mavera auth | Authorization: Bearer mvra_live_... |
All examples use
ASANA_PAT (a Personal Access Token from Asana Developer Console) and MAVERA_API_KEY. PATs have the same permissions as the user who created them.Prerequisites
Create an Asana Personal Access Token
Go to app.asana.com/0/developer-console → Personal Access Tokens → Create New Token. Copy it immediately — it won’t be shown again.
Identify project GIDs
Every Asana project, task, and user has a GID (global ID). Find project GIDs in the URL:
app.asana.com/0/{project_gid}/... or via GET /projects.Mavera API key
Get your key from Mavera dashboard.
Jobs
| # | Job | Asana Data | Mavera Surface | Output |
|---|---|---|---|---|
| 1 | Campaign Task Tracking → Content Status | Project tasks + custom fields | Mave Agent | Campaign status report |
| 2 | Brief → Generation Automation | Completed brief tasks | Generate | Draft content + Asana attachment |
| 3 | Sprint Retro Notes → Messaging Insights | Task descriptions + comments | Mave Agent | Messaging strategy insights |
Rate Limits & Production Notes
| Plan | Rate Limit | Strategy |
|---|---|---|
| Free | ~150 req/min | 400ms between calls; batch with opt_fields |
| Premium | ~1,500 req/min | Parallel requests OK; respect Retry-After header |
| Business/Enterprise | ~1,500 req/min | Use webhooks for event-driven automation |
- Authentication: PATs inherit user permissions and don’t expire (but can be revoked). For team automations, use a Service Account with OAuth 2.0.
- Pagination: All list endpoints return max 100 items. Follow
next_page.offsetuntil it’s null. - opt_fields: Always specify
opt_fields— Asana returns minimal data by default. Without it, you get onlygidandname. - Webhooks: For the “Brief → Generate” automation, consider Asana webhooks instead of polling. Create a webhook on the project and trigger generation when a task moves to the “Brief Complete” section.
- Idempotency: Check for existing comments before posting duplicate drafts. Search stories for your bot’s marker text.
- Mavera credits: Monitor at Dashboard.