I have created a Rovo agent to help me produce Release Notes in Confluence from information in Jira with a set of numbered instructions within the agent. I just have to prompt it with a Jira link and the issue type to generate a result. But I'm having trouble getting it to obey the instructions to correctly format a table.
Here's my instruction:
e) h2. Summary
Include a two column left-aligned table WITH A HEADER COLUMN, AND NO HEADER ROW and the following details.
|| Prerequisites | YES/NO (include description or if none available, state TO BE CONFIRMED) |
|| Interested Clients | List of clients or N/A |
|| Requires Configuration | YES/NO/UNKNOWN |
|| Turned on by default | YES/NO/UNKNOWN |
For examples, see [link to actual table examples in Confluence].
The results are rather hit and miss, although the contents are correct. It usually does one of the following:
Rovo seems to understand wiki markup, as it gets h2. correct for heading 2, so I don't understand why the table is so problematic.
Does anyone have any suggestions on how to fix this?
@Karen West thanks for tagging me- I appreciate the update. Unfortunately, it seems Rovo is still inconsistent with wiki-markup tables, especially when scenarios are involved. This isn’t a Skills issue; it’s a rendering limitation in the model layer. Even with an exact template, it can fall back to markdown or reinterpret the header structure.
Instead of showing an example or linking to one, paste an empty table exactly as you want it, including the header column and placeholder cells and spell out, “Replace only the <value> text. Do not modify the table structure, symbols, or alignment.”
|| Prerequisites | <value> |
|| Interested Clients | <value> |
|| Requires Configuration | <value> |
|| Turned on by default | <value> |
Tell it explicitly (be mean if you have to):
“Do NOT output markdown tables.”
“Do NOT create a header row.”
“Do NOT add h2. before each section. Only use h2. once at the start.”
Keep the instruction and example in the same scenario step. And inline the example instead of linking to it. Confluence’s auto-conversion can also change the structure, so when you can let the user click "insert into page".
@andy_johnston Currently, Rovo is more reliable when given a single deterministic template to fill instead of following 'two parts' (The industry is working towards more complex workflows but doesn't seem to be there yet). Table generation breaks down when the agent has to decide when to switch from dataset → table, or when it sees the CSV as an intermediate output. You’ll get more consistent results by collapsing everything into one step and giving it a literal “fill-in-this-structure” template. Try this and let me know how it goes:
Your output must be a Confluence wiki table using the exact template below. Do not add commentary, headers, markdown, CSV, or explanatory text.
You must follow one rule:
Replace only the <value> placeholders. Never modify the table symbols or structure.
Retrieve issues using this JQL:
(insert your JQL here)
For each issue, extract:
"Summary" → becomes <WorkItem>
"customfield_12345" → summarise into exactly 2 sentences.
If empty, use: No data available.
→ becomes <Comment>
This dataset is for your internal reasoning only. Do not output it.
Return only the table in this structure:
| **Work Item Name** | **Comment** |
| --- | --- |
| <WorkItem1> | <Comment1> |
| <WorkItem2> | <Comment2> |
| <WorkItem3> | <Comment3> |
Do not:
Switch to markdown table format
Remove the bold headers
Add or remove rows
Add narrative text
Add CSV
Only output the final table exactly in this format.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Karen West @Dr Valeri Colon _Connect Centric_ - definitely better results with the inputs. Consistent table output, consistent data in the table from the summarisations.
Any ideas on how to add the background colour markdown? Confluence must be storing this in the back end of the page, but I can't figure out how you can add it to the example?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@andy_johnston Glad the table structure is behaving now — that’s usually the hardest part. For background colors though, Rovo can’t generate them. Confluence’s table cell colors aren’t controlled by wiki markup or markdown; they’re stored as internal storage-format XML that editors generate, not users. Since Rovo agents only output plain text (wiki or markdown) and can’t emit storage-format HTML/XML, there’s no reliable way to pre-color cells from the agent. Right now the only options are:
Have Rovo generate the table, then apply colors manually in the Confluence editor, or
Use a Forge app or Confluence macro that applies styles after insertion (Rovo can’t trigger that automatically yet).
If Atlassian exposes storage-format editing to agents later, coloring will be possible — but with the current capabilities, table structure is supported, styling is not. If this is important to you consider submitting a feature request.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Karen West Rovo struggles with wiki-markup tables unless you give it an exact template. The safest fix is to include a literal “copy-this-exactly” table block in your instructions, not just examples. Tell it: “Do not create a header row. Use this exact table structure and replace only the cell values:” and paste a blank template. This forces consistent output and stops it from improvising.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Did you have any luck with this Karen? I've been trying to produce a Confluence Table output and it's so hit and miss. I tried first building a CSV, then converting into a table format, but the output always seems to come out first as plain text (Wiki markup for the table?)
In my example I've called a JQL, got the Summary and Description, and output them into CSV for the user to review, then once confirmed - converts to a "Confluence User Friendly Table"
Almost all of my table outputs are in this format:
|| Project Name || Comment ||
| Project 1 | No recent RAG status comment available. |
| Project No 2 | Migration is still in progress. |
| Test Name Project Here | Deliverables moved to 2026; Something else test text. |
Yet in some cases I'll get a Confluence table? Am I missing skills or something??
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Thanks for your response @andy_johnston I am still not getting the right results. I have updated my agent, which now uses the new scenarios feature, as follows:
e) h2. Summary
Using the exact same table format as in the following example, complete the table, as per the row headers:
https://....atlassian.net....
Prerequisites row - YES/NO (include description or if none available, state TO BE CONFIRMED) |
Interested Clients row - Bulleted list of clients or N/A. If there is ONLY ONE CLIENT do not use a bulleted list. |
Requires Configuration row - YES/NO/UNKNOWN
Turned on by default row - YES/NO/UNKNOWN
REMEMBER: THE TABLE MUST HAVE A HEADING COLUMN NOT A HEADING ROW.
The table in the URL I provided looks like this:
First my agent returned a table with the Prerequisites row as a header row. I then told it that the table should have a header column not a header row, it returned this instead:
I tried again and it reverted to using markdown:
Note also that it is now adding h2. before each heading, which is the markdown instruction. It only started doing this following the recent switch to scenarios. I told it not to to do this, and it worked for a couple of tests and then h2 reappeared.
So, in summary, I can't get it to work correctly even after providing an example empty table, as suggested by @Dr Valeri Colon _Connect Centric_
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Yeah, this is kinda where I'm at - I can't seem to get anything other than the most basic table markdown.
In my example I'm able to pass in the basic JQL, and get the table output pretty consistent now. (eg. it produces a table every time) But I've not been able to get the agent to insert the table directly into the Confluence page, the user still has to select "Insert into Page" from the agent window.
I'm unable to add any sort of header formatting like h2, h1 etc, and also I want to use the table cell background colours, and that's definitely not working either. I downloaded a Markdown editor, and it can't convert any of those text headings either, so I've reached out to the dev to see if I can get any luck there too?
This is the prompt I'm using - my custom work items have a description field (customfield_12345) which I only want a 2 sentence summary of. So you could skip that if you don't need it.
You have only one goal: to transform data from a Jira JQL output into a User Friendly Confluence Table. ONLY Generate a user friendly table, and do not add any conversational elements to the output.
-There are two parts to the Goal - the Parts need to be performed one after the other
-We have used *** to identify the two parts in the goal
-Follow the steps within each Part in sequence and exactly***
Part 1 - generate the dataset
-The dataset has 2 columns
-The first header row in the dataset is: Work Item Name, Comment
-The remaining rows of the dataset are populated from the JQL query "(insert your JQL here to retrieve work items)"
--The format of each row is as follows:
--- "Summary" field
--- A summarised version of the custom field customfield_12345 - Summarise this field into 2 sentences only. Only the summary of this field should be used, do not infer anything else. If the field customfield_10408 is empty then always use the following "No data available" as the summary.***
Part 2 - Output the User Friendly Confluence table with the exact format specified
- Pass the dataset output generated in Part 1 and generate a Confluence Table
- Output ONLY the table, with no other text or headers
- Here is an example of the exact table formatting you should use in plain text only to render the Confluence Table
| **Work Item Name** | **Comment**
| --- | ---
| Cell a1 | Cell a2
| Cell b1 | Cell b2
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.