Como Criar um Pipeline de Importação do Slack para o Notion a partir do Arquivo de Canal
🔍 WiseChecker

Como Criar um Pipeline de Importação do Slack para o Notion a partir do Arquivo de Canal

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.

ADVERTISEMENT

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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á.
  7. 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.
  8. 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.

  1. 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.
  2. 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.

  3. 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.
  4. 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.

ADVERTISEMENT

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.

ADVERTISEMENT