my community has almost 4 years and lots of content.
Over time some solutions that were valid in the past, today are no longer valid, for example because we have changed procedures, product features, etc..
Is there a way to automatically move a discussion to an "archive" area after a certain time?
Good question. And you'll find many fellow community managers who've asked the same. Actually, it would be so good if we could define parameters that define what happens to a piece of content in certain situations. For example, if a post is recent but viewed less than xx amount of time in the past xx months, move it to an archive. If the content is older but still relevant, then do not archive. If the content is old and not viewed move it to an archive after xx amount of time/views. My wish is for a full content management system, fully automated of course.
But, not possible out of the box. You can use batch processing to move many topics somewhere at the same time but I am sure you know that.
Our developer helped us with a tool that can automate some of what you are looking for. Have a look here.
This is certainly one of the most longstanding requests to improve the Khoros Community platform. I have worked with a number of Community Managers over the years on archiving strategies and have found that an automated tool could be very helpful in the process.
Please vote and/or comment on this Idea over here.
The problem with using batch processing to move messages is that you can only do it efficiently if you temporarily set your community to display 200 messages at a time. An alternative is to use Ruby and CURL to run a script. The upside of this is that it's reversable. If you make a mistake or change your mind, you just reverse the process. My notes on it are kind of just for me, but her you go in case you're interested:
This is how to use a script to move messages in Lithium (forums, blogs, etc). If you don't use the script, you need to configure your page/community to display 200 messages at a time. Turn on batch processing, and select to NOT notify users. There is no issue with notifications when doing this move message script (but that's not true with labels)To use the script, you need to configure your machine to run RUBY and CURL.
1. Turn off posting to a forum (Users/default permissions/submit posts and start topics)
2. Create the input file of the message IDs that need to be moved and the target location
1. The message ID comes from the URL. It's right before the #
2. The input comma delimited file has 3 elements: Message ID, move, Destination board ID
3. Download a list of messages.
1. Go to MODERATION (admin tool), navigate to the forum, click "Export Search Results to CSV" You'll get a PM when it's ready for download
2. Put the CSV into a new folder under MOVE Message Script (Google docs).
4. Process the downloaded data
1. Delete excess columns. Start with column T and everything to the right. AND other columns, not the below
2. Key Columns
1. A - Subject
2. B - Message body (w/HTML)
3. C - Message boy (no HTML)
4. D - URL (with ID)
5. J - Tags
6. K - Labels
7. R - URL of the parent (if there is one)
3. Deal with really long posts.
1. Column B will overrun the boundaries
2. The next column will be offset one to the left. Scroll through the data and look for anything that doesn't look right. (column H?)
3. You can clean it up or just delete it.
4. Sort and remove child posts
1. Insert blank row 4 to separate header data
2. Highlight row 5 and FILTER . Sort on parent or root messages. A to Z (or Z to A)
3. Delete all the CHILD messages. Moving the parent moves the child messages
4. Save this as an EXCEL spreadsheet
5. Add a new column to the left. Label it MSGID. Put the forumula in there and copy it down
1. Message ID extract spreadsheet exists in the folders, Cell A6. Copy the Message ID extract formula.
6. Create a new file in the same folder. finished.csv
1. Copy the MSD IDs to the new file (paste by value) to column A
2. Add a column "move" into column B (double click on right corner and it fills all the way down)
3. Add the column C with the destination board
1. The board ID follows the "bd-p/" in the url and before the # if it exists. IMPORTANT: IF THE BOARD NAME ENDS WITH A NUMBER, SELECT 2 ROWS BEFORE DOUBLE CLICKING OR IT WILL INCREMENT THE NUMBER
7. save as finished.csv
1. Set up the command line to run the script
1. Open the file MOVE messages input.txt and edit it to add the info for this move (or part 2 in evernote).
1. You have to tell the program 4 things: The community URL | The Lithium session cookie ID | The input file | The output file
2. You must be logged in. Get your Lithium session ID - F12 (CHROME developer tools), under the APPLICATION tab, look for LiSESSION ID and copy the value - put it into your new command in the text file.
1. Execute the script and monitor it.
1. Go to the command line and change into your move directory (copy/paste from the text file)
2. Paste the ruby command line you just built and run it.
1. Look for "Authentication success" near the top. It takes about 3 seconds per topic. Could take a couple of hours or more to run
3. If the script errors out, create a new input file (new name) and remove everything that has already run, change the log file name, then start it again. Let it pick up where it left off.
2. SORT the forum (moved messages are at the top, no matter how old they are)
1. Go into the forum, manually move one message out, then back in telling it to sort chronologically.
More information on how to move messages in Lithium. Get the session ID by being logged in, hitting F12 (chrome) > Application > LiSESSIONID
***Sample Command line:
-------always the same---| URL OF THE COMMUNITY----------|----| Lithium Session ID
cookie: LiSESSIONID | Input File(and dir) | Output File and Directory
ruby move-messages.rb -h https://yourcommunity.com -s
[your session ID] update-labels-test.csv > test-run.log
***Formula to find user ID:
ruby move-messages.rb -h <a href="https://yourcommunity.com" target="_blank">https://yourcommunity.com</a> -s [sessionID] CM-RM-Consolidation\finished.csv > CM-RM-Consolidation\ODMA.log