Você quer mover o arquivo de um canal do Slack para o Notion para pesquisar, filtrar e compartilhar o histórico de conversas no seu espaço de trabalho. O Slack não oferece uma exportação direta para o Notion, mas você pode criar um pipeline repetível usando o recurso de exportação nativo do Slack e a importação CSV do Notion. Este artigo explica como exportar o arquivo de um canal do Slack, converter os dados em um arquivo CSV estruturado e importá-lo para um banco de dados do Notion. Você também aprenderá a lidar com formatação de datas, anexos de arquivos e menções a usuários para que o banco de dados resultante seja utilizável imediatamente.
Principais Conclusões: Construindo um Pipeline de Importação de Arquivo de Canal do Slack
- Exportar Slack > Baixar > Extrair: Solicite uma exportação do espaço de trabalho do Slack, baixe o arquivo ZIP e extraia os arquivos JSON do canal desejado.
- Python ou Ferramenta de Conversão CSV: Use um script ou conversor online para transformar os dados JSON das mensagens do Slack em um CSV com colunas para timestamp, usuário, texto e anexos.
- Importação no Banco de Dados do Notion > CSV: Crie um novo banco de dados no Notion, use a opção Importar CSV e mapeie as colunas para os tipos de propriedade do Notion, como Data, Título e Texto.
O que o Pipeline de Arquivo de Canal do Slack Faz e o que Você Precisa Antes de Começar
O pipeline extrai todas as mensagens de um canal do Slack, transforma-as em formato de tabela e as carrega em um banco de dados do Notion. Após a importação, cada mensagem se torna uma linha no Notion. Você pode então filtrar por usuário, data ou palavra-chave, e vincular o banco de dados a outras páginas do Notion.
Antes de começar, confirme os seguintes pré-requisitos:
- Você deve ser proprietário ou administrador do espaço de trabalho do Slack para solicitar uma exportação. Se não for administrador, peça ao proprietário do espaço de trabalho para realizar a exportação para você.
- Você precisa de uma conta no Notion com permissão para criar um novo banco de dados. Qualquer plano, incluindo o Gratuito, suporta importação CSV.
- Você precisa de um computador com navegador web e capacidade de descompactar um arquivo ZIP. Nenhum software especial é necessário para o método básico, mas um script Python é recomendado para canais grandes.
- Se o canal tiver mais de 10.000 mensagens, divida a exportação em intervalos de datas menores para evitar timeouts durante a importação.
Passos para Exportar o Arquivo do Canal do Slack e Importá-lo para o Notion
Método 1: Exportação Manual e Conversão para CSV
Este método funciona para canais com menos de 5.000 mensagens. Você usará a ferramenta de exportação nativa do Slack e um conversor online gratuito de JSON para CSV.
- Solicite uma exportação do espaço de trabalho do Slack
Acesse a página de Configurações e Permissões do Slack. Em Importar/Exportar, selecione Exportar. Escolha o intervalo de datas que cobre o histórico do canal desejado. Clique em Iniciar Exportação. O Slack enviará um e-mail com um link para baixar um arquivo ZIP quando a exportação estiver pronta. Isso geralmente leva de 5 a 30 minutos, dependendo do tamanho do espaço de trabalho. - Baixe e extraia o arquivo ZIP
Clique no link do e-mail para baixar o arquivo ZIP. Extraia o ZIP para uma pasta no seu computador. Dentro, você encontrará uma pasta com o nome do seu espaço de trabalho e, em seguida, subpastas para cada canal. A subpasta do canal contém um ou mais arquivos JSON nomeados por data, por exemplo, 2024-01-15.json. - Abra o arquivo JSON do canal e copie seu conteúdo
Abra o arquivo JSON do canal que deseja importar. Use um editor de texto como Notepad ou Visual Studio Code. Selecione todo o texto e copie. - Converta JSON para CSV usando um conversor online
Abra um conversor gratuito de JSON para CSV, como ConvertCSV ou JSON2CSV. Cole o JSON copiado no campo de entrada. Defina as opções de conversão: achatar objetos aninhados, usar vírgula como delimitador e incluir cabeçalhos. Clique em Converter. Baixe o arquivo CSV resultante. - Limpe o arquivo CSV em um editor de planilhas
Abra o arquivo CSV no Microsoft Excel ou Google Sheets. Exclua colunas desnecessárias, como type, subtype e bot_id. Renomeie as colunas restantes para corresponder aos nomes de propriedade do Notion: Timestamp, User, Text, Attachments. Converta a coluna de timestamp do formato epoch Unix para uma data legível. No Excel, use a fórmula =((A1/1000)+DATA(1970;1;1)) onde A1 é a célula com o timestamp Unix. Copie a fórmula para baixo na coluna e formate as células como Data. - Crie um novo banco de dados no Notion
Abra o Notion e navegue até a página onde deseja o banco de dados. Clique no ícone de mais e selecione Banco de Dados > Tabela. Um novo banco de dados vazio aparecerá. - Importe o arquivo CSV para o banco de dados
Clique no menu de três pontos no canto superior direito do banco de dados. Selecione Importar. Escolha CSV. Selecione o arquivo CSV limpo do seu computador. O Notion mostrará uma prévia das colunas. Mapeie as colunas para os tipos de propriedade: defina Timestamp como Data, User como Texto, Text como Título e Attachments como Texto. Clique em Importar. - Verifique os dados importados
Role o banco de dados para confirmar que todas as mensagens aparecem. Verifique se as datas estão corretas e se a coluna Título mostra o texto da mensagem. Edite quaisquer linhas que mostrem erros na coluna Data reaplicando o tipo de propriedade Data.
Método 2: Pipeline Automatizado Usando um Script Python
Para canais com milhares de mensagens, use um script Python para extrair mensagens e gerar um CSV. Este método é mais rápido e reduz erros manuais.
- Instale o Python e as bibliotecas necessárias
Baixe o Python 3.10 ou superior em python.org. Durante a instalação, marque Adicionar Python ao PATH. Abra um terminal ou prompt de comando e execute pip install pandas para instalar a biblioteca de manipulação de dados. - Crie um script Python para achatar o JSON do Slack
Crie um novo arquivo chamado slack_to_csv.py. Cole o seguinte código no arquivo:import json import pandas as pd import os pasta_canal = 'caminho/para/sua/pasta/do/canal' todas_mensagens = [] for nome_arquivo in os.listdir(pasta_canal): if nome_arquivo.endswith('.json'): with open(os.path.join(pasta_canal, nome_arquivo), 'r') as f: dados = json.load(f) for msg in dados: linha = { 'Timestamp': pd.to_datetime(msg['ts'], unit='s'), 'User': msg.get('user', ''), 'Text': msg.get('text', ''), 'Attachments': json.dumps(msg.get('attachments', [])) } todas_mensagens.append(linha) df = pd.DataFrame(todas_mensagens) df.to_csv('exportacao_canal_slack.csv', index=False) print('Arquivo CSV criado: exportacao_canal_slack.csv')Substitua ‘caminho/para/sua/pasta/do/canal’ pelo caminho real da pasta do canal extraída.
- Execute o script
No terminal, navegue até a pasta que contém slack_to_csv.py. Execute python slack_to_csv.py. O script criará um arquivo chamado exportacao_canal_slack.csv na mesma pasta. - Importe o CSV para o Notion
Siga os passos 6 a 8 do Método 1 para criar um banco de dados no Notion e importar o arquivo CSV. A coluna Timestamp já estará em formato de data legível, então você pode pular a etapa de conversão manual.
Se a Importação Apresentar Problemas Após os Passos Principais
Coluna de Data Mostra Números em Vez de Datas
Às vezes, o Notion interpreta timestamps Unix como números simples. Para corrigir, abra o CSV em um editor de planilhas antes de importar. Converta a coluna de timestamp para formato de data usando a fórmula descrita no passo 5 do Método 1. Salve o arquivo e reimporte. Alternativamente, no Notion, altere o tipo de propriedade da coluna Timestamp para Data e insira manualmente a data em algumas linhas para forçar o Notion a reconhecer o padrão.
Coluna de Usuário Está Vazia para Algumas Mensagens
Mensagens do Slack de bots ou webhooks podem não ter o campo user. O script Python acima lida com isso deixando a célula User em branco para essas mensagens. Após a importação, você pode preencher manualmente o nome do usuário ou criar uma propriedade de fórmula que mostre Usuário Desconhecido quando o campo estiver vazio. Use a fórmula: if(empty(prop(“User”)), “Desconhecido”, prop(“User”)).
Coluna de Anexos Contém Strings JSON Longas
A coluna de anexos armazena metadados de arquivos como texto JSON. Isso dificulta a leitura do banco de dados. Para melhorar a legibilidade, exclua a coluna de anexos após a importação e crie um banco de dados separado para referências de arquivos. Alternativamente, use a propriedade Rollup do Notion para vincular arquivos de um banco de dados secundário. Na maioria dos casos, a coluna Text contém o link para o arquivo se a mensagem incluiu um upload de arquivo.
Comparação: Exportação Manual vs Script Python vs Serviço de Terceiros
| Item | Exportação Manual + Conversor CSV | Script Python | Serviço de Terceiros |
|---|---|---|---|
| Tempo de configuração | 15 minutos | 30 minutos | 5 minutos |
| Custo | Gratuito | Gratuito | Geralmente pago ou freemium |
| Limite de mensagens | Abaixo de 5.000 | Sem limite | Varia conforme o serviço |
| Formatação de data | Conversão manual necessária | Automática | Automática |
| Mapeamento de usuário | Apenas IDs de usuário | Apenas IDs de usuário | Pode mapear para nomes de exibição |
| Anexos de arquivos | Armazenados como texto JSON | Armazenados como texto JSON | Pode incluir links diretos |
Agora você pode construir um pipeline repetível para mover qualquer arquivo de canal do Slack para um banco de dados do Notion. Comece com um canal pequeno para testar o processo e depois escale para canais maiores. Para importações contínuas, agende o script Python para ser executado semanalmente e reimporte as mensagens mais recentes. Para tornar o banco de dados mais útil, adicione uma propriedade Select para o nome do canal se planeja importar vários canais no mesmo banco de dados.