2018-04-05 01:15:22 +02:00
|
|
|
# Import data from Slack (beta)
|
2017-01-31 09:17:05 +01:00
|
|
|
|
2018-04-08 16:11:07 +02:00
|
|
|
Starting with Zulip 1.8, Zulip supports importing data from Slack,
|
|
|
|
including users, channels, messages, attachments, avatars, custom
|
|
|
|
emoji, and emoji reactions.
|
2017-01-31 09:17:05 +01:00
|
|
|
|
|
|
|
!!! warn ""
|
2018-04-05 01:15:22 +02:00
|
|
|
These instructions require shell access to the Zulip server. If you'd like
|
|
|
|
to import a Slack organization into the hosted zulipchat.com service,
|
|
|
|
contact support@zulipchat.com.
|
|
|
|
|
2018-04-18 21:27:49 +02:00
|
|
|
First, you need to do some things in Slack to setup the export:
|
|
|
|
|
2018-04-05 01:15:22 +02:00
|
|
|
1. [Export your Slack data](https://my.slack.com/services/export). You will
|
|
|
|
receive a zip file `slack_data.zip`.
|
|
|
|
|
|
|
|
!!! warn ""
|
|
|
|
**Note:** Only Slack owners and admins can export data from Slack.
|
|
|
|
See Slack's
|
|
|
|
[guide to data exports](https://get.slack.help/hc/en-us/articles/201658943-Export-data-and-message-history)
|
|
|
|
for more information.
|
|
|
|
|
|
|
|
2. [Generate a Slack API token](https://api.slack.com/custom-integrations/legacy-tokens).
|
|
|
|
|
2018-04-18 21:27:49 +02:00
|
|
|
### Import into a new Zulip server
|
|
|
|
|
|
|
|
!!! warn ""
|
|
|
|
Because the Slack import tool is very new, we recommend first
|
|
|
|
upgrading your new Zulip server to the latest `master` branch,
|
|
|
|
using [upgrade-zulip-from-git][upgrade-zulip-from-git] to avoid
|
|
|
|
bugs in the earliest versions of the Slack import tool.
|
2018-04-05 01:15:22 +02:00
|
|
|
|
|
|
|
Log in to your Zulip server as the `zulip` user. Run the following
|
|
|
|
commands, replacing `<token>` with the value generated above:
|
|
|
|
|
|
|
|
```
|
2018-04-19 19:32:58 +02:00
|
|
|
cd /home/zulip/deployments/current
|
2018-04-06 02:21:16 +02:00
|
|
|
./manage.py convert_slack_data slack_data.zip --token <token> --output converted_slack_data
|
|
|
|
./manage.py import --destroy-rebuild-database '' converted_slack_data
|
2018-04-05 01:15:22 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
!!! warn ""
|
2018-04-26 07:49:12 +02:00
|
|
|
**Warning:** This will destroy all existing data in your Zulip server
|
2018-04-05 01:15:22 +02:00
|
|
|
|
2018-04-18 21:27:49 +02:00
|
|
|
### Import into an existing Zulip server
|
2018-04-05 01:15:22 +02:00
|
|
|
|
2018-04-26 07:49:12 +02:00
|
|
|
If you already have some organizations hosted on your Zulip server,
|
|
|
|
and want to add import your Slack data as a new Zulip organization,
|
|
|
|
you can use the following procedure.
|
|
|
|
|
2018-04-05 01:15:22 +02:00
|
|
|
Log in to your Zulip server as the `zulip` user. Run the following
|
|
|
|
commands, replacing `<token>` with the value generated above, and
|
|
|
|
`<subdomain>` with the subdomain of the URL you'd like for your imported
|
|
|
|
Zulip organization.
|
|
|
|
|
|
|
|
```
|
2018-04-19 19:32:58 +02:00
|
|
|
cd /home/zulip/deployments/current
|
2018-04-06 02:21:16 +02:00
|
|
|
./manage.py convert_slack_data slack_data.zip --token <token> --output converted_slack_data
|
|
|
|
./manage.py import --import-into-nonempty <subdomain> converted_slack_data
|
2018-04-05 01:15:22 +02:00
|
|
|
```
|
|
|
|
|
2018-04-20 19:55:36 +02:00
|
|
|
## Logging in
|
|
|
|
|
|
|
|
Once the import completes, all your users will have accounts in your
|
|
|
|
new Zulip organization, but those accounts won't have passwords yet
|
|
|
|
(since for very good security reasons, passwords are not exported).
|
|
|
|
Your users will need to either authenticate using something like
|
|
|
|
Google auth, or start by resetting their passwords.
|
|
|
|
|
|
|
|
You can use the `./manage.py send_password_reset_email` command to
|
|
|
|
send password reset emails to your users. We
|
|
|
|
recommend starting with sending one to yourself for testing:
|
|
|
|
|
|
|
|
```
|
|
|
|
./manage.py send_password_reset_email -u username@example.com
|
|
|
|
```
|
|
|
|
|
|
|
|
and then once you're ready, you can email them to everyone using e.g.
|
|
|
|
```
|
|
|
|
./manage.py send_password_reset_email -r '' --all-users
|
|
|
|
```
|
|
|
|
|
|
|
|
(replace `''` with your subdomain if you're using one).
|
|
|
|
|
2018-04-05 01:15:22 +02:00
|
|
|
## Caveats
|
|
|
|
|
|
|
|
- Slack doesn't export private channels or direct messages unless you pay
|
|
|
|
for Slack Plus or contact Slack support. See
|
|
|
|
[Slack's documentation](https://get.slack.help/hc/en-us/articles/204897248-Guide-to-Slack-import-and-export-tools)
|
|
|
|
for more details.
|
|
|
|
|
|
|
|
- (Slack Plus import) Private channels and direct messages are currently
|
|
|
|
not imported. We expect to address this in a future revision.
|
|
|
|
|
|
|
|
- (Slack Plus import) Message edit history is currently not imported.
|
|
|
|
|
|
|
|
- Slack doesn't export user settings or organization settings, so
|
|
|
|
you'll need to configure these manually.
|
|
|
|
|
|
|
|
- User phone numbers and custom user profile fields are not currently
|
|
|
|
imported. We expect to address this in a future revision.
|
|
|
|
|
|
|
|
- Permission hierarchy:
|
|
|
|
Slack's `Primary owner`, `owner`, and `admin` are mapped to Zulip's `Organization admin`.
|
|
|
|
Slack's `Member`, `restricted`, and `ultra restricted` are mapped to regular Zulip users.
|
|
|
|
`Channel creators` have no special permissions in Zulip.
|
|
|
|
|
|
|
|
- The "joined #channel_name" messages are not imported.
|
|
|
|
|
|
|
|
- The import tool does not support simultaneous bold and italic
|
|
|
|
formatting of a word; we expect to address this in a future revision.
|
2018-04-18 21:27:49 +02:00
|
|
|
|
|
|
|
[upgrade-zulip-from-git]: https://zulip.readthedocs.io/en/latest/production/maintain-secure-upgrade.html#upgrading-from-a-git-repository
|