Asana’s rich text API doesn’t use standard HTML. It accepts a strict subset with specific rules: only certain tags are allowed, nesting rules differ from what browsers tolerate, and the format is closer to XML than HTML, meaning unclosed tags, loose attributes, or anything outside the allowed set will be rejected or silently mangled.

LLMs tend to produce plausible-looking but subtly wrong output here. They’ll use tags Asana doesn’t support, nest things incorrectly, or generate valid HTML that Asana’s parser rejects.

To fix this I wrote a reference document covering the full tag set, allowed attributes, nesting rules, and examples. I feed it to LLMs as context when I need them to generate Asana rich text content.

Asana Rich Text API Reference →