Confluence Cloud
Bulk edits that don't break your pages.
Change hundreds of Confluence pages at once, and change nothing you didn't ask for.
Built and running. It is not yet published on the Atlassian Marketplace — this page will link to the listing when it is.
Free for up to 10 users.
The problem with bulk editing
Search and replace across a wiki sounds simple, and the naive implementation is a disaster. Treat a Confluence page as text and run a regular expression through it and you will rewrite things that were never prose: the parameters inside a Table of Contents macro, the configuration of a third-party macro, the contents of a code sample. Pages come back mangled, or empty.
Walk only the visible text instead and you get the opposite failure. Every occurrence hiding in a link target or a smart-link card is silently missed, so the tool reports success while leaving half the job undone.
Both failures are common enough that the category has a reputation. FolioCradle exists because both are avoidable.
How it works
- 1 Scope it A space key, or a CQL query when you need something narrower.
- 2 Preview every change A dry run showing each occurrence, page by page, before and after — and where it lives: body text, a link target, a card URL. Nothing is written.
- 3 Approve what you want, page by page or match by match Untick a single occurrence and only that one is left alone; on a run of 25 pages or fewer, untick a page and it is untouched entirely.
- 4 Apply Each edit to a page becomes a normal Confluence version with a descriptive message, so page history can revert it like any other change. Labels and comments are the exceptions — neither lives in the page body, so changing one writes no page version and page history has nothing to revert. The app’s own Undo puts labels back from the record it saved, and each comment back from that comment’s own version history.
The preview and the apply run the identical engine, and apply re-reads each page live rather than trusting what the browser sent. So you get the change you approved, or nothing on that page: if somebody edited it in between and a match you unticked has moved, that page is refused and named in the report rather than written on a guess.
What it will not rewrite
Macro configuration
Macro parameters are configuration, not prose. They are reproduced exactly — including for third-party macros nobody has ever heard of. The exception is the words a reader sees as a title: the title of an info, note, tip, warning, panel, expand or code macro and the text of a status label are rewritten while “Also rewrite macro titles and status labels” is ticked, as it is until you untick it.
Code blocks
Opaque by default. A base-URL migration may legitimately want them, so it is a checkbox — off unless you turn it on.
Page structure
Tables keep their merged cells and column widths. Layouts, panels and nesting are reproduced exactly, down to the macro ids Confluence stamps on them.
Anything unmatched
Nothing outside a match is rewritten, with two exceptions: a link that holds only text goes with its words when a match removes every one of them, and the hidden copy Confluence keeps of a decision list is rebuilt to match it. The page is not rebuilt; the replacement is spliced into the original bytes, so the rest is unchanged by construction rather than by care.
That last point is the one worth testing, so it is tested against the page itself: undo the replacements and the bytes must come back exactly, character for character. It runs on every build, and it has been checked on real Confluence pages — twelve seeded with titled macros, code blocks, tables with merged cells, layouts, task lists and entities, then rewritten. Every one came back identical outside the matches, with every macro id intact.
One exception, and the app tells you before you apply. A match
that spans formatting — where half of it is bold, or a link — cannot be written as
two halves, so it goes in as one piece. Where it lands is chosen rather than
arbitrary: a link wins over a style, so Ac<a>me</a> comes back as
a whole link rather than a link left with no text inside it; between styles, the
first one takes it. The preview names the change and how many characters it
affects. Most tools in this category never find that match at all.
Where your content goes
Nowhere. The app runs inside Atlassian's own infrastructure and declares no external network permissions, so there is no server of ours in the path — because there is no server of ours at all. The full account is on the home page, and the privacy policy has the detail.
Questions, or something you wish this app did? Get in touch.