Skip to main content

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.

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.

API Reference Card

DetailValue
Base URLhttps://app.asana.com/api/1.0
AuthPersonal Access Token (PAT) or OAuth 2.0
Rate limitsFree: ~150 req/min. Premium/Business/Enterprise: ~1,500 req/min
Key endpointsGET /projects/{id}/tasks, GET /tasks/{id}, POST /tasks/{id}/stories, GET /tasks/{id}/subtasks
PaginationCursor-based via offset token; max 100 items per page
Mavera basehttps://app.mavera.io/api/v1
Mavera authAuthorization: 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

1

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.
2

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.
3

Mavera API key

Get your key from Mavera dashboard.
4

Environment variables

export ASANA_PAT="1/1234567890:abcdef..."
export MAVERA_API_KEY="mvra_live_xxxxx"

Jobs

#JobAsana DataMavera SurfaceOutput
1Campaign Task Tracking → Content StatusProject tasks + custom fieldsMave AgentCampaign status report
2Brief → Generation AutomationCompleted brief tasksGenerateDraft content + Asana attachment
3Sprint Retro Notes → Messaging InsightsTask descriptions + commentsMave AgentMessaging strategy insights

Rate Limits & Production Notes

PlanRate LimitStrategy
Free~150 req/min400ms between calls; batch with opt_fields
Premium~1,500 req/minParallel requests OK; respect Retry-After header
Business/Enterprise~1,500 req/minUse webhooks for event-driven automation
Asana’s rate limits are approximate — they can vary by endpoint and load. Always read the Retry-After header on 429 responses. The header value is in seconds. For production, implement a token-bucket rate limiter and use opt_fields on every request to minimize response size and processing time.
Production checklist:
  • 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.offset until it’s null.
  • opt_fields: Always specify opt_fields — Asana returns minimal data by default. Without it, you get only gid and name.
  • 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.

All Integrations

Asana API Docs

Brand Voice

Mave Agent

Generate