The Merge Root Posts feature introduced in Aurora 25.04 enables community managers and moderators to consolidate similar or duplicate topics into a single root post. This enhancement simplifies content organization, improves community navigation, and reduces redundant discussions.
Key Concepts
- Root Post: The initial post in a thread (e.g., a forum topic or an idea).
- Merge Root Posts: Combines two or more root posts into a single thread, preserving important replies and consolidating discussions.
- moveMessage Mutation: The primary API used for moving or merging posts and replies.
- Occasion Fields: Optional fields (
occasionStartTime
,occasionEndTime
,occasionTimezone
) that allow event-related metadata to be added during move operations.
Primary Use Cases
Use Case | Description |
---|---|
Merging Duplicate Topics | Combine duplicate forum posts covering the same question or discussion. You can also merge different content types together. For example, a forum discussion can be merged as a comment to a similar topic idea. |
Merging Similar Ideas | Consolidate similar or overlapping ideas submitted by different users. |
Streamlining Events | Move multiple discussions under a unified event topic, optionally using occasion metadata. For example, members may discuss an upcoming event in a discussion thread, idea, or a blog post that would be better served as an event. |
How It Works
The moveMessage mutation is used for all move operations, including merging root posts. The new merge functionality follows the same principles as moving replies, with enhanced logic to handle root-to-root merging.
API Usage
Merging root posts is accomplished through a GraphQL mutation that indicates the message that needs to be moved, the destination where it is going, whether to leave a placeholder at the old location, and optional occasion data.
Sample GQL Mutation for Merging a Root Post:
mutation {
moveMessage(
id: "message:160",
destinationId: "board:new-event",
moveMessageInput: {
leavePlaceholder: false,
occasionEndTime: "2025-05-06T07:00:00.000Z",
occasionStartTime: "2025-04-16T07:00:00.000Z",
occasionTimezone: "US/Pacific"
}
) {
result {
id
subject
}
errors {
... on Error {
__typename
message
}
}
}
}
Key Fields:
Field | Description |
---|---|
id |
The ID of the message to be moved (root post). |
destinationId |
The ID of the board or post where the message will be merged. |
moveMessageInput.leavePlaceholder |
Indicates whether to leave a redirect placeholder (usually set to false for merging). |
moveMessageInput.occasionStartTime |
(Optional) Specifies the event start time if moving into an event context. |
moveMessageInput.occasionEndTime |
(Optional) Specifies the event end time if moving into an event context. |
moveMessageInput.occasionTimezone |
(Optional) Specifies the timezone for the event if moving into an event context (e.g., "US/Pacific"). |
Additional Operations
Show Move Indicator
The message query introduced a new field, showMoveIndicator
, to display whether a message has been moved.
Sample Query:
{
message(id: "message:1") {
showMoveIndicator
}
}
Use this field to visually indicate moved content in UI components.
Clear Move Placeholder
If a placeholder was accidentally left after moving or merging, or is no longer needed after a certain time, you can clear it using the following mutation:
mutation {
clearMovePlaceholderForMessage(messageId: "message:598") {
result
errors {
... on PermissionDeniedError {
message
}
... on MessageNotFoundError {
message
}
}
}
}
Best Practices
- Review Content Before Merging: Ensure posts are genuinely related to avoid confusing users.
- Communicate Changes: Inform users when major merges occur to maintain transparency using the out-of-the-box move notifications optionally available at the time of moving the content.
- Use Occasion Fields Appropriately: When consolidating discussions for a time-bound event, provide
occasionStartTime
andoccasionEndTime
to maintain accurate context.
Troubleshooting
Issue | Solution |
---|---|
Permission Denied Error | Verify that you have the necessary permissions to move or merge messages. |
Message Not Found Error | Ensure the message ID is correct and the post exists. |
Merge Does Not Appear | Check if the destination ID and the root ID were matched correctly. |
ATLAS
Comments