RocketChat / RocketChat/Rocket.Chat
Importing of private slack channels
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 46.1k
- Forks
- 13.9k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 130
Description
Please tag as a feature request
A big blocker I've discussed with A lot of people who want to move over to RocketChat is:
A) Slack does not allow export of private groups by default
B) You cant convert private groups back to public so you essentially have to give that history up.
There are a few tools out there that can do this now - But one stands out as being kept up to date and works very well
Would it be possible to build support into the importer functions to support the import of these files that the following tool does: https://github.com/hisabimbola/slack-history-export
The JSON is Almost identical with the differences being a field or two extra (That could be stripped out) and the fact that the dump is provided in 1 large JSON file instead of day by day.
The ability to import private history would make the decision to switch so much easier.
The export from the tool slack-history export looks like :
{
"type": "message",
"user": "jszaszvari",
"text": "all good, i got it now",
"ts": "1473298702.000213",
"date": 1473298702000
},
{
"type": "message",
"user": "jszaszvari",
"text": "might not need it",
"ts": "1473298635.000212",
"date": 1473298635000
},
{
"type": "message",
"user": "jszaszvari",
"text": "actualy",
"ts": "1473298632.000211",
"date": 1473298632000
},
and a export from a real slack export looks like
{
"type": "message",
"user": "U0HSP1G1W",
"text": "A group just for Moodle fun!",
"ts": "1455055239.000006"
},
{
"type": "message",
"user": "U0HKRCQPR",
"text": "welcome Moodle!!",
"ts": "1455055271.000007"
},
{
"type": "message",
"user": "U0HSP1G1W",
"text": "Thanks John for the reference of Pukunui, lets post our questions for them in this group.",
"ts": "1455055279.000008"
},
So there would need to be a mapping of the usernames, replaced at the time of import because the github tool has the actual username in there instead of the user ID
A channel join from slack-history-export
{
"user": "charlotte",
"inviter": "U0CJ5465Q",
"text": "<@U23ESN1ML|charlotte> has joined the group",
"type": "message",
"subtype": "group_join",
"ts": "1471913460.001097",
"date": 1471913
460001
},
and a channel join from Slack:
{
"user": "U0HKRCQPR",
"inviter": "U0HSP1G1W",
"type": "message",
"subtype": "channel_join",
"text": "<@U0HKRCQPR|tapscola> has joined the channel",
"ts": "1455055221.000005"
},
Very similar just channel_join vs group_join and userid vs username
I'm trying to write a tool that will split these up into a slack style export
But just thought you might be interested in getting this on the roadmap to help with adoption.
I'm happy to provide a export from https://github.com/hisabimbola/slack-history-export with 50,000+ messages in it which should cover every type of action...
Thanks
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the slack-history-export JSON and the real Slack export shown in the issue, including usernames, user IDs, group_join, and channel_join. The work is done when the importer accepts the single-file private-channel export, maps users correctly, and preserves the message and membership history.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- json
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100