<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mikhail Klimenko</title>
    <description>The latest articles on DEV Community by Mikhail Klimenko (@mikhailklimenko).</description>
    <link>https://dev.to/mikhailklimenko</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4111646%2F512278b1-27fa-4800-a2b5-316bb50e0700.jpg</url>
      <title>DEV Community: Mikhail Klimenko</title>
      <link>https://dev.to/mikhailklimenko</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mikhailklimenko"/>
    <language>en</language>
    <item>
      <title>How to find orphaned pages in Confluence Cloud</title>
      <dc:creator>Mikhail Klimenko</dc:creator>
      <pubDate>Thu, 24 Sep 2026 23:02:38 +0000</pubDate>
      <link>https://dev.to/mikhailklimenko/how-to-find-orphaned-pages-in-confluence-cloud-19i4</link>
      <guid>https://dev.to/mikhailklimenko/how-to-find-orphaned-pages-in-confluence-cloud-19i4</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer.&lt;/strong&gt; Next to your space's name in the sidebar, select &lt;strong&gt;More actions&lt;/strong&gt; (the three dots), then &lt;strong&gt;Space settings&lt;/strong&gt;. Open the &lt;strong&gt;Content&lt;/strong&gt; menu and select &lt;strong&gt;Hidden&lt;/strong&gt;. That screen is the one Atlassian describes as the place where "Confluence lets you see a list of orphaned items in your space".&lt;/p&gt;

&lt;p&gt;The menu item says Hidden. The thing you were looking for is called orphaned. That single mismatch is why this question has been asked on the Atlassian community for years by people who were, at the time, two clicks away from the answer.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hidden and orphaned are not the same word for the same thing
&lt;/h2&gt;

&lt;p&gt;They arrive at the same screen, and they mean different things, which is worth holding straight before you start cleaning anything up.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Orphaned&lt;/strong&gt; is about links. Atlassian's definition is blunt: "If you do not have &lt;em&gt;any&lt;/em&gt; incoming links, your page or live doc will be an orphan." Nothing points at it. It is not that the page is broken, it is that nothing in your documentation refers to it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hidden&lt;/strong&gt; is about the tree. An item becomes hidden when it is moved to the root of the space, which, as the documentation puts it, "removes the item from your content tree so people can't find it by browsing through the tree". You do it deliberately: space settings, the Content menu, &lt;strong&gt;Reorder&lt;/strong&gt;, then drag the item up to the same level as the home page.&lt;/p&gt;

&lt;p&gt;So one is a consequence of how people wrote, and the other is a choice somebody made. The documentation treats them together and the interface shows them in one list, which is convenient right up to the moment you assume everything in that list got there the same way.&lt;/p&gt;

&lt;h3&gt;
  
  
  The dangerous half of the word "hidden"
&lt;/h3&gt;

&lt;p&gt;It does not hide anything from anyone. Atlassian says it plainly: "Hidden (and orphaned) items still show up in search results, and can be accessed if someone has the page or doc URL."&lt;/p&gt;

&lt;p&gt;If you moved a page out of the tree because it held salary bands or an unfinished policy, it is still in search and still opens for anyone with the link. The documentation offers the honest alternative in one line: "If you don't want anyone to find a page or doc, you don't need to hide it" — use restrictions, archive it, or delete it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why pages end up orphaned
&lt;/h2&gt;

&lt;p&gt;Three ways, and only one of them is anyone's fault.&lt;/p&gt;

&lt;p&gt;A page was created from a link that was later removed or rewritten, so the only thing that pointed at it is gone. A page was moved during a reorganisation and the pointers stayed behind. Or a page was never linked at all: somebody created it from the plus button, wrote it, published it, and moved on. That last one is the most common in practice, because creating a page in Confluence does not require you to say where it belongs.&lt;/p&gt;

&lt;p&gt;The reason to care is not tidiness. An orphan is a page nobody arrives at by reading, which means it never gets corrected. It still comes up in search though, which is the worst combination: invisible to the people who maintain the documentation, visible to the person who searched for it today and believed it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the clean-up stops
&lt;/h2&gt;

&lt;p&gt;Finding the list is one click. Doing something with it at scale is where Confluence Cloud stops short, and it is better to know that before you promise a clean-up by Friday.&lt;/p&gt;

&lt;p&gt;The bulk tool is the content manager, and Atlassian describes it as "an admin tool available in &lt;strong&gt;Confluence Premium&lt;/strong&gt; and &lt;strong&gt;Enterprise&lt;/strong&gt;". It is genuinely good at what it does: archive up to 500 items at a time, delete up to 100, change owner or status across a selection. Its documented filters are last active, pages with deactivated owners, statuses, labels, types, contributors, last updated and created dates.&lt;/p&gt;

&lt;p&gt;Read that filter list again and notice what is not in it: orphaned, or hidden. The place that lists your orphans has no documented bulk actions, and the tool with bulk actions has no documented filter for orphans. Selecting every orphaned page in a space and clearing them in one pass is not a workflow the documentation describes, on any plan.&lt;/p&gt;

&lt;p&gt;One more gap worth naming, because people expect it to exist: the Cloud documentation does not describe a screen that lists incoming links for a given page. Incoming links appear in it only as the definition of an orphan. If you remember that view from an older Confluence, check your own site before planning around it rather than trusting a memory or an article, including this one.&lt;/p&gt;

&lt;h2&gt;
  
  
  The arithmetic on a real space
&lt;/h2&gt;

&lt;p&gt;A three-year-old space with a few hundred pages usually turns up somewhere between twenty and eighty items in that Hidden list. Opening each one, reading enough to judge it, and deciding between keep, link, archive and delete runs about two minutes an item once you are warmed up. Fifty items is a focused afternoon, and it is an afternoon that does not repeat, because the ones you keep get linked and stop being orphans.&lt;/p&gt;

&lt;p&gt;What does repeat is the trickle: every month adds a few more, created from the plus button by people who were in a hurry. That is the part worth automating, and the honest version of automating it is a list somebody sees, not a report nobody opens.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do on Monday
&lt;/h2&gt;

&lt;p&gt;Open the Hidden list in your busiest space and read the titles, not the pages. Titles alone sort most of it: obvious drafts, duplicates with a number on the end, and the two or three documents that turn out to be load-bearing and simply lost their link. Link those back into the tree first, because that is the change that stops somebody rewriting a policy that already exists.&lt;/p&gt;

&lt;p&gt;Then check the same list against the calendar. A page that is both orphaned and untouched for a year is a safe archive. A page that is orphaned but edited last week is not junk, it is someone working outside the tree, and deleting it will cost you a conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure: I build &lt;a href="https://horizonventures.app/smart-search.html" rel="noopener noreferrer"&gt;Smart Search&lt;/a&gt;&lt;/strong&gt;, which builds live lists of pages from plain conditions, such as a space, some labels, or pages not updated for six months, and puts that list on an ordinary page on any plan. It is honest to say what it is not: it works from those conditions, not from link structure, so it is the tool for the stale half of this job, not for finding orphans. For orphans specifically, the built-in Hidden list is the right answer and it costs nothing. If that is all you needed, you are done.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Do orphaned pages hurt our search results inside Confluence?&lt;/strong&gt; They appear in search like anything else, which is the point of the problem rather than a side effect. The cost is not ranking, it is that outdated pages keep answering questions long after everyone stopped maintaining them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is archiving better than deleting?&lt;/strong&gt; For anything with a trace of institutional memory, yes. Archiving removes an item from the sidebar and search results while keeping it, which is exactly what you want for last year's process that somebody will ask about in March.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I stop pages becoming orphans in the first place?&lt;/strong&gt; Partly, and it is a habit rather than a setting: create pages from the parent page rather than from the plus button, so the tree places them for you. Nothing enforces it, which is why the Hidden list keeps refilling.&lt;/p&gt;

</description>
      <category>confluence</category>
      <category>atlassian</category>
      <category>documentation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to export a Confluence database to Excel</title>
      <dc:creator>Mikhail Klimenko</dc:creator>
      <pubDate>Mon, 21 Sep 2026 20:06:38 +0000</pubDate>
      <link>https://dev.to/mikhailklimenko/how-to-export-a-confluence-database-to-excel-19c4</link>
      <guid>https://dev.to/mikhailklimenko/how-to-export-a-confluence-database-to-excel-19c4</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short version:&lt;/strong&gt; you cannot export a Confluence database to Excel directly. The database exports to CSV, and Excel opens the CSV. That is a one-minute job, and everything worth knowing here is about what happens afterwards.&lt;/p&gt;

&lt;h2&gt;
  
  
  The steps
&lt;/h2&gt;

&lt;p&gt;Open the database, open the more menu (the three dots) at its top right, choose &lt;strong&gt;Export&lt;/strong&gt;, and pick a format. Atlassian documents three: CSV, HTML and PDF. CSV is the one for a spreadsheet, and Atlassian describes it as "ideal for importing data into other database tools or spreadsheets". There is no XLSX option anywhere in that menu.&lt;/p&gt;

&lt;p&gt;One checkbox matters: &lt;strong&gt;Export with current view&lt;/strong&gt;. Ticked, the export keeps the view you are looking at. Left alone, you get all the data in a plain table layout. If you spent an afternoon building a filtered view for the finance team, that tick is the difference between sending them their view and sending them the whole database.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the database already does, before you export anything
&lt;/h2&gt;

&lt;p&gt;People export to Excel for two different reasons, and only one of them needs Excel.&lt;/p&gt;

&lt;p&gt;If the reason is arithmetic, look under the field first. A Confluence database can show calculations beneath a column: for number fields Sum, Average, Min, Max, Count values, Count unique values, Count empty and Percent empty; for other field types the four counting ones. You turn one on by picking &lt;strong&gt;Calculate&lt;/strong&gt; under the field. A total that lives in the database stays right when the data changes, which a total in last month's spreadsheet does not.&lt;/p&gt;

&lt;p&gt;What the documentation does not describe anywhere is formulas or calculated columns: there is no documented way to make one field compute from another. So if your case is a running cost column, the export to Excel is not a workaround, it is the only route.&lt;/p&gt;

&lt;h2&gt;
  
  
  The trap is on the way back
&lt;/h2&gt;

&lt;p&gt;Exporting is easy. Bringing the data home is where people lose an evening, and Atlassian documents exactly why.&lt;/p&gt;

&lt;p&gt;Import into a database takes CSV only. During that import, &lt;strong&gt;dates are read month first&lt;/strong&gt;. The documentation is blunt about it: "Confluence databases assume month comes first for dates, so 12/06/2025 will be treated as December 6, 2025" rather than Jun 12, 2025. It also states plainly: "We do not support date field through autoconversion/autodetection." So a European-formatted date column comes back as a different set of dates, quietly, in the rows where the day is twelve or lower. The rows where the day is above twelve are the lucky ones, because those break loudly.&lt;/p&gt;

&lt;p&gt;Two more documented surprises from the same page. Text columns can arrive as tag fields: "String fields in CSV may get converted to tag fields", which happens when most of the values repeat. And the first row of your CSV becomes the field names, with duplicates renamed automatically.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What to do.&lt;/strong&gt; Before a round trip, switch date columns to an unambiguous form, ISO style, year first. Import one copy into an empty test database and look at February before you touch the real one. And when the import offers you a choice between creating new fields, adding to existing fields and replacing the entire database, read that dialog twice: the third option does what it says.&lt;/p&gt;

&lt;h2&gt;
  
  
  The arithmetic, if you do this monthly
&lt;/h2&gt;

&lt;p&gt;One database is a minute of clicking. The cost appears when the answer lives in several of them.&lt;/p&gt;

&lt;p&gt;Each database is exported from its own menu, one at a time, and each download lands as its own file. Twelve databases across a space is roughly ten to fifteen minutes of clicking and renaming, plus the merge afterwards, and it repeats every month because the export is a snapshot rather than a link. That is not a disaster, it is a standing appointment with an evening.&lt;/p&gt;

&lt;p&gt;Worth knowing before you plan around it: databases are not available in the Atlassian Government environment, and the documentation lists other things they do not work with, including anonymous access, admin key, Atlassian Analytics, Atlassian Data Lake, data connectors, screen readers and keyboard navigation, and some Marketplace apps. Atlassian says that list is not exhaustive.&lt;/p&gt;

&lt;p&gt;Two questions people expect answered here, and the honest answer to both is that the documentation is silent. It says nothing about which plans include databases: the only availability limit stated is the Government environment one. And it does not say whether databases are included in a space export, in either direction; the space export page lists blog posts, comments and Team Calendars as exclusions and never mentions databases. If either point matters to your migration, test it on one space rather than trusting an article, including this one.&lt;/p&gt;

&lt;h2&gt;
  
  
  If your data is not in a database at all
&lt;/h2&gt;

&lt;p&gt;Half the people who search for this do not have a database. They have ordinary tables on ordinary pages, which look similar and behave nothing alike: no export menu, no calculations under the column, and no CSV.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure: I build &lt;a href="https://horizonventures.app/table-export.html" rel="noopener noreferrer"&gt;Table Export&lt;/a&gt;&lt;/strong&gt;, which covers that second case, taking one table, a page, or every table in a space into a single workbook with a sheet per table. It does not replace the database export: if your data is in a database, the built-in CSV export above already does the job and you do not need my app. That is the honest split, and it costs me nothing to say, because half of these searches genuinely end at the Atlassian menu.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Does the export include the calculations shown under a field?&lt;/strong&gt; The documentation does not say. Treat the export as the rows, recreate totals in the spreadsheet, and check the first file you send anyone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I get the data out without downloading files by hand?&lt;/strong&gt; Not through the documented database export, which is a per-database menu action. If you need it scheduled, the honest answer is that this is a script-and-API job, not a menu one.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why not just use HTML export?&lt;/strong&gt; It is genuinely useful for one thing the CSV cannot do: Atlassian notes the HTML export gives you the option to copy the data to the clipboard, which is faster when you only need to paste a small table into an email.&lt;/p&gt;

</description>
      <category>confluence</category>
      <category>atlassian</category>
      <category>database</category>
      <category>spreadsheets</category>
    </item>
    <item>
      <title>How to make a diagram clickable in Confluence Cloud</title>
      <dc:creator>Mikhail Klimenko</dc:creator>
      <pubDate>Sat, 19 Sep 2026 14:52:21 +0000</pubDate>
      <link>https://dev.to/mikhailklimenko/how-to-make-a-diagram-clickable-in-confluence-cloud-120k</link>
      <guid>https://dev.to/mikhailklimenko/how-to-make-a-diagram-clickable-in-confluence-cloud-120k</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer.&lt;/strong&gt; If the diagram lives in a diagramming app such as draw.io or Gliffy, select a shape and add a link to it: both support links on shapes, pointing at a Confluence page, an external URL or another diagram. If the diagram is a plain image, Confluence can make the whole image one link, but not different parts of it. If the diagram is an SVG file you attached, the links inside it will not work on the page.&lt;/p&gt;

&lt;p&gt;People have been asking this on the Atlassian community for more than a decade, and the answer splits cleanly in two. It is a two-minute job if the diagram was drawn inside Confluence, and a different problem entirely if the diagram arrived as a file.&lt;/p&gt;

&lt;h2&gt;
  
  
  draw.io: select the shape, Edit Link
&lt;/h2&gt;

&lt;p&gt;Open the diagram in the editor, click the shape, then right-click and choose &lt;strong&gt;Edit Link&lt;/strong&gt;. The same command sits in the &lt;strong&gt;Arrange&lt;/strong&gt; tab of the format panel on the right, and the keyboard shortcut is Alt+Shift+L.&lt;/p&gt;

&lt;p&gt;The dialog offers more than a plain URL. A web link opens in a new browser tab. &lt;strong&gt;Page Content&lt;/strong&gt; lists the headings of the Confluence page the diagram sits on, so a box can jump the reader to a section further down. That list is generated from the published page, so if it comes up empty, publish the page first and reopen the dialog.&lt;/p&gt;

&lt;p&gt;Readers get a hint for free: hovering a linked shape outlines it, so people discover the diagram is navigable without being told.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gliffy: link the shape or the text inside it
&lt;/h2&gt;

&lt;p&gt;Gliffy does the same job from its link toolbar, on a shape or on a piece of text, pointing at a web address, a Confluence page, an attachment or another Gliffy diagram.&lt;/p&gt;

&lt;p&gt;One detail from their documentation is worth copying as a house rule, because it prevents a class of dead links. When linking to a Confluence page, use the &lt;strong&gt;Search&lt;/strong&gt; option in the Insert Link window rather than pasting the address from the browser. Gliffy then stores the short Atlassian link, the ugly &lt;code&gt;/x/ZygVQ&lt;/code&gt; kind, which keeps pointing at the same page after it is renamed or moved to another space. A pasted URL contains the page title and breaks the day somebody rewrites it.&lt;/p&gt;

&lt;h2&gt;
  
  
  A plain image gets one link, not several
&lt;/h2&gt;

&lt;p&gt;If what you have is a PNG of a diagram, select it in the editor and use the link icon in the floating toolbar. That turns the picture into a link, the whole picture, as one target. It is the right tool for a banner or an icon that should open one place.&lt;/p&gt;

&lt;p&gt;What it cannot do is give each box its own destination. Confluence Cloud has no hotspot editor for regions of an image, so an architecture map saved as a PNG stays a picture of a map.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why an attached SVG loses its links
&lt;/h2&gt;

&lt;p&gt;This is the case that sends people looking for an answer, because an SVG genuinely does contain links. You exported it from Figma, Visio, Inkscape, Graphviz or an architecture tool, the file opens in a browser and every box works. Attach it to a Confluence page and it becomes a flat picture.&lt;/p&gt;

&lt;p&gt;The reason is how the file is displayed. Confluence Cloud shows an attached SVG through its media viewer as a rendered picture, not as live markup inside the page. The separate suggestion to allow SVG tags in a page storage format, &lt;a href="https://jira.atlassian.com/browse/CONFCLOUD-36336" rel="noopener noreferrer"&gt;CONFCLOUD-36336, "Allow SVG in Storage Format"&lt;/a&gt;, has been open since January 2015 and is still marked &lt;em&gt;Gathering Interest&lt;/em&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  The confusing part, worth knowing before you plan around it
&lt;/h3&gt;

&lt;p&gt;The ticket most people find is &lt;a href="https://jira.atlassian.com/browse/CONFCLOUD-1762" rel="noopener noreferrer"&gt;CONFCLOUD-1762, "Embedding of SVG"&lt;/a&gt;, opened in 2004 and carrying 367 votes, and it was closed as &lt;strong&gt;Fixed&lt;/strong&gt; on 10 September 2024. That looks like the answer, and it is not. What shipped was the new SVG rendering engine announced in October 2023, which addressed SVG 1.2 support, text dropping out and poor rendering of Mermaid diagrams. Better viewing, not interactivity. The product manager's note at the time also asked people to reattach existing SVG files so the new engine would redraw them, which is good advice if your diagram looks wrong and beside the point if your problem is that clicking does nothing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The arithmetic, if you are deciding whether to redraw
&lt;/h2&gt;

&lt;p&gt;There is a free way out of the SVG case. draw.io imports SVG files, along with VSDX from Visio, Lucidchart files and PNG, through &lt;strong&gt;File → Import from → Device&lt;/strong&gt; or by dragging the file onto the canvas. Import the diagram, add the links inside draw.io, and you have a clickable diagram with no extra app.&lt;/p&gt;

&lt;p&gt;Work out whether that is a one-off or a habit. Adding a link to a shape takes twenty to thirty seconds once you know where the dialog is, so a forty-box service map costs fifteen to twenty minutes. Paid once, that is nothing. The question is what happens on the next export.&lt;/p&gt;

&lt;p&gt;If the diagram is drawn by a human and changes twice a year, import it and forget this article. If the SVG is generated, by Graphviz, Structurizr, a Mermaid or PlantUML build step, or any pipeline that redraws the picture from the system it describes, then every regeneration produces a file with the links already in it and no links in your Confluence copy. You are back to fifteen minutes of clicking, on a schedule. That is the case where redrawing is the wrong answer, because you are hand-maintaining something a machine already produced correctly.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do about the exports
&lt;/h2&gt;

&lt;p&gt;Whatever route you take, do not let clicking a box be the only way to reach the page behind it. Diagrams come out of a PDF export as pictures, and a printed runbook whose navigation lived in the diagram is a runbook with no navigation. Put the important destinations in a list under the picture as well. It costs one line, and it also makes those links visible to search, which pixels are not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure: I build &lt;a href="https://horizonventures.app/clickable-svg.html" rel="noopener noreferrer"&gt;Clickable SVG&lt;/a&gt;&lt;/strong&gt;, an app for exactly the last case, an SVG that already has its links and needs them working on a Confluence page without being redrawn. If your diagram does not exist yet, or exists once and never changes, draw it in draw.io or Gliffy and link the shapes there. That is free, it is the path the Atlassian ecosystem is built around, and you will not need my app. If your case is simpler, take the simpler option.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Can a shape link to a heading on a different page?&lt;/strong&gt; Link to the page and add the anchor to the address yourself. The heading picker in the editor works on the page the diagram sits on, which covers the common case of a diagram acting as a table of contents for a long document.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is there a way to keep one diagram and use it on several pages?&lt;/strong&gt; Both diagramming apps support reusing a diagram across pages rather than copying it, which matters more than it sounds. A copied diagram is a diagram that will be updated in one place and stale in three.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What about diagrams generated from code?&lt;/strong&gt; Text-based diagrams are the strongest option when the picture has to track a system that keeps changing, since the build redraws it. Decide in advance how the links get in, because that is the part the generator usually does and the page usually loses.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does any of this depend on the Confluence plan?&lt;/strong&gt; The behaviour described here is about how diagrams and attachments are displayed, not about plan tiers. App pricing is a separate question and changes over time, so check the current listing of whichever diagramming app you are considering.&lt;/p&gt;

</description>
      <category>confluence</category>
      <category>atlassian</category>
      <category>documentation</category>
      <category>diagrams</category>
    </item>
    <item>
      <title>Confluence databases or a table on a page</title>
      <dc:creator>Mikhail Klimenko</dc:creator>
      <pubDate>Wed, 16 Sep 2026 18:13:06 +0000</pubDate>
      <link>https://dev.to/mikhailklimenko/confluence-databases-or-a-table-on-a-page-43e6</link>
      <guid>https://dev.to/mikhailklimenko/confluence-databases-or-a-table-on-a-page-43e6</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer.&lt;/strong&gt; Use a &lt;strong&gt;table&lt;/strong&gt; when the rows belong to the text around them: a budget inside a proposal, a comparison inside a specification. Use a &lt;strong&gt;database&lt;/strong&gt; when the rows are the point and people will filter, sort and keep adding to them: a register of documents, assets, risks, suppliers. And before you commit either way, check how the data comes back out, because that is where both of them disappoint people.&lt;/p&gt;

&lt;h2&gt;
  
  
  What a database actually gives you
&lt;/h2&gt;

&lt;p&gt;A Confluence database is a separate piece of content that lives in the space tree, next to pages, with permissions handled at the space level like everything else. You create it from the Create menu, from the plus next to Content in the sidebar, or by typing &lt;code&gt;/database&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;What you get that a table cannot do:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Typed fields.&lt;/strong&gt; A date is a date, an owner is a person, a link is a link. Confluence knows what the value means instead of treating everything as text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Filters.&lt;/strong&gt; Filter by a field with real conditions, is, is not, contains, and work with the result.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Saved views.&lt;/strong&gt; The same data shown several ways, each view keeping its own filters and sorting, so "open items only" and "everything by owner" are two clicks, not two tables.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Aggregates.&lt;/strong&gt; A sum or an average at the bottom of a field, saved as part of the view.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;One source, many pages.&lt;/strong&gt; The database can be shown on the pages that need it instead of being copied into each of them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What a plain table gives you
&lt;/h2&gt;

&lt;p&gt;Less, and that is sometimes the right answer. A table sits inside the page, in the flow of the text, and is written and read together with it. It takes any layout you like, including merged cells and mixed content in a cell. Readers can sort it by a column while viewing the page, ascending or descending.&lt;/p&gt;

&lt;p&gt;No setup, no separate object to find, no permissions of its own to think about. For a table that exists to support the paragraph above it, that is the whole requirement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the database stops
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Limit&lt;/th&gt;
&lt;th&gt;What it means in practice&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;No per-row formulas&lt;/td&gt;
&lt;td&gt;You cannot make a column that computes amount multiplied by rate. Aggregates at the bottom of a field exist, per-row calculation does not. Atlassian has an open suggestion, CONFCLOUD-78459, and until it ships the workaround is to calculate elsewhere and type the result in.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Export is manual&lt;/td&gt;
&lt;td&gt;CSV, HTML or PDF, exported by a person from the database. Fine occasionally. There is no practical way to pull the content through the Cloud REST API, so a scheduled export or a feed into a reporting tool is not something you can build today.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Size&lt;/td&gt;
&lt;td&gt;No published row limit, but large databases get slow, and community reports describe imports of a few thousand rows with many columns failing outright. Test with your own data before migrating a big register.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;It is not a spreadsheet&lt;/td&gt;
&lt;td&gt;People arrive expecting Excel behaviour, cells referring to other cells, and that model does not exist here at all.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The formula gap is the one that catches teams out. A register of invoices where the total has to be quantity times price looks like an obvious fit for a database right until you try to build that column.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the table stops
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;No filters.&lt;/strong&gt; Sorting by a column exists for readers, filtering does not. A hundred-row table is a hundred rows for everybody.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Merged cells switch sorting off&lt;/strong&gt; for the whole table, and merged cells are exactly what people use to make a table readable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Nothing is typed.&lt;/strong&gt; A date in a cell is a piece of text that looks like a date, which is why the same column ends up holding 16/09/2026, Sep 16 and "next Tuesday".&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;No export at all.&lt;/strong&gt; Confluence exports whole pages to PDF and Word, and has no built-in way to send a table to Excel or CSV.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to choose, in one question
&lt;/h2&gt;

&lt;p&gt;Ask what happens if you delete the surrounding page. If the rows should survive, they are a register and belong in a database. If the rows make no sense without the paragraphs around them, they belong in a table on that page.&lt;/p&gt;

&lt;p&gt;A second question worth asking early: who needs this data outside Confluence, and how often. Monthly, by hand, from one place is a different answer from every week, from forty pages, into a finance spreadsheet.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting the data back out
&lt;/h2&gt;

&lt;p&gt;This is the part that decides more cases than any feature comparison. A database exports itself to CSV, HTML or PDF, which covers the occasional manual export and nothing beyond it. A table on a page has no export at all: you select it, copy it, paste it into a spreadsheet, and discover that merged cells shifted the columns after the first merge, silently, while the numbers still look perfectly reasonable.&lt;/p&gt;

&lt;p&gt;For one table today, copy and paste and be done. The arithmetic changes when it is the same tables every month, from pages spread across a space, and when the shifted column ends up in a report that somebody signs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I build &lt;a href="https://horizonventures.app/table-export.html" rel="noopener noreferrer"&gt;Table Export for Confluence&lt;/a&gt;, which covers that last case: one table, a whole page, or every table in a space into a single Excel workbook, each sheet labelled with the page it came from, with merged cells expanded so the columns stay aligned. It works on tables in pages, not on databases, which export themselves. It runs inside Atlassian's infrastructure, so page content is read in your own site and nothing is sent to me.&lt;/p&gt;

&lt;p&gt;If your data already lives in a database and you export it twice a year, use the built-in CSV and spend nothing. Most cases genuinely are that simple.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions people ask
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can a database replace a spreadsheet?
&lt;/h3&gt;

&lt;p&gt;Not while there are no per-row formulas. It replaces a list you were keeping in a spreadsheet for lack of anywhere better, which is a large share of such spreadsheets, but it does not replace a model where cells depend on each other.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I show a database on a page?
&lt;/h3&gt;

&lt;p&gt;Yes, and that is the normal way to use one: the data lives in the database, and the pages that need it show it. That is the main structural advantage over tables, which have to be copied.&lt;/p&gt;

&lt;h3&gt;
  
  
  Do database permissions work separately from the space?
&lt;/h3&gt;

&lt;p&gt;Database access follows Confluence content permissions and is managed at the space level, the same as pages. There is no separate permission system to learn, which also means no per-row visibility.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I migrate my existing tables into databases?
&lt;/h3&gt;

&lt;p&gt;Only the ones that are registers. Moving a table that explains a document into a database makes the document worse and helps nobody. And test with a copy first if the table is large.&lt;/p&gt;

</description>
      <category>confluence</category>
      <category>atlassian</category>
      <category>documentation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to move a Google Doc into Confluence Cloud</title>
      <dc:creator>Mikhail Klimenko</dc:creator>
      <pubDate>Tue, 15 Sep 2026 21:22:47 +0000</pubDate>
      <link>https://dev.to/mikhailklimenko/how-to-move-a-google-doc-into-confluence-cloud-5e68</link>
      <guid>https://dev.to/mikhailklimenko/how-to-move-a-google-doc-into-confluence-cloud-5e68</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer.&lt;/strong&gt; Confluence Cloud imports Google Docs directly. Start creating a page, open &lt;strong&gt;More actions&lt;/strong&gt; next to the Share button, choose &lt;strong&gt;Templates and import&lt;/strong&gt;, open the &lt;strong&gt;Import&lt;/strong&gt; tab, pick Google Doc and authorise your account. The document arrives as a Confluence page. For a short document that really is the end of it. Shared drives, images and any document long enough to deserve more than one page are where the trouble lives.&lt;/p&gt;

&lt;h2&gt;
  
  
  The path that works
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Select Create&lt;/strong&gt; in the top navigation, or the plus next to Content in the sidebar. This matters more than it sounds: the import belongs to page creation. If you are sitting in an existing page looking for an import button, you will not find one, and nothing on screen explains why.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Next to Share, select More actions&lt;/strong&gt;, then &lt;strong&gt;Templates and import&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open the Import tab&lt;/strong&gt; and choose what you are bringing in: a Word document, a Google Doc or a OneDrive document.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Authorise Google&lt;/strong&gt; and pick the file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Select Finish.&lt;/strong&gt; Each file you import becomes its own Confluence page.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Several documents can come in at once. Atlassian is explicit that the requirements differ between importing one file and importing a batch, and that they vary by document type, so the sensible move is to test with your own files rather than plan a migration around a number you read somewhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the built-in import gets right
&lt;/h2&gt;

&lt;p&gt;It deserves credit. There is no download, convert and re-upload dance: Confluence talks to Google directly, and the file never lands on your laptop. Body text, lists and most tables come through in a state you can work with. Bringing in a folder of separate documents, each becoming its own page, is genuinely quick. If your job is "we have forty meeting notes in Drive and they should live in the wiki", this feature does that job and you can stop reading here.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it breaks
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Situation&lt;/th&gt;
&lt;th&gt;What actually happens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Document on a shared drive&lt;/td&gt;
&lt;td&gt;The picker shows your personal Drive and the document simply is not in the list. This comes up repeatedly in the Atlassian Community and there is no setting on the Confluence side that fixes it.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"This file can't be imported"&lt;/td&gt;
&lt;td&gt;A flat refusal with a generic explanation about file type or permissions. Usually the wrong type, or a document you opened through a link without real access to it.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Images&lt;/td&gt;
&lt;td&gt;Usually fine, sometimes not: community reports describe pictures arriving as placeholders where the image should be. Always look at the imported page before you delete anything.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heading levels&lt;/td&gt;
&lt;td&gt;The document title becomes the page title, and everything under it shifts up a level. Your Heading 2 sections arrive looking like top-level headings.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Shapes and drawings&lt;/td&gt;
&lt;td&gt;Atlassian documents plainly that shapes in Word documents are replaced with placeholders. Diagrams drawn inside the document do not survive as diagrams.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anything long&lt;/td&gt;
&lt;td&gt;One file becomes one page, however long the file was.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The failure that costs money is not the obvious one. A refused import is visible and you deal with it. A page that imported cleanly except for four missing images looks finished, gets linked from three other pages, and the gap is found by the person who needed exactly that diagram.&lt;/p&gt;

&lt;h2&gt;
  
  
  The .docx detour
&lt;/h2&gt;

&lt;p&gt;When the Google path refuses, go around it. In Google Docs choose &lt;strong&gt;File, Download, Microsoft Word (.docx)&lt;/strong&gt;, then import that file through the same Import tab as a Word document. Only the .docx extension is accepted.&lt;/p&gt;

&lt;p&gt;This is the standard answer in the community for shared drive documents, and it is worth knowing for a second reason: it gives you a file you can edit before importing. If the document needs cutting up, and long ones do, you have to be holding a file to cut it.&lt;/p&gt;

&lt;h2&gt;
  
  
  One file, one page, and why that hurts
&lt;/h2&gt;

&lt;p&gt;Confluence Cloud creates a single page per imported document. That is fine for meeting notes and wrong for anything structured. A sixty page handbook arrives as a single page of endless scroll, with no navigation, nothing anyone can link to by section, and a table of contents that is just a list of anchors on one giant page.&lt;/p&gt;

&lt;p&gt;The option to split a document into several pages by heading level does exist in Atlassian's own product line, but in &lt;strong&gt;Confluence Data Center&lt;/strong&gt;, where the import screen offers one page or multiple pages built from heading levels. Cloud does not have that screen. People arrive from Data Center, go looking for the choice, and conclude they have missed a setting. They have not.&lt;/p&gt;

&lt;h3&gt;
  
  
  How long the manual way takes
&lt;/h3&gt;

&lt;p&gt;Say the handbook has twenty five sections that each deserve a page. Per section: create the page, copy the section across, fix the headings that shifted, put back the images, place it in the right spot in the tree. Six to eight minutes when nothing fights back. That is roughly three hours for the document, and the part that stings is that it comes back on the next revision, because the source of truth is still the document and somebody will rewrite four sections in it next quarter.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do with the long ones
&lt;/h2&gt;

&lt;p&gt;Two honest options. Cut the document into separate files in Word or Docs first, one per intended page, and import them as a batch: tedious but free, and completely predictable. Or use an app that does the splitting during import, which is worth it only when this happens more than once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I build &lt;a href="https://horizonventures.app/word-import.html" rel="noopener noreferrer"&gt;Word Import for Confluence&lt;/a&gt;, which reads the headings in a .docx and creates the page tree from them in one pass, instead of one long page. It runs inside Atlassian's own infrastructure, so the file is processed in your site and nothing is sent to me. It is an app for the structured case, and it is currently going through Marketplace review.&lt;/p&gt;

&lt;p&gt;If your case is a folder of meeting notes, use the built-in import and spend nothing. The free path is genuinely good at the job it was built for, and most documents never need more than it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions people ask
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Where is the import if I am already editing a page?
&lt;/h3&gt;

&lt;p&gt;It is not there. Document import happens while creating a page, through More actions, Templates and import. Editing an existing page gives you no import option, which is the single most common reason people conclude Cloud cannot import at all.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I import straight from a Google shared drive?
&lt;/h3&gt;

&lt;p&gt;Often not. The picker tends to show the personal Drive only. Download the document as .docx and import it as a Word file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does the imported page stay connected to the Google Doc?
&lt;/h3&gt;

&lt;p&gt;No. The import is a one-time conversion. Edits made afterwards in Google do not reach Confluence, and edits in Confluence do not reach Google. If you need the document to stay live in its original home, embed it with the Google Drive macro instead of importing it.&lt;/p&gt;

&lt;h3&gt;
  
  
  How many documents can I import at once?
&lt;/h3&gt;

&lt;p&gt;More than one, and the requirements differ between a single import and a bulk import and depend on the document type. Atlassian says so without publishing one number that covers every case, so test on your own files before committing a migration plan to a figure.&lt;/p&gt;

&lt;h3&gt;
  
  
  Can I import a PDF?
&lt;/h3&gt;

&lt;p&gt;Not as page content. The import handles Word, Google Docs and OneDrive documents. A PDF can be attached to a page, which is a different thing: an attachment is a file sitting on a page, not text anyone can edit or search inside the way page content is searched.&lt;/p&gt;

</description>
      <category>confluence</category>
      <category>atlassian</category>
      <category>documentation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>The Confluence content manager: what it does and where it stops</title>
      <dc:creator>Mikhail Klimenko</dc:creator>
      <pubDate>Sat, 12 Sep 2026 03:20:10 +0000</pubDate>
      <link>https://dev.to/mikhailklimenko/the-confluence-content-manager-what-it-does-and-where-it-stops-4fjl</link>
      <guid>https://dev.to/mikhailklimenko/the-confluence-content-manager-what-it-does-and-where-it-stops-4fjl</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer.&lt;/strong&gt; The content manager is a screen inside a Confluence space's settings. It lists everything in that space except blogs, filters the list by last activity, labels, status, type and contributor, and then archives, deletes, re-owns or re-statuses hundreds of items in one action. It is available only on &lt;strong&gt;Confluence Premium and Enterprise&lt;/strong&gt;: if it is missing from your Space settings, that is almost always why. Its &lt;em&gt;Last active&lt;/em&gt; filter is the fastest native way to find forgotten pages, and it carries one catch the screen never mentions: &lt;strong&gt;it leaves out every page that has children&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where it is
&lt;/h2&gt;

&lt;p&gt;Open the space. Next to the space name in the sidebar choose &lt;strong&gt;More actions&lt;/strong&gt;, the three dots, then &lt;strong&gt;Space settings&lt;/strong&gt;, then &lt;strong&gt;Content manager&lt;/strong&gt;. You need to be a space admin of that space. It works on one space at a time, and Atlassian is specific about the scope: a space admin can use it to organise all of a space's content &lt;em&gt;except blogs&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;That last detail matters more than it sounds. If your team publishes announcements and decisions as blog posts, the content manager will not show you a single one of them, no matter how old.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it can filter
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Filter&lt;/th&gt;
&lt;th&gt;What you can ask for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Last active&lt;/td&gt;
&lt;td&gt;Four fixed periods: over 7 days, over 1 month, over 3 months, over 6 months&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Last updated&lt;/td&gt;
&lt;td&gt;A date range you supply&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Created&lt;/td&gt;
&lt;td&gt;A date range you supply&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Labels&lt;/td&gt;
&lt;td&gt;Content carrying particular labels&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Statuses&lt;/td&gt;
&lt;td&gt;Content with a given page status&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Types&lt;/td&gt;
&lt;td&gt;Databases, folders, pages, live docs, smart links, whiteboards&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Contributors&lt;/td&gt;
&lt;td&gt;Content a given person worked on&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pages with deactivated owners&lt;/td&gt;
&lt;td&gt;Content owned by people who have left&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Notice the shape of that list. &lt;em&gt;Last active&lt;/em&gt; is the only filter that thinks in relative time, and it does so in four fixed steps. &lt;em&gt;Last updated&lt;/em&gt; and &lt;em&gt;Created&lt;/em&gt; want real dates, which is a different question: "updated between March and June" is an investigation, "not touched for six months" is an audit.&lt;/p&gt;

&lt;p&gt;The filter worth knowing precisely is &lt;em&gt;Last active&lt;/em&gt;. It means no views, no updates and no comments in the period. That is a better definition of stale than "last edited", because a page nobody edits but everybody reads is not dead, it is finished.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it can do to what it finds
&lt;/h2&gt;

&lt;p&gt;This is the half that no macro and no app replaces, and it is genuinely good:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Archive&lt;/strong&gt; up to 500 items at a time. Archived content stays viewable but stops cluttering the content tree.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delete&lt;/strong&gt; up to 100 items at a time, into the trash, where an admin can purge it permanently.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Change owner&lt;/strong&gt; of up to 100 items at a time. This is the fastest fix after somebody leaves the company.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Change status&lt;/strong&gt;, &lt;strong&gt;run an automation flow&lt;/strong&gt; against the selection, and &lt;strong&gt;convert pages to live docs&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Permissions survive the trip. Atlassian states that after a nested group is archived, inherited permissions remain intact in the archive, and again in the content tree if it is restored. Selecting a parent's checkbox automatically selects everything nested under it; hold Command or Alt to select a parent without its children, and Shift to take a run of rows at once.&lt;/p&gt;

&lt;h2&gt;
  
  
  The catch: your stale list is shorter than the truth
&lt;/h2&gt;

&lt;p&gt;Atlassian puts this in a warning box, and it is easy to read past: &lt;em&gt;Last active&lt;/em&gt; will not return a complete list, because it specifically filters pages that &lt;strong&gt;do not have children&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The reasoning is sound. Nested content inherits view permissions from its parent. If a parent or a child is moved without permissions being set explicitly first, content can be exposed to an audience it was never meant for. Excluding parents from a bulk-action screen is a reasonable way to avoid that.&lt;/p&gt;

&lt;p&gt;The effect on an audit is another matter. Think about which pages actually rot in a real wiki. It is rarely the leaf: it is the section landing page. "Onboarding", with six pages under it, last touched when the process changed two reorganisations ago. "Release process", with a child per environment. Those are all parents, and none of them will appear in your Last active results. You will get the leaves, act on them, and come away believing the space is in better shape than it is.&lt;/p&gt;

&lt;p&gt;There is a way to act on a whole nested group once you have found it by other means: open the parent's &lt;strong&gt;More actions&lt;/strong&gt; menu and choose to archive or delete, and you are offered the option to include nested content. Finding them is the part you are on your own for.&lt;/p&gt;

&lt;h2&gt;
  
  
  If you are on Free or Standard
&lt;/h2&gt;

&lt;p&gt;Then you do not have this tool at all. Atlassian's wording is blunt: teammates and administrators of Confluence Standard do not have access to it. What Standard does give you is the ability to archive or delete a nested group directly from the content tree, one group at a time.&lt;/p&gt;

&lt;p&gt;That leaves three honest options. Sort a search by last modified and work through it by eye. Use the &lt;em&gt;filter by label&lt;/em&gt; macro, which accepts twelve filters from a form and is stronger than its name suggests, but whose date filters point at a fixed date rather than a relative period. Or use an app.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it is worth in time
&lt;/h2&gt;

&lt;p&gt;Take one space with 1,500 pages. Working through a date-sorted list by eye, at three seconds a row to decide whether a page still matters, is about 75 minutes. Do that quarterly and it is five hours a year, for one space. Twelve spaces and it is a job nobody will do twice.&lt;/p&gt;

&lt;p&gt;The content manager collapses the finding part of that to one dropdown, and the acting part to one click on 500 items. That is why it is worth knowing whether your plan includes it before you budget a documentation clean-up as a manual project.&lt;/p&gt;

&lt;h2&gt;
  
  
  The honest summary
&lt;/h2&gt;

&lt;p&gt;If you are on Premium or Enterprise and you want to clean up one space, open the content manager and use it. It is native, it is already paid for, its definition of stale is the right one, and its bulk actions are better than anything a macro can do. Just remember that the list in front of you has no parents in it.&lt;/p&gt;

&lt;p&gt;Where it stops is equally clear. It is one space at a time. It is an administrator's screen, so the people who wrote those pages never see the list and never get the nudge. It is not on Free or Standard. And it cannot be put on a page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure: I build Confluence apps.&lt;/strong&gt; One of ours, &lt;a href="https://horizonventures.app/smart-search.html" rel="noopener noreferrer"&gt;Smart Search&lt;/a&gt;, exists for the gap in that last paragraph: a relative period like "not updated in six months", on an ordinary page any reader can open, across several spaces at once, on any plan. What it deliberately does not do is bulk archiving or deleting. If you have Premium and you want a one-off clean-up of a single space, the content manager is the better tool for that job, and you are already paying for it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions people actually ask
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Why can I not see Content manager in my space settings?&lt;/strong&gt; Because it is a paid feature, available on Confluence Premium and Enterprise only. It is not hidden or misplaced. You also need to be a space admin of the space you are looking at.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How far back does Last active go?&lt;/strong&gt; Four settings: over 7 days, over 1 month, over 3 months, over 6 months. Six months is the limit, and you cannot type a number of your own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why are old pages missing from my results?&lt;/strong&gt; Last active excludes any page that has children, as a safeguard around inherited permissions. Parents never appear, which is why the list looks better than reality.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it cover blog posts?&lt;/strong&gt; No. All of a space's content except blogs.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many items can I act on at once?&lt;/strong&gt; Archive 500, delete 100, change owner 100.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does archiving break inherited permissions?&lt;/strong&gt; No. They stay intact in the archive, and again if the content is restored.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I show this list on a normal page?&lt;/strong&gt; Not with the content manager. It is an admin screen, not a macro.&lt;/p&gt;

</description>
      <category>confluence</category>
      <category>atlassian</category>
      <category>documentation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Can you import a Word document into an existing Confluence page?</title>
      <dc:creator>Mikhail Klimenko</dc:creator>
      <pubDate>Sat, 12 Sep 2026 03:18:24 +0000</pubDate>
      <link>https://dev.to/mikhailklimenko/can-you-import-a-word-document-into-an-existing-confluence-page-35of</link>
      <guid>https://dev.to/mikhailklimenko/can-you-import-a-word-document-into-an-existing-confluence-page-35of</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer.&lt;/strong&gt; In Confluence Cloud, no. The import always creates a new page, because it is an entry point to page creation rather than something you do to a page that already exists. Confluence Data Center can import a Word document into an existing page; Cloud cannot. Your practical options are to import as a new page and move the content across, or to paste the content into the existing page, which is uglier but keeps the page's history, comments and URL.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the button is not where you expect
&lt;/h2&gt;

&lt;p&gt;In Cloud you reach the import while creating a page, not while editing one. A single file becomes a draft or live doc that you then publish. Several files at once land as child items under a restricted placeholder page titled "Imported pages" with the date and time. Either way the result is new pages, never an update to an old one.&lt;/p&gt;

&lt;p&gt;This surprises people mostly in one situation: a document that lives in Word, gets revised once or twice a year, and has a Confluence page that everybody links to. You want the new revision on the same page. Confluence wants to give you a new page.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four ways round it
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Paste into the existing page
&lt;/h3&gt;

&lt;p&gt;The only route that genuinely keeps the page. Open the page, select everything, paste the new content, publish. You get a new version of the same page: the URL still works, the comments are still attached, the history shows what changed and when.&lt;/p&gt;

&lt;p&gt;The cost is the paste itself, which is covered below and is not free.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Import as a new page and move the content
&lt;/h3&gt;

&lt;p&gt;Import the document, then copy the rendered content from the new page into the old one and delete the new page. It sounds like a detour, and it is, but the intermediate page is Confluence's own conversion of the document, which is usually cleaner than what the clipboard produces.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Import as a new page and retire the old one
&lt;/h3&gt;

&lt;p&gt;Fastest, and the one people regret. The new page has a new URL, no comments and no history. Every link in other pages, in Jira tickets and in old emails now points at the previous revision or at nothing. Only reasonable when the page is genuinely new work that happens to have an old namesake.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. An app
&lt;/h3&gt;

&lt;p&gt;Several Marketplace apps extend importing in various directions. Worth pricing against how often you actually do this: for a document revised twice a year, a licence is hard to justify.&lt;/p&gt;

&lt;h2&gt;
  
  
  What pasting from Word actually does
&lt;/h2&gt;

&lt;p&gt;Word does not put plain text on the clipboard. It puts markup, and Confluence keeps it: span and div elements carrying styles that the editor then has to live with. The visible result is usually fine at first glance and wrong in the details.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lists are the usual casualty.&lt;/strong&gt; Numbered and bulleted lists coming from Word get their numbering mixed up on paste; it is one of the more common complaints in the community. Nested lists fare worst.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plain text paste is clean and expensive.&lt;/strong&gt; Pasting without formatting gives you a page with no hidden junk and no headings, no bold, no lists and no tables either. For a short document that is a fine trade. For a fifty page handbook it is an afternoon of re-formatting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Markdown is the useful middle.&lt;/strong&gt; Confluence Cloud auto-converts pasted Markdown, and headings, bold and italic, ordered and unordered lists, links, images from URLs and simple tables come across reliably. Merged cells and fussy alignment still need the table editor afterwards. If your document can go through a Word to Markdown conversion first, this is usually the cleanest paste available.&lt;/p&gt;

&lt;h2&gt;
  
  
  What it costs on a real revision cycle
&lt;/h2&gt;

&lt;p&gt;Say forty policy documents, each revised once a year, each with a Confluence page people link to. Pasting and cleaning up one revised document takes fifteen to twenty minutes when lists and tables are involved. That is ten to thirteen hours a year, spread thin enough that nobody counts it, and concentrated enough in one week of the year that it always lands on one person.&lt;/p&gt;

&lt;p&gt;The honest observation is that no tool removes this entirely, because the problem is not the import, it is keeping the same content in two systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which route to take
&lt;/h2&gt;

&lt;p&gt;If the page matters to other people, paste into it and keep the history. A slightly messy page with its comments and links intact beats a clean page nobody can find.&lt;/p&gt;

&lt;p&gt;If the document is long and full of structure, go through Markdown rather than pasting from Word directly.&lt;/p&gt;

&lt;p&gt;If this happens once, stop optimising and just do it by hand.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure: I build Confluence apps, and this is a case ours does not cover.&lt;/strong&gt; &lt;a href="https://horizonventures.app/word-import.html" rel="noopener noreferrer"&gt;Word Import&lt;/a&gt; turns .docx files into new Confluence pages and page trees; it does not update a page that already exists, so for the question at the top of this article it will not help you. If what you actually need is to bring a pile of documents in for the first time, that is the case it is built for. If you need to refresh one existing page, use option one above and keep your history.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions people ask
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Can I import a Word document into an existing page?&lt;/strong&gt;&lt;br&gt;
Not in Cloud. The import always creates a new page. Data Center can import into an existing page.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why does Cloud work this way?&lt;/strong&gt;&lt;br&gt;
The import is part of page creation, not editing. One file becomes a draft you publish; several land under a restricted "Imported pages" placeholder.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What breaks when I paste from Word?&lt;/strong&gt;&lt;br&gt;
Hidden markup comes along, and list numbering is the usual victim. Plain text paste avoids it and loses all formatting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is there a cleaner way to paste?&lt;/strong&gt;&lt;br&gt;
Convert to Markdown first. Confluence auto-converts it, and headings, lists, links and simple tables survive.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does the page keep its history if I replace the content?&lt;/strong&gt;&lt;br&gt;
Yes, if you edit the existing page. It becomes a new version, and the URL, comments and history stay. Importing as a new page and deleting the old one loses all three.&lt;/p&gt;

&lt;p&gt;Related: &lt;a href="https://horizonventures.app/docs/split-word-document-confluence-pages.html" rel="noopener noreferrer"&gt;how to split a Word document into multiple Confluence pages&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>confluence</category>
      <category>atlassian</category>
      <category>documentation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>What a Confluence space export actually gives you</title>
      <dc:creator>Mikhail Klimenko</dc:creator>
      <pubDate>Sat, 12 Sep 2026 03:14:39 +0000</pubDate>
      <link>https://dev.to/mikhailklimenko/what-a-confluence-space-export-actually-gives-you-2o54</link>
      <guid>https://dev.to/mikhailklimenko/what-a-confluence-space-export-actually-gives-you-2o54</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer.&lt;/strong&gt; Confluence Cloud exports a whole space to &lt;strong&gt;PDF, CSV, HTML or XML&lt;/strong&gt; from space settings. It is an administrator's action: space admins can export a space, or a set of pages selected individually inside it. The export is genuinely useful for moving or archiving content. What it is not is a spreadsheet of your data: the CSV option dumps space content, not the tables that live on your pages. And several things leave the export without telling you.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four formats, and what each is for
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Format&lt;/th&gt;
&lt;th&gt;What it is really for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;PDF&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Giving the content to somebody outside the wiki. A readable document, not a data source.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;A browsable offline copy of the space. Useful as an archive you can still open in five years.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;XML&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Moving a space into another Confluence site. Machine-readable, faithful, and unpleasant to read.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;CSV&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Taking content out in a portable form. By default it exports everything you can view, including attachments and comments.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Word is missing from that list on purpose: in Cloud, Word export lives at the page level, not the space level. If somebody tells you to "just export the space to Word", they are describing Data Center or wishful thinking.&lt;/p&gt;

&lt;h2&gt;
  
  
  What quietly does not make it
&lt;/h2&gt;

&lt;p&gt;None of these produce an error. The file arrives, it looks complete, and the missing parts are noticed weeks later by somebody who needed them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Blog posts are not included when exporting to PDF.&lt;/strong&gt; If a team keeps decisions or release notes as blog posts, a PDF export of the space silently drops that entire body of writing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Page comments are currently not exported during HTML export.&lt;/strong&gt; In wikis where the real reasoning sits in comment threads under a short page, this removes the part that mattered.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Team Calendars are not included&lt;/strong&gt; in exports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unpublished work is not there.&lt;/strong&gt; An export takes published content. Edits that somebody has been carrying in a draft for three weeks do not exist as far as the export is concerned, and nothing on screen points this out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The result depends on who clicks.&lt;/strong&gt; Only content visible to you is exported, with one exception: exporting via CSV or XML as a &lt;em&gt;site&lt;/em&gt; admin exports all content. The same button in two pairs of hands produces two different files, which is a problem when the export is supposed to be a complete record for legal or compliance reasons.&lt;/p&gt;

&lt;p&gt;One detail that migrates between versions and confuses people: the limit of the first 50 attached images in a Word export is documented for Confluence Data Center, where it can be raised with a system property. Cloud has no such property, and the Cloud documentation does not state that number, so do not plan around it either way without testing your own pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why the CSV option is not the answer to "get my tables into Excel"
&lt;/h2&gt;

&lt;p&gt;This is the part that sends people in circles. You have a space full of registers, budgets and checklists kept as tables on pages. You find "export space to CSV", and it sounds like exactly the thing.&lt;/p&gt;

&lt;p&gt;It is not. That export is a dump of the space's content: pages, attachments, comments. Atlassian's documentation does not describe its column layout, because it is not meant to be read as a data sheet. You do not open it and find your budget table with its columns intact; you find the space, flattened into a transport format.&lt;/p&gt;

&lt;p&gt;For actual table data there is still nothing native on the page. Copying a table by hand into a spreadsheet works until merged cells are involved, and then the values after a merged cell shift into the wrong columns while still looking like perfectly good numbers.&lt;/p&gt;

&lt;h2&gt;
  
  
  How long the honest way takes
&lt;/h2&gt;

&lt;p&gt;A quarterly report that pulls figures from eleven tables spread across a space: about four minutes per table when nothing is merged, closer to ten when something is, plus the time spent later working out why the finance number disagrees with the wiki. Call it an hour and a half, four times a year.&lt;/p&gt;

&lt;p&gt;The hours are not the problem. The problem is that this is retyping data that already exists, and a number retyped is a number that can be wrong without anyone noticing.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to use when
&lt;/h2&gt;

&lt;p&gt;Leaving Confluence, or archiving a space before it is deleted: use the native export, XML for another Confluence site, HTML for an archive a human can open later, PDF for sending outside. It is free and it is the right tool.&lt;/p&gt;

&lt;p&gt;Handing over a single document: export the page to PDF or Word. No admin rights needed.&lt;/p&gt;

&lt;p&gt;Getting numbers out of tables to calculate with: the native export does not do this, and the CSV name is a trap.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure: I build Confluence apps.&lt;/strong&gt; One of ours, &lt;a href="https://horizonventures.app/table-export.html" rel="noopener noreferrer"&gt;Table Export&lt;/a&gt;, covers only that last case: one table, a page, or every table in a space into Excel or CSV, each sheet labelled with the page it came from, with merged cells expanded so the columns stay where they belong. It does not replace the space export and it is not trying to: for a migration or an archive, use the built-in one.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions people ask
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How do I export a whole space?&lt;/strong&gt;&lt;br&gt;
Space settings, then the export option: PDF, CSV, HTML or XML. Space admins can export a space or a group of individually selected pages. Space and site admins can also export content owned by deactivated accounts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does the CSV export give me my tables?&lt;/strong&gt;&lt;br&gt;
No. It exports space content, by default everything you can view including attachments and comments. It is a transport format, not a data sheet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What gets left out?&lt;/strong&gt;&lt;br&gt;
Blog posts in PDF exports, page comments in HTML exports, Team Calendars everywhere, and anything still sitting unpublished in a draft.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will I get everything, or only what I can see?&lt;/strong&gt;&lt;br&gt;
Only what you can see, unless you are a site admin exporting via CSV or XML, in which case all content is exported.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can a normal user export a space?&lt;/strong&gt;&lt;br&gt;
No, it is an admin action. Anyone can still export a single page to PDF or Word.&lt;/p&gt;

&lt;p&gt;Related: &lt;a href="https://horizonventures.app/docs/export-confluence-table-to-excel.html" rel="noopener noreferrer"&gt;how to get a Confluence table into Excel&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>confluence</category>
      <category>atlassian</category>
      <category>documentation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to list Confluence pages on a page without writing CQL</title>
      <dc:creator>Mikhail Klimenko</dc:creator>
      <pubDate>Wed, 09 Sep 2026 03:30:28 +0000</pubDate>
      <link>https://dev.to/mikhailklimenko/how-to-list-confluence-pages-on-a-page-without-writing-cql-18k0</link>
      <guid>https://dev.to/mikhailklimenko/how-to-list-confluence-pages-on-a-page-without-writing-cql-18k0</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer.&lt;/strong&gt; You do not need to learn a query language. The &lt;em&gt;filter by label&lt;/em&gt; macro builds the query for you from a form: you add filters from a list and fill in values, and it accepts twelve of them, including space, title, text, creator, contributor and child pages. For a simple list of pages under this one, the &lt;em&gt;child items&lt;/em&gt; macro is two clicks. The walls you eventually hit are these three: no relative dates, so "not touched in six months" is out of reach; anything label-based depends on labels somebody has to apply; and the search results macro belongs to the legacy editor that is being retired.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four native macros
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Macro&lt;/th&gt;
&lt;th&gt;What it lists&lt;/th&gt;
&lt;th&gt;Good for&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Child items&lt;/strong&gt; (was children display)&lt;/td&gt;
&lt;td&gt;Items under a parent you choose, to a depth you set. Updates itself when pages are added or renamed.&lt;/td&gt;
&lt;td&gt;An index at the top of a section.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Content tree&lt;/strong&gt; (was page tree)&lt;/td&gt;
&lt;td&gt;An expandable tree of a space or a branch of it.&lt;/td&gt;
&lt;td&gt;Navigation on a landing page.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Filter by label&lt;/strong&gt; (was content by label)&lt;/td&gt;
&lt;td&gt;Anything matching the filters you add: label, title, text, type, space, creator, contributor, mentioned user, date created, last modified, child pages, all subpages.&lt;/td&gt;
&lt;td&gt;Everything that is not a plain hierarchy.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Content properties report&lt;/strong&gt; (was page properties report)&lt;/td&gt;
&lt;td&gt;A table built from the content properties macro placed on source pages, found by label.&lt;/td&gt;
&lt;td&gt;Structured registers you planned in advance.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;There is also the &lt;em&gt;search results&lt;/em&gt; macro, which runs a search query and prints the hits. It works today, and it is part of the legacy editor whose deprecation started in January 2026, so it is not where a new process should live.&lt;/p&gt;

&lt;h2&gt;
  
  
  Filter by label deserves more credit than it gets
&lt;/h2&gt;

&lt;p&gt;The name is misleading and it costs the macro a lot of users. Labels are the first filter offered, not the only one. You add filters from a menu and each one takes plain values; the CQL is assembled behind the form.&lt;/p&gt;

&lt;p&gt;The operators follow simple rules worth knowing before you fight the form:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OR&lt;/strong&gt;: several values in one filter. Label a, label b, or both.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AND&lt;/strong&gt;: add the same filter twice, once per value. Only some filters allow this; if a filter cannot be added twice, it does not support AND.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;NOT&lt;/strong&gt;: a minus sign before the value excludes it.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;With space, contributor and all subpages available, this covers a surprising amount: everything in three spaces written by a particular team, everything below a given page with a given label, everything mentioning a person. If you left this macro alone because you assumed it needed labels, go back and look again.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where the native path stops
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Relative dates do not exist
&lt;/h3&gt;

&lt;p&gt;This is the big one. The date filters are documented as returning items created on this date and items last updated on this date. A date, not a period. So the question people actually ask, which is "what has nobody touched since last year", cannot be expressed: you can pin a list to a date, but a pinned date is stale the week after you set it, and the list quietly stops meaning what its heading says.&lt;/p&gt;

&lt;h3&gt;
  
  
  Labels are a habit, not a fact
&lt;/h3&gt;

&lt;p&gt;Label-based lists work beautifully in spaces where labelling is disciplined, and they are empty in every other space. Nobody labels a page they wrote in a hurry three years ago, which is precisely the page an audit is looking for. A list built on labels shows you the tidy part of the wiki and hides the rest, which is the opposite of useful when you are hunting for neglect.&lt;/p&gt;

&lt;h3&gt;
  
  
  The properties report reports on a structure, not a space
&lt;/h3&gt;

&lt;p&gt;The content properties report reads pages that carry the content properties macro and finds them by label. If the pages were not set up that way in advance, the report is empty and no amount of filter-tweaking helps. It is a fine tool for a register you designed, and the wrong tool for finding out what is in a space you inherited.&lt;/p&gt;

&lt;h2&gt;
  
  
  The screen most people never open
&lt;/h2&gt;

&lt;p&gt;If the goal is an audit rather than a list on a page, the native answer is not a macro at all. Each space has a &lt;strong&gt;content manager&lt;/strong&gt; in its space settings, and it has a &lt;strong&gt;Last active&lt;/strong&gt; filter: content nobody has viewed, commented on or updated within a period, defaulting to 180 days. That is exactly the query the macros cannot express, and it is free.&lt;/p&gt;

&lt;p&gt;Two things to know before you plan around it. It lives in space settings, so it is an administrator's screen: readers of the space never see it, and you cannot put its result on a page for a team to work through. And bulk actions on what it finds, archiving or deleting in one go, require Premium or Enterprise. On Standard you get the list and you work through it by hand.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what should you use
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What you want&lt;/th&gt;
&lt;th&gt;Use&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;An index of the pages below this one&lt;/td&gt;
&lt;td&gt;Child items macro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Navigation for a whole space&lt;/td&gt;
&lt;td&gt;Content tree macro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A live list by author, space, title or label&lt;/td&gt;
&lt;td&gt;Filter by label macro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A table of fields you planned in advance&lt;/td&gt;
&lt;td&gt;Content properties report&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A one-off clean-up of forgotten pages&lt;/td&gt;
&lt;td&gt;Content manager, Last active filter&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;A standing list of neglect, visible to the team&lt;/td&gt;
&lt;td&gt;Nothing native does this&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That last row is the honest gap. Everything above it is free and already in your site.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the manual version costs
&lt;/h2&gt;

&lt;p&gt;Say you own four spaces and you review neglected documentation each quarter. Opening the content manager per space, setting the filter, exporting nothing because there is no export, and copying the interesting titles into a review page by hand: about forty minutes if the spaces are small, and the result is a snapshot that is out of date by the time anyone reads it.&lt;/p&gt;

&lt;p&gt;Forty minutes a quarter is nothing. The cost is not the minutes; it is that the list lives in a screenshot on a review page, so nobody trusts it, and the pages it names are still there next quarter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure: I build Confluence apps.&lt;/strong&gt; One of ours, &lt;a href="https://horizonventures.app/smart-search.html" rel="noopener noreferrer"&gt;Smart Search&lt;/a&gt;, exists for the gap in that last row: lists defined by relative periods, "not updated in 180 days", built from checkboxes, running across several spaces at once and visible to ordinary readers on an ordinary page rather than only to admins in space settings. If your case is covered by the rows above it, and most cases are, use the native macros: they are free, they are supported, and they will outlive any app.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions people ask
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Do I have to learn CQL?&lt;/strong&gt;&lt;br&gt;
No. Filter by label builds the query from a form. Twelve filters, values typed in plain text.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do I list the child pages of this page?&lt;/strong&gt;&lt;br&gt;
The child items macro. Pick the parent, set the depth, done. It updates itself as pages are added or renamed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I list pages nobody has touched in six months?&lt;/strong&gt;&lt;br&gt;
Not with the macros: the date filters take a date, not a period. Use the content manager in space settings, which filters by last active over a period you choose.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can I combine filters with AND?&lt;/strong&gt;&lt;br&gt;
Yes, by adding the same filter twice with one value each. Filters that cannot be added twice do not support AND. A minus sign before a value excludes it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why is my page properties report empty?&lt;/strong&gt;&lt;br&gt;
It only reads pages carrying the content properties macro, matched by label. No macro on the source pages, no rows.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Should I use the search results macro?&lt;/strong&gt;&lt;br&gt;
It works, but it belongs to the legacy editor, whose deprecation began in January 2026. Do not build a process on it.&lt;/p&gt;

&lt;p&gt;Related: &lt;a href="https://horizonventures.app/docs/find-stale-pages-confluence.html" rel="noopener noreferrer"&gt;how to find stale pages in Confluence&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>confluence</category>
      <category>atlassian</category>
      <category>documentation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to split a Word document into multiple Confluence pages</title>
      <dc:creator>Mikhail Klimenko</dc:creator>
      <pubDate>Wed, 09 Sep 2026 03:26:16 +0000</pubDate>
      <link>https://dev.to/mikhailklimenko/how-to-split-a-word-document-into-multiple-confluence-pages-hf</link>
      <guid>https://dev.to/mikhailklimenko/how-to-split-a-word-document-into-multiple-confluence-pages-hf</guid>
      <description>&lt;p&gt;&lt;strong&gt;Short answer.&lt;/strong&gt; Confluence Cloud imports one page per file. There is no option to split a document by its headings; that option lives in Confluence Data Center, not in Cloud. So you have two working routes: cut the document into separate files in Word first, using the master document tools in outline view, then import the pieces as a batch, or use an app that does the splitting during import. The Word route is free and takes about ten minutes per document once you know where the buttons are.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the built-in import actually does
&lt;/h2&gt;

&lt;p&gt;Confluence Cloud has a proper Word importer, and it is better than its reputation. It reads .docx, keeps headings, tables, lists and images, and it handles batches: up to 30 files at a time, 50 MB in total, nothing over 10 MB each. A single file imported on its own can be up to 5 MB for the document, plus up to 100 MB of attachments.&lt;/p&gt;

&lt;p&gt;Two behaviours surprise people on the first run.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One file becomes one page.&lt;/strong&gt; Not one page per chapter, not a tree. The whole document, however long, arrives as a single page with the headings intact inside it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Batches land in a holding pen.&lt;/strong&gt; Import several files at once and Confluence creates a restricted placeholder page titled "Imported pages" with the date and time, and hangs everything under it. Nothing is lost, but nothing is in the right place either: moving the pages into your actual tree is a separate job you do by hand afterwards.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why there is no split by headings
&lt;/h2&gt;

&lt;p&gt;There used to be, and in Data Center there still is: the import screen there lets you choose between one page and multiple pages built from heading levels, with a preview of the resulting outline. In Cloud the import happens in the context of creating a page, and one page is what you get.&lt;/p&gt;

&lt;p&gt;Worth noting that the Data Center feature is not flawless either. Headings get promoted to Heading 1 when they become the top heading of a new page, and the split fails outright if two headings in the document share the same text, because Confluence cannot create two pages with one name. So the grass is greener, but not by as much as the missing button suggests.&lt;/p&gt;

&lt;h2&gt;
  
  
  The free route: split it in Word first
&lt;/h2&gt;

&lt;p&gt;Word has carried a feature called master documents for decades, and almost nobody uses it. It cuts a long document into separate files along heading boundaries, which is exactly the shape Confluence wants.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;View, then Outline.&lt;/strong&gt; The Outlining tab appears in the ribbon.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set Show Level&lt;/strong&gt; to the level you want to split on, usually Level 1 or Level 2. Body text collapses and you are left looking at the skeleton of the document.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Select the headings&lt;/strong&gt; that should each become a page.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Show Document, then Create.&lt;/strong&gt; Both are in the Master Document group. Thin grey boxes appear around each selected heading: those are subdocuments.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Save into an empty folder.&lt;/strong&gt; Word writes one file per subdocument, named after its heading.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Import the folder&lt;/strong&gt; into Confluence, 30 files at a time.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The result is a flat set of pages, one per heading, sitting under the "Imported pages" placeholder. Dragging them into a hierarchy is still on you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where this route costs you
&lt;/h2&gt;

&lt;p&gt;It works, and for a handful of documents it is the right answer. Three things wear on you at volume.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cross references break.&lt;/strong&gt; "See section 4.2" pointed at a bookmark inside one file. Once section 4.2 is a different file, and then a different page, the link is a dead phrase. Nothing warns you; the text still reads fine.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The hierarchy is gone.&lt;/strong&gt; Word gives you a flat pile of files. A handbook with chapters and sections under them arrives as one flat layer, and rebuilding the parent and child structure means dragging pages in the tree one at a time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Shapes and some images do not survive.&lt;/strong&gt; Shapes drawn in Word are replaced with placeholders, and images in formats outside the supported list turn into placeholder text. Supported are BMP, CUR, DDS, GIF, ICO, JPG, PNG, PSD, SVG and WEBP. For a process document full of little flow diagrams drawn with Word shapes, this is the part that hurts.&lt;/p&gt;

&lt;h2&gt;
  
  
  How long a real migration takes
&lt;/h2&gt;

&lt;p&gt;Take a typical case: 150 documents on a shared drive, of which 20 are long enough to deserve splitting into chapters.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Split 20 long documents in Word, about 10 minutes each&lt;/td&gt;
&lt;td&gt;3 hours 20 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Import 5 batches of 30 files&lt;/td&gt;
&lt;td&gt;25 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Move roughly 300 resulting pages into the tree, 20 seconds each&lt;/td&gt;
&lt;td&gt;1 hour 40 min&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fix broken cross references and shape placeholders&lt;/td&gt;
&lt;td&gt;2 hours, optimistically&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Call it a working day and a half. That is not a catastrophe, and if this is a one-time move, spending it is entirely reasonable. It becomes a problem for a different reason: nobody has that day and a half spare, so the migration gets postponed, and the documents stay on the shared drive for another year. That is the actual failure mode, not the hours.&lt;/p&gt;

&lt;h2&gt;
  
  
  Which route to pick
&lt;/h2&gt;

&lt;p&gt;If you have a dozen documents and they are already short, skip all of this: import them as they are, one page each, and move on. The built-in importer does that well and it is free.&lt;/p&gt;

&lt;p&gt;If you have a few long documents, use the Word outline route. Ten minutes each is cheap and you keep full control over where the cuts fall.&lt;/p&gt;

&lt;p&gt;If you are moving a whole department off a shared drive, the arithmetic above is your afternoon, and an app that splits on import earns its licence in the first ten documents.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure: I build Confluence apps.&lt;/strong&gt; One of ours, &lt;a href="https://horizonventures.app/word-import.html" rel="noopener noreferrer"&gt;Word Import&lt;/a&gt;, does the split during import: you drop the .docx files in, it cuts them along heading levels and builds an actual page tree, parents and children, rather than a flat pile under a placeholder. It reads the files inside your browser, so the documents never leave your machine, which matters when the documents are HR policies. If your case is the first one above, a dozen short files, do not buy anything: the built-in import already covers you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions people ask
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Can Confluence Cloud split a Word document into several pages?&lt;/strong&gt;&lt;br&gt;
No. One file becomes one page. The split-by-heading option exists in Data Center, not in Cloud.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How many files can I import at once?&lt;/strong&gt;&lt;br&gt;
Up to 30, 50 MB in total, nothing over 10 MB each. A single file on its own may be up to 5 MB, plus up to 100 MB of attachments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where do the imported pages go?&lt;/strong&gt;&lt;br&gt;
Into a restricted placeholder page called "Imported pages" with the date and time, as child items. You move them into the real tree yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does the import keep tables and images?&lt;/strong&gt;&lt;br&gt;
Tables and normal images yes. Shapes drawn in Word become placeholders, and images in unsupported formats become placeholder text.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens to my cross references?&lt;/strong&gt;&lt;br&gt;
They break as soon as the sections become separate pages, because they pointed at bookmarks inside a single file. Confluence does not warn you, so plan to check them.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Is there a way to keep the chapter hierarchy?&lt;/strong&gt;&lt;br&gt;
Not through Word plus the built-in import: that gives you a flat set of pages. Either rebuild the hierarchy by dragging in the page tree, or use an app that constructs it during import.&lt;/p&gt;

&lt;p&gt;Related: &lt;a href="https://horizonventures.app/docs/import-word-into-confluence.html" rel="noopener noreferrer"&gt;how to import Word documents into Confluence Cloud&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>confluence</category>
      <category>atlassian</category>
      <category>documentation</category>
      <category>productivity</category>
    </item>
    <item>
      <title>How to sum a column in a Confluence table</title>
      <dc:creator>Mikhail Klimenko</dc:creator>
      <pubDate>Tue, 08 Sep 2026 21:50:04 +0000</pubDate>
      <link>https://dev.to/mikhailklimenko/how-to-sum-a-column-in-a-confluence-table-1nlm</link>
      <guid>https://dev.to/mikhailklimenko/how-to-sum-a-column-in-a-confluence-table-1nlm</guid>
      <description>&lt;p&gt;One of those questions that looks like it should have a one-click answer and does not. Here is exactly what Confluence Cloud can and cannot do with numbers, and how to pick between the three ways out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Short answer.&lt;/strong&gt; A normal Confluence table cannot add anything up: there is no formula engine behind it, and the number on the page is whatever somebody typed. A Confluence &lt;em&gt;database&lt;/em&gt; can show a total at the bottom of a field, including Sum and Average. Neither can calculate a value per row, so nothing in Confluence Cloud gives you a column that multiplies price by quantity. You have three ways out, and the right one depends on how often the numbers change.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Confluence actually does
&lt;/h2&gt;

&lt;p&gt;It is worth separating two things that look similar on a page, because the answer is different for each.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tables
&lt;/h3&gt;

&lt;p&gt;The classic table you get from the editor is a layout element. It stores text, numbers, links and macros in cells, it merges cells, it sorts columns for the reader. It does not compute. There is no cell reference, no formula bar, nothing that recalculates when a value changes. If a total sits in the bottom row, a person put it there, and it stays wrong until a person notices.&lt;/p&gt;

&lt;p&gt;This is not an oversight anyone forgot about. The request to add spreadsheet behaviour to Confluence tables is one of the older open items in Atlassian's public tracker, and it is still open.&lt;/p&gt;

&lt;h3&gt;
  
  
  Databases
&lt;/h3&gt;

&lt;p&gt;Databases are the newer structured-data feature, and they do calculate, within limits. Each field can show a calculation at the bottom, and for number fields the list is genuinely useful:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Field type&lt;/th&gt;
&lt;th&gt;Calculations available&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Number&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sum, Average, Min, Max, Count values, Count unique values, Count empty, Percent empty&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Everything else&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Count values, Count unique values, Count empty, Percent empty&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The calculation can be saved as part of a view, so the total is there for the next reader rather than something each person switches on. Worth knowing before you plan around them: databases are not available in the Atlassian Government environment.&lt;/p&gt;

&lt;h2&gt;
  
  
  The part that catches people out
&lt;/h2&gt;

&lt;p&gt;Everything above is an &lt;em&gt;aggregate&lt;/em&gt;: one number summarising a whole field. What most people actually want on the second day is a &lt;em&gt;calculated column&lt;/em&gt;: line total equals price times quantity, margin equals revenue minus cost, each row computed on its own.&lt;/p&gt;

&lt;p&gt;Confluence Cloud does not do that. Not in tables, and not in databases either. There is an open request for computed fields in databases, so this may well change, but nothing ships today, and planning a process around a feature that does not exist is how teams end up maintaining numbers by hand for a year.&lt;/p&gt;

&lt;p&gt;So the honest summary of the platform is: totals yes, if you use databases. Per-row arithmetic no, whatever you use.&lt;/p&gt;

&lt;h2&gt;
  
  
  The three ways out
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Turn the table into a database
&lt;/h3&gt;

&lt;p&gt;Free, native, and the right answer when the data is genuinely a list of records: inventory, requests, contacts, anything with the same fields repeating down the page. You get the aggregates above, plus sorting and filtering that survive being reopened.&lt;/p&gt;

&lt;p&gt;It is the wrong answer when the thing on the page is not a list. Budget breakdowns with subtotals, comparison matrices, anything with merged cells and a shape of its own does not become a database without being redesigned first.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Install an app that adds formulas
&lt;/h3&gt;

&lt;p&gt;Several Marketplace apps bring spreadsheet behaviour into the page: calculated columns, grouping with sums per group, charts on top. If your numbers change weekly and people read them inside Confluence, this is the path that actually solves it, and it is worth the licence.&lt;/p&gt;

&lt;p&gt;Price it for the team you will have next year, not the one you have today, because Marketplace pricing steps up by user tiers and a table app is billed for every user on the site, not just the people who use it.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Take the numbers to a spreadsheet
&lt;/h3&gt;

&lt;p&gt;Unfashionable and often correct. If the calculation happens once a quarter, or the result belongs in a report that lives in Excel anyway, moving the data out is cheaper than teaching the wiki to do arithmetic.&lt;/p&gt;

&lt;p&gt;The catch is how the data gets there. Copying a table by hand looks fine until merged cells are involved: the copy keeps the visual shape, a cell spanning two columns pushes later values sideways, and the totals come out wrong in a way nobody notices, because the number still looks like a number.&lt;/p&gt;

&lt;h2&gt;
  
  
  How long the manual way takes
&lt;/h2&gt;

&lt;p&gt;Say a quarterly report pulls numbers from eleven tables across a space. Copying one table, fixing the columns that slid, and checking the total takes about four minutes when nothing is merged and closer to ten when something is. Call it an hour and a half, once a quarter, plus the time spent later finding out why the finance figure disagrees with the wiki.&lt;/p&gt;

&lt;p&gt;An hour and a half four times a year is not a crisis. It is, however, six hours of work whose only output is retyping numbers that already exist, and it is the kind of task that quietly grows as the space does.&lt;/p&gt;

&lt;h2&gt;
  
  
  Picking between them
&lt;/h2&gt;

&lt;p&gt;If the data is a list of records and you need a total at the bottom, use a database. It is free and it is native. If people need live per-row formulas inside the page, buy an app, because that is a real gap and no amount of cleverness closes it. If the numbers leave Confluence anyway and end up in a spreadsheet, get them out cleanly and do the arithmetic where arithmetic belongs.&lt;/p&gt;

&lt;p&gt;If your case is simpler than all of this, one table with five rows and a total you retype twice a year, retype it. That is a perfectly good answer and it costs nothing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure: I build Confluence apps.&lt;/strong&gt; One of ours covers only the third option: it takes one table, a page, or every table in a space into Excel or CSV, and keeps the columns aligned when cells are merged, which is exactly where copying by hand goes wrong. It does not add formulas to your pages, and if that is what you need, one of the table apps above is the honest recommendation instead. There is a &lt;a href="https://horizonventures.app/table-export.html" rel="noopener noreferrer"&gt;browser demo&lt;/a&gt; that shows the merged-cell problem on a real budget table, no install needed.&lt;/p&gt;

</description>
      <category>confluence</category>
      <category>atlassian</category>
      <category>productivity</category>
      <category>spreadsheets</category>
    </item>
    <item>
      <title>"Diagrams in Confluence: draw.io, Mermaid, PlantUML or an attached SVG"</title>
      <dc:creator>Mikhail Klimenko</dc:creator>
      <pubDate>Sun, 06 Sep 2026 03:21:20 +0000</pubDate>
      <link>https://dev.to/mikhailklimenko/diagrams-in-confluence-drawio-mermaid-plantuml-or-an-attached-svg-4o76</link>
      <guid>https://dev.to/mikhailklimenko/diagrams-in-confluence-drawio-mermaid-plantuml-or-an-attached-svg-4o76</guid>
      <description>&lt;p&gt;The choice is usually made by whoever draws the first diagram, and then everybody lives with it for years. It is worth five minutes of thought, and the deciding question is not which tool is best but who will edit this thing next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Short answer.&lt;/strong&gt; A visual editor such as draw.io for diagrams that non-engineers maintain. Mermaid or PlantUML when the diagram belongs with the code and should be reviewed like code. An attached SVG when the picture comes from a design tool and you need it to look exactly right. A screenshot when the diagram will genuinely never change again.&lt;/p&gt;

&lt;h2&gt;
  
  
  The four options
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A diagramming app inside Confluence
&lt;/h3&gt;

&lt;p&gt;draw.io is the common choice, and it is free for small teams. The diagram is created and edited inside the page, links on shapes work, and anyone who can use a mouse can maintain it. This is the default answer for architecture maps, process flows and floor plans that live in the documentation and get corrected by whoever notices the mistake.&lt;/p&gt;

&lt;p&gt;The cost is lock-in of a mild kind: the diagram lives in the app's format, and moving to something else later means exporting and redrawing.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mermaid or PlantUML: diagrams as text
&lt;/h3&gt;

&lt;p&gt;Here the diagram is source code — a few lines describing nodes and arrows, rendered into a picture. The appeal is real: text goes into version control, diffs are readable, and a diagram can be generated by a script from the system it describes.&lt;/p&gt;

&lt;p&gt;Two things to know before choosing this. Confluence Cloud does not render Mermaid natively, so you need an app for it, and several of them exist including free ones. And the editing audience narrows sharply: a technical writer will not touch a diagram that has to be edited as syntax, so the diagram becomes the property of the engineers, whether you intended that or not.&lt;/p&gt;

&lt;h3&gt;
  
  
  An SVG made somewhere else
&lt;/h3&gt;

&lt;p&gt;The diagram comes from Figma, Illustrator, Inkscape, Visio or an architecture tool, and lands on the page as an attachment. It looks exactly as designed, which is why people do it.&lt;/p&gt;

&lt;p&gt;The catch is documented and unavoidable: Confluence Cloud flattens an attached SVG into a raster image before showing it, because SVG files can carry scripts. Links inside the diagram stop working, hover states disappear, and the text inside becomes pixels that search cannot see. We wrote about &lt;a href="https://horizonventures.app/docs/confluence-svg-flat-image.html" rel="noopener noreferrer"&gt;why this happens and what to do&lt;/a&gt; separately.&lt;/p&gt;

&lt;h3&gt;
  
  
  A screenshot
&lt;/h3&gt;

&lt;p&gt;Unfashionable, and sometimes correct. For a diagram that documents a moment — an incident timeline, the state of a system before a migration — a picture is the honest format, because there is nothing to keep up to date.&lt;/p&gt;

&lt;p&gt;It becomes a problem the moment the thing it shows starts changing. Then the source file is on somebody's laptop, that somebody has left, and the picture on the page is quietly wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  Side by side
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Visual editor&lt;/th&gt;
&lt;th&gt;Mermaid / PlantUML&lt;/th&gt;
&lt;th&gt;Attached SVG&lt;/th&gt;
&lt;th&gt;Screenshot&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Who can edit&lt;/td&gt;
&lt;td&gt;Anyone&lt;/td&gt;
&lt;td&gt;People comfortable with syntax&lt;/td&gt;
&lt;td&gt;Whoever owns the source file&lt;/td&gt;
&lt;td&gt;Nobody&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Links on shapes&lt;/td&gt;
&lt;td&gt;Work&lt;/td&gt;
&lt;td&gt;Limited&lt;/td&gt;
&lt;td&gt;Lost on display&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Searchable text&lt;/td&gt;
&lt;td&gt;Usually&lt;/td&gt;
&lt;td&gt;Yes, the source is text&lt;/td&gt;
&lt;td&gt;No, it becomes pixels&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Review like code&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes, that is the point&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Looks exactly as designed&lt;/td&gt;
&lt;td&gt;Close enough&lt;/td&gt;
&lt;td&gt;The renderer decides&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Needs an app&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No, but interactivity needs one&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  How to actually choose
&lt;/h2&gt;

&lt;p&gt;Ask three questions in this order, and the answer usually falls out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who edits it next year?&lt;/strong&gt; If the honest answer is "a writer, a manager, whoever spots the error", pick a visual editor. Text-based diagrams look elegant right up to the moment a non-engineer has to change one box.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does it change with the system?&lt;/strong&gt; If the diagram describes something that evolves and can be generated from it, text wins. A picture of an architecture is out of date the week it is drawn; a generated one is not.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do people need to click through it?&lt;/strong&gt; A map that exists to help people navigate documentation is worth nothing if the boxes are not links. That rules out screenshots entirely, and it is the reason an attached SVG needs help.&lt;/p&gt;

&lt;p&gt;One more thing worth checking before you commit: whether the app you are about to standardise on is still maintained. Several diagram apps for Confluence have been abandoned over the last few years, and their users found out the hard way. Our notes on the &lt;a href="https://horizonventures.app/docs/mermaid-confluence-alternative.html" rel="noopener noreferrer"&gt;abandoned Mermaid apps&lt;/a&gt; and &lt;a href="https://horizonventures.app/docs/plantuml-confluence-alternative.html" rel="noopener noreferrer"&gt;the same for PlantUML&lt;/a&gt; cover how to tell.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclosure:&lt;/strong&gt; I build &lt;a href="https://horizonventures.app/clickable-svg.html" rel="noopener noreferrer"&gt;Clickable SVG&lt;/a&gt;, which covers the third case — an SVG that already exists and needs its links working inside Confluence, plus rendering for Mermaid and PlantUML source. If your diagram does not exist yet, draw it in a visual editor and you will not need my app at all. That is the honest recommendation and it costs me nothing to make.&lt;/p&gt;

&lt;h2&gt;
  
  
  Frequently asked
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Can we mix approaches?
&lt;/h3&gt;

&lt;p&gt;Most teams end up doing so, and that is fine as long as it is by decision rather than by accident. The failure mode is four approaches in one space because four people each picked their favourite.&lt;/p&gt;

&lt;h3&gt;
  
  
  What about diagrams generated from code?
&lt;/h3&gt;

&lt;p&gt;That is the strongest case for the text-based route: the diagram is produced by the build, so it cannot drift from reality. Worth the syntax cost when the system changes weekly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Does exporting to PDF keep the diagrams?
&lt;/h3&gt;

&lt;p&gt;Rendered diagrams appear in exports as images. Interactive behaviour, including links, does not survive a PDF, which is a good reason not to make navigation depend on a document that people print.&lt;/p&gt;

</description>
      <category>confluence</category>
      <category>atlassian</category>
      <category>diagrams</category>
      <category>documentation</category>
    </item>
  </channel>
</rss>
