Start a conversation

Merging Root Posts in Khoros Communities Aurora

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 and occasionEndTime 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.
Choose files or drag and drop files
Was this article helpful?
Yes
No
  1. ATLAS

  2. Posted
  3. Updated

Comments