Descrizione
Connettore enterprise per Asana — la piattaforma di project management leader di mercato per team mid-market enterprise (130k+ paying customer dal 2008, IPO 2020 con valutazione $5B+, base installata particolarmente forte nel marketing/sales/operations team distribuiti dove serve workflow visibility cross-functional) via REST API 1.0 ufficiale. Tre operazioni atomiche coprono il ciclo task management: createTask (inserisce nuovo task con titolo, note markdown rich, project_id target nel workspace, assignee_id del responsabile, due_on per scadenza, tags per categorization, parent_task per sub-task nidificate, custom_fields per workflow custom-tailored), getTask (fetch puntuale di un task by GID con tutti i field completi incluso stories timeline + memberships per multi-project task + custom_fields), addComment (story sul task — Asana chiama "stories" tutti i log events del task: comments, status updates, assignment changes, completion ticks — ognuna è una story con author + timestamp + content). Auth via Personal Access Token (formato 1/xxxxxxxx generato dall'admin Asana in Settings → Apps → Manage Developer Apps → + New Access Token) stored nel vault integration FlowForge. Multi-workspace supportato (un tenant FlowForge che gestisce N workspace Asana diversi per agency che serve N customer). Validation enterprise pre-API call: due_on scadenza validata formato YYYY-MM-DD strict (anti-errore di passing ISO 8601 con time component che Asana rigetterebbe 400), supporto multi-progetto (un task può essere assigned a multipli project simultaneamente — pattern per shared cross-team initiative), assignee_id risolto by email (lookup contro team membership cache) per pattern friendly. Pipeline anti-vulnerability enterprise: tutte le request via SSRF-safe gateway (evita di chiamare endpoint interni privati per misconfig); circuit-breaker dedicato per Asana evita hammer durante upstream outage; retry exponential backoff su 5xx e 429 transitori; body request wrappato nel formato { data: { ... } } che Asana API richiede (the envelope JSON pattern che molti developer sbagliano). Rate limit Asana: 150 req/min sustained per token (3 RPS comfortable per use case interactive), header X-RateLimit-Remaining trackato per warning preventivo. Output: { taskId? (GID Asana), url? (permalink al task nel Asana web app per click direct), task? (object completo per getTask), commentId? (story GID), createdAt, modifiedAt }. Use case: crea task automatic da email customer support in arrivo (trigger_imap + agent_email_triage + createTask nel project "Support Queue" con title cliente subject + body in note); apri ticket da errore workflow runtime (catch error handler → createTask in project "Bugs" con stack trace + run link); assegna follow-up commerciale automatic post-meeting Calendly closed-won (createTask "Send thank-you email to {{customer_name}}" assigned to AE responsabile, due +1day); sincronizzazione bidirezionale CRM Salesforce → Asana project management (lead Salesforce passa a stage "Discovery" → crea task in Asana per il consultant); genera checklist di onboarding cliente automatic (create 10 sub-task standard per ogni new customer da master template); commenta avanzamento step-by-step da sistema esterno (CI build complete → addComment su task corrispondente "✅ deploy OK at {{time}}").
