Content of Forge macros without body not discovered by Rovo

Hello,

Rovo Assistant is not able to discover the content of Forge macros without a body (macros without a layout property in the manifest).

For example, if you ask Rovo Chat to “Summarise this page”, the content of these macros is not included in the response.

Has anyone found a way to make the content of macros without body discoverable by Rovo?

Thank you,
Luigi

Short answer, there’s no supported way today to get a bodiless macro’s rendered output into Rovo’s page summary. It comes down to where the content actually lives.

Rovo’s “summarise this page” reads the stored page body (the page ADF), not your macro’s runtime output. A bodiless macro (layout block or inline) stores nothing on the page, it renders in the resolver at view time, so that content doesn’t land in the ADF and Rovo has nothing to read for it. Only bodied gives the macro a stored rich-text body. Atlassian even notes a related exclusion on the Summarize-changes doc: “Currently, this summary doesn’t include content from macros, images, or links”.

The indexing knobs look relevant but aren’t the same thing. config.parameters[].indexing.enabled: true adds a parameter value to the Confluence search index, and confluence:contentProperty makes stored content-property JSON CQL-searchable. Both feed search and CQL, not the AI summary as far as I can find. The only content that reliably reaches the summary is what’s in the stored page.

So either restructure so the real content lives in the page or a bodied macro, or treat it as search-indexable but not summary-visible. If anyone from Atlassian can confirm whether parameter-indexed values reach Rovo’s page context, that’s the bit worth pinning down.

Thanks @Mihai_leanzero for the detailed explanation — that matches what I’ve seen as well regarding how Rovo builds its summaries from the stored page ADF.

One nuance I’ve noticed, though, is that Rovo appears to have access to the full ADF when explicitly prompted. For example, if you ask Rovo Chat “Summarise this page. Read the raw ADF format.,” it’s able to extract and summarise the content stored in macro parameters, even for bodiless macros. That suggests those parameter values are available to Rovo in that context, but they seem to be ignored by default in the standard “Summarise this page” flow.

That’s why I was wondering whether there’s a way to make those parameter values part of the default summarisation context, rather than only accessible through explicit prompting.

That suggests those parameter values are available to Rovo in that context

They are, and my “stores nothing on the page” was too broad. Config parameters do land in the stored ADF, on the extension node:

{
  "type": "extension",
  "attrs": {
    "extensionType": "com.atlassian.ecosystem",
    "extensionKey": "<app-id>/static/<macro-key>",
    "parameters": {
      "guestParams": { "myField": "some text" }
    }
  }
}

GET /wiki/api/v2/pages/<id>?body-format=atlas_doc_format shows it. What does not land there is the resolver’s rendered output, so it splits as parameters yes, rendered output no. That matches what you saw, raw ADF hands Rovo the guestParams, while the default summarise path runs on a text extraction where the extension node drops out.

I don’t know of a knob that changes that extraction. indexing.enabled is documented only as adding the parameter value to the Confluence search index, and there is an app-vendor request open for exactly this, AI-1171, whose description says macro content is excluded “even when such content is declared as indexed”. It sits at Gathering Interest with 84 votes, so voting and watching it is the lever that exists today.

For something working now, put the text in a bodied macro or in the page body, which is what the extraction actually reads.