buddyboss/restructure-topic merges one topic into another, or splits a topic at a chosen reply.
Both rewrite reply parents, and neither can be undone.
Before you run it
Merging moves every reply out of the source topic and the source stops existing as a topic. Splitting moves a reply and all replies after it into a different topic. Neither can be undone by re-running this — the reply parents have been rewritten and there is no record of what they were. Both require confirm_title to match the title of the topic being restructured, checked against the live record. Call buddyboss/get-topic first for the title and the reply count.
At a glance
| Ability | buddyboss/restructure-topic |
| Toolset | BuddyBoss — toolset/buddyboss |
| Group | BuddyBoss › Forums |
| Requires | AcrossAI Pro, plus BuddyBoss Platform active on the site |
| Capability | manage_options |
| Safety | Destructive and irreversible — merging and splitting rewrite every affected reply’s parent. Requires confirm_title. |
| Repeatable | Not idempotent — each call changes the row set, so re-running is not a no-op |
| Ships in | AcrossAI Pro 0.9.16 and later |
How it works
A merge moves every reply out of the source topic and into the target. The source stops existing as a topic — it is not trashed, it is consumed.
A split takes a reply and everything after it and moves the lot into a different topic. The original keeps everything before the split point.
In both cases the operation is a bulk rewrite of parent relationships, and nothing records what those relationships were. Re-running does not reverse it; there is no inverse operation to run.
That is why the reply count matters, and why buddyboss/get-topic is the planning step: the count is the number of relationships about to change.
The title confirmation is checked against the live record, which catches both a wrong topic ID and a topic renamed since your read.
Everything reversible lives in buddyboss/act-on-topic — close, sticky, spam and trash. If the goal can be met with one of those, it should be.
Not idempotent.
Input
| Name | Type | Required | What it is |
|---|---|---|---|
action | string | Yes | merge or split. |
topic_id | integer | Yes | The topic being restructured. |
confirm_title | string | Yes | Must exactly match that topic’s title on the live record. |
destination_topic_id | integer | For merge | The topic to merge into. |
reply_id | integer | For split | The reply to split at. |
confirm | boolean | Yes — must be true | The irreversibility gate. Without it the call is refused before anything is touched. |
What comes back
| Name | Type | What it is |
|---|---|---|
topic_id | integer | The topic restructured. |
replies_moved | integer | How many replies changed parent. |
success | boolean | Whether the call completed. |
message | string | A one-line summary of what happened, suitable for showing a human. |
error_code | string | Present only on failure — a stable machine-readable reason, such as a missing field, a wrong field type or an unmet confirmation. |
Example
Ask your assistant:
Merge this duplicate topic into the original.
It resolves to one call:
{
"ability": "buddyboss/restructure-topic",
"parameters": {
"action": "merge",
"topic_id": 1204,
"confirm_title": "Scheduled maintenance on Monday",
"destination_topic_id": 1180
}
}Worth knowing
- A merged source topic is consumed, not trashed.
- Nothing records the previous reply parents. There is no inverse.
- The title is checked live, catching renames as well as wrong IDs.
- Every reversible topic operation is in
buddyboss/act-on-topic.
Related abilities
- BuddyBoss Get Topic — the title and reply count
- BuddyBoss Act On Topic — the reversible operations
Get the plugins:
AcrossAI Abilities Manager · AcrossAI MCP Manager
Browse the rest: Every ability, by category