How can I duplicate a whole topic?

It sounds probably ridiculous since people usually want to avoid or remove duplicate threads. However I have a use case right now where I need to duplicate a thread. How can I do it?


Manually ? You can navigate to the raw contents of the topic by going to /raw/{topic_id} and copying everything there.

So, becomes

By the way, Discourse calls topics what you call “threads”

Edit: or, if you are TL4/staff you can just click edit and copy everything there


Actually that doesn’t do what I need. I want all the topic with all the replies. I want an exact duplicate of the thread, but with different topic_id

1 Like

I found a way to “reproduce” a whole thread which was laborious but no way to truly duplicate it. (Retaining the likes for instance)

I create a new thread and put it in a non accessible category e.g. staff. I copy each reply from the original topic tread and paste it in a reply in the new topic thread. For replies I only need in the new topic thread, I just select and move them. Then I change ownership of the copied reply to the name of the poster of the original reply. Once I am done, I close the original thread and I change the category of the new topic to a public category.

Of course this is too painstaking to use on a regular basis. The reason I needed to do it this time was because someone created a topic with a very long title that could be interpreted in two different topic threads. We (moderators) noted the issue of long title (this will be restricted to less characters now) but didn’t realize at that time that it would cause a problem.

The conversation started and before we knew it, we had two very intertwined delicate conversations going on, with some offensive comments from one member that nevertheless provoked a rich series of responses in both matters.

To retain the richness of the contributions that had taken place, to reprimand the repeated offender, to use the event for community educational purpose and to permit both valuable conversations to grow each their way, I determined that it was best to split the topics apart, keeping only the pertinent interventions to each but not hesitating to repeat in both the interventions that were covering both matters for clarity comprehension purposes.

In the topic thread that retained the offensive reply, I also put a staff notice before the offensive post saying that it wasn’t in accordance with our community values but that we’d let it for educational purpose. I doctored that post in the following manner: I put the markdown code < del >
In front of the offensive language

I explained that to express his opinion in a constructive manner the member

would have been better wording it

< ins > this way instead.

That was a lot of work and thinking. I would not do that again manually. But the use case is definitely there.

1 Like

That sounds like a lot of work! You might get better feedback next time when you don’t just ask for technical support (“How can I duplicate a topic?”), but explain the situation and what you want to achieve in your initial post. E.g. you probably could have just closed the topic, put a staff note as last post and link it to two new topics where the respective discussions could continue?


I can’t blame you for your comment: we often ask what is the goal when people ask for technical stuff about fmpro on our board.

However I was dead set on my intent to experiment this approach with the current situation. I knew about closing thread and starting two new topics. I wanted to use the existing material for educational purposes.

We have a very good community, lots of great contributions. However, we were born out of frustration with the vendor’s platform. So I have been using various approach and change management techniques to help people move away from the whining and bitching about the vendor.

Most have progressed in the way they express critical opinions about the product or the vendor. Unfortunately a few individuals had the tendency to stir the pot and brought upon the community a bad reputation and valuable members of the ecosystem whom have a closer or privileged relationship with the vendor won’t come near us. Which is unfortunate because we have grown organically as most people when they become aware that we exist like the forums and want to stay and these stellar members were bringing in valuable expertise and content.

Two very reputable and esteemed developers had to withstand bickering and had to “work” too hard to rectify information and lost the motivation and fun to contribute and removed themselves.

We did moderate but it was just unpleasant to constantly have the same irritating behaviours resurfacing and by trying to give everyone the right to their say, I eventually realize that it was somewhat unfair on everyone to have to exercise tolerance and forcing them to witness unpleasantries because a few would not refrain from being jerks.

Our FAQ did nit impress upon them the faculty to observe and recognize the faults in their interactions. Instead of do’s and don’ts, or guidelines people interpret how they want anyway, our new administrator decided to promote values instead. It turns out it is easier to moderate because we just say that post doesn’t abide by our community values so it was edited (or hidden until you modify it).

However we eventually realized that doing this didn’t help people who have been communicating poorly all their lives to know how to do better.

So now we are adding educational interventions, basically metacommunicating, directly in the threads. We’ll se how that turns out.


I know, @HAWK even edited my title to reflect that.

I use threads exactly to avoid what happened here: your suggestion was a solution to duplicate the topic (aka the initial post). However what I wanted was a solution to duplicate the whole thread (which is the the initial post aka topic + all the following replies.

In other words, when you create a new topic and people post replies, what you get is a thread.

That’s the thing – you don’t… There is literally no such thing as a thread in Discourse. The first post and all responses together are called a topic.

I will accept the concept you expose in the context of Discourse. However, linguistically, philosophically, and historically in the online fora domain, thread is what best describe the thing that has for components a titled initial post and the following replies. :slightly_smiling_face:

1 Like

Agreed, but the thing that you’re missing here is that Discourse doesn’t have threading like all other forum platforms do. That is literally why we make this distinction.


You make a point. In this case a discussion or conversation might be a better term since it is less specific about the design uniting the components :grinning: