# Importar conteúdo por planilha

> Como trazer posts, artigos e posts curtos de uma planilha .xlsx ou .csv com a data e o autor originais (arquivo, colunas, opções, prévia, andamento e relatório), o que faz uma linha ser pulada, cada aviso e os limites.

O botão **Importar conteúdo** traz para a comunidade o histórico que estava em outro lugar (WordPress, Substack, Circle, um grupo antigo, uma planilha): cada linha da planilha vira um post, um artigo ou um post curto, com a **data original** e, quando dá, o **autor original**. Você diz para onde vai cada coluna, confere uma prévia e só então importa. Ninguém é notificado.

## Para que serve

| Comunidade | Planilha |
|---|---|
| Migrando de um blog ou newsletter | A exportação dos artigos, com título, texto em HTML, data e e-mail do autor |
| Fórum ou grupo antigo | As discussões, cada uma com o e-mail de quem abriu, indo para um espaço de Feed |
| Associação | O arquivo de comunicados dos últimos anos, todos num espaço de Conteúdo |
| Curso | Os recados da turma como posts curtos, na ordem em que saíram |

## Como funciona

### Onde fica e quem pode

No cabeçalho dos espaços de **Conteúdo** e de **Feed**, clique na seta ao lado de **Novo Conteúdo** (no Feed, **Novo Status**) e escolha **Importar conteúdo**. Só o **proprietário** e o **administrador** veem essa opção; para os outros papéis ele não aparece, e a API recusa.

Com a entrada da comunidade suspensa pela Memberfy, a importação não começa. Ver [Suspensão de entrada e vendas](/membros/politica-de-convites#suspensao-de-entrada-e-vendas).

### Os três tipos

| Tipo | Como entra | Onde pode entrar |
|---|---|---|
| **Post** | Título e texto | Espaço de Conteúdo ou de Feed |
| **Artigo** | Título e texto | Espaço de Conteúdo ou de Feed |
| **Post curto** | Só texto, até 500 caracteres, sem título e sem tags | Só espaço de Feed |

O tipo vale para todas as linhas (opção **Tipo**) ou vem de uma coluna da planilha, com valores como *post*, *artigo* ou *curto* (também *status*, *blog*, *newsletter*, em português, inglês, espanhol, italiano ou alemão).

### O que a importação respeita

- **A data original fica.** O post entra com a data da planilha como [data de publicação](/espacos/conteudo#data-de-publicacao), no lugar dessa data no Feed e na lista do espaço, e não no topo.
- **Em silêncio.** Nada é notificado: nenhum membro recebe aviso nem e-mail, os posts ficam fora dos e-mails de novidades e dos destaques, e ninguém ganha pontos no [Ranking](/espacos/ranking). Só quem importou recebe, no fim, um e-mail com o resumo.
- **O autor vem pelo e-mail.** A coluna de e-mail do autor liga cada linha a uma pessoa da comunidade. Ela precisa ser membro e ter **papel abaixo do seu** (o proprietário importa em nome de administradores, moderadores, financeiro e membros; o administrador, em nome de moderadores, financeiro e membros). Fora disso, a linha é pulada e o relatório diz por quê. O seu próprio e-mail sempre vale. Quem importou fica registrado nos [Logs](/membros/registros-de-atividades) em cada post feito em nome de outra pessoa.
- **Data no futuro ou inválida não entra.** A linha é pulada. **Data vazia** vira a data da importação, e a linha entra com um aviso.
- **Nada entra duas vezes.** Um post ou artigo com o mesmo título e a mesma data de um que já está na comunidade é pulado; importar de novo a mesma planilha não duplica. Linhas repetidas dentro da própria planilha também entram uma vez só.
- **As imagens vêm junto.** As imagens dentro do texto são baixadas e hospedadas na Memberfy, com os mesmos limites de uma imagem enviada pelo app; os links do texto continuam como estão. A imagem que não pode ser baixada fica como link para o original, e o relatório avisa.
- **Os links viram player ou cartão.** Os links do texto de cada post importado viram [player ou cartão](/espacos/conteudo#links-viram-player-ou-cartao), até 5 por post, em segundo plano, depois que o post entra.

### Limites

| O quê | Limite |
|---|---|
| Arquivo | **.xlsx** ou **.csv**, até **5 MB** |
| Linhas | Até **5.000** linhas de dados (e 100 colunas) |
| Imagens por linha | **20**; as seguintes ficam como link |
| Imagens por importação | **300** ou **500 MB**, o que vier primeiro; as seguintes ficam como link |
| Importações ao mesmo tempo | **Uma** por comunidade; a próxima começa quando a anterior terminar |

Uma planilha cujos textos somados passam de 25 MB é recusada antes de começar: divida em partes menores.

## Passo a passo

### 1. Arquivo

1. No espaço de Conteúdo ou de Feed, clique em **Importar conteúdo**.
2. Arraste a planilha ou clique para escolher (**.xlsx ou .csv · até 5 MB e 5.000 linhas**).
3. Confira a leitura:
   - **Aba**: no .xlsx, qual aba ler.
   - **Linha de cabeçalho**: a Memberfy acha sozinha; para trocar, clique em outra linha da tabela.
   - **Separador** (vírgula, ponto e vírgula, tabulação ou barra vertical) e **Codificação**: no .csv, descobertos sozinhos; dá para trocar.

### 2. Colunas

Cada coluna aparece com as 3 primeiras linhas e um destino sugerido em **Vai para**. Ajuste o que precisar; o que ficar em **Ignorar** não é importado. Cada destino aceita uma coluna só.

| Destino | O que vai nele |
|---|---|
| **Título** | Obrigatório em post e artigo. Títulos com mais de 300 caracteres são cortados |
| **Conteúdo** | Texto, Markdown ou HTML. Obrigatório para continuar |
| **E-mail do autor** | O post fica no nome da pessoa da comunidade com esse e-mail. Sem essa coluna, tudo sai em seu nome |
| **Data de publicação** | A data original. Data sem fuso usa o fuso da comunidade |
| **Space** | O id, o endereço ou o nome de um espaço de Conteúdo ou de Feed (maiúsculas e acentos não importam) |
| **Tipo** | post, artigo ou curto |
| **Tags** | Várias, separadas por vírgula, ponto e vírgula ou barra vertical (até 20 por post) |

### 3. Opções

- **Space** (ou **Space padrão**, quando há coluna de space): onde os posts entram, ou o espaço usado quando a linha não traz um válido. **Nenhum (pular a linha)** pula as linhas sem space válido.
- **Tipo** (ou **Tipo padrão**): Post, Artigo ou Post curto. Post curto só entra em espaço de Feed.
- **Quem vê**: **Só membros** ou **Público**.
- **Ordem das datas**, que aparece quando a planilha tem datas como 03/04/2024: **Dia/mês/ano** ou **Mês/dia/ano**. A tela mostra um exemplo da planilha (*"03/04/2024 será lida como 3 de abril de 2024."*) e, quando a planilha tem uma data que só cabe numa ordem (como 25/12/2023), escolhe essa e avisa.
- **Fuso**: datas sem fuso são lidas no fuso da comunidade, que a tela mostra.
- **Autor com e-mail desconhecido**, para quando o e-mail da planilha não é de ninguém da comunidade: **Pular a linha** ou **Publicar em meu nome** (a linha entra com um aviso).

As datas aceitas: AAAA-MM-DD (com ou sem hora e fuso), DD/MM/AAAA ou MM/DD/AAAA (com `/`, `.` ou `-` e hora opcional), datas com o nome do mês em inglês (*15 March 2024*, *Mar 15, 2024*) e números de data Unix. No .xlsx, a célula de data do Excel vale como está.

### 4. Prévia

A prévia não grava nada. Ela mostra o resumo (linhas na planilha, quantos serão importados, quantos com data original, quantos sem data, linhas puladas, linhas com avisos, imagens a baixar e o tamanho dos textos) e as **primeiras 10 linhas** como vão ficar: tipo, título, espaço, autor, data e avisos, com as puladas marcadas.

### 5. Confirmar

Clique em **Importar N posts** e confirme. A importação roda em segundo plano: pode fechar a janela.

### 6. Andamento

A tela mostra *"120 de 800 linhas"*. **Cancelar importação** para as linhas que faltam; os posts que já entraram continuam publicados.

### 7. Relatório e histórico

No fim, a tela mostra **Importados**, **Pulados**, **Com falha** e **Com avisos**, as **Linhas que não entraram** (com o motivo) e as que **Entraram com avisos**. **Baixar relatório** gera um CSV com a linha, o resultado, o título e o motivo. Quem importou também recebe o resumo por e-mail.

**Importações anteriores**, no alto da janela, lista as importações da comunidade, com o estado (**Não iniciada**, **Na fila**, **Importando**, **Concluída**, **Falhou**, **Cancelada** ou **Abandonada**) e **Ver** para abrir o relatório. Uma planilha analisada que não é importada em 24 horas fica como **Abandonada**.

## Por que uma linha foi pulada

| No relatório | O que quer dizer | O que fazer |
|---|---|---|
| **Sem título** | Post ou artigo sem título | Preencha o título ou importe a linha como post curto |
| **Sem conteúdo** | Post curto sem texto | Preencha o conteúdo |
| **Sem space válido** | A linha não traz um espaço que aceite esse tipo, e não há espaço padrão que sirva | Escolha um espaço padrão, ou corrija a coluna de space |
| **Data inválida** | A data não foi entendida, ou não existe (como 31/02) | Corrija a data ou troque a **Ordem das datas** |
| **Data no futuro** | A data é depois de agora: a importação não agenda posts | Corrija a data |
| **Conteúdo longo demais** | Post curto com mais de 500 caracteres | Importe como post ou artigo |
| **Repetida na planilha** | Mesmo tipo, título, data e começo do texto de uma linha anterior | Nada: a primeira entrou |
| **Já existe um post com esse título e data** | Um post ou artigo igual já está na comunidade, de uma importação anterior ou feito à mão | Nada: é o que evita duplicar |
| **E-mail do autor não é de ninguém da comunidade** | O e-mail não é de um membro, e a opção é **Pular a linha** | Convide a pessoa antes, ou escolha **Publicar em meu nome** |
| **Só dá para publicar em nome de quem tem papel abaixo do seu** | O e-mail é de alguém com papel igual ou acima do seu | Peça a um proprietário para importar, ou tire o e-mail da linha |
| **Erro ao gravar** (resultado **Falhou**) | Algo deu errado ao gravar aquela linha | Importe a planilha de novo: o que já entrou é pulado |

## O que cada aviso quer dizer

A linha com aviso **entrou**; o aviso diz o que mudou.

| Aviso | O que quer dizer |
|---|---|
| **Tipo não reconhecido** | O valor da coluna Tipo não é post, artigo nem curto; valeu o tipo das opções |
| **Título cortado** | O título passava de 300 caracteres e foi cortado |
| **Space não encontrado** | O espaço da linha não existe na comunidade; valeu o espaço padrão |
| **Space de outro tipo** | O espaço da linha não aceita esse tipo (por exemplo, post curto num espaço de Conteúdo); valeu o espaço padrão |
| **Sem data** | A célula de data estava vazia; o post entrou com a data da importação |
| **Autor não encontrado** | O e-mail não é de ninguém da comunidade; o post saiu em seu nome (opção **Publicar em meu nome**) |
| **Tags ignoradas** | Post curto não tem tags |
| **Imagem não baixada** | Uma imagem do texto não pôde ser baixada; ficou o link para o original |
| **Imagem não suportada** | O endereço da imagem não é um link da web que dê para baixar; ficou como link |
| **Imagens demais no post** | O texto tinha mais de 20 imagens; as seguintes ficaram como link |
| **Limite de imagens da importação** | A importação chegou a 300 imagens ou 500 MB; as seguintes ficaram como link |

## Perguntas frequentes

**Os membros vão receber uma enxurrada de avisos?**
Não. Nada da importação notifica membros nem conta pontos, qualquer que seja a data.

**Posso importar comentários e curtidas?**
Não. A importação traz posts, artigos e posts curtos. Para trazer pessoas, use [Importar membros por planilha](/membros/importar-membros).

**Importei e faltou gente como autor. Posso importar de novo?**
Sim. Convide as pessoas, importe a mesma planilha e as linhas que já entraram são puladas como *Já existe um post com esse título e data*. Os posts curtos não passam por essa conferência: numa segunda importação, deixe só as linhas que faltaram.

**E se eu errar a data de um post?**
Edite o post e mude a **Data de publicação**. Ver [Data de publicação](/espacos/conteudo#data-de-publicacao).

## Pelo assistente

O assistente faz a mesma importação em quatro passos: `analyze_content_import` (lê a planilha), `preview_content_import` (o resumo, sem gravar), `start_content_import` (importa depois de mostrar o resumo) e `get_content_import` (andamento e relatório). Ver [Ferramentas · Conteúdo](/mcp/ferramentas-conteudo#analyze-content-import).

## Na API

`POST /api/import/spreadsheet` (sobe o arquivo e devolve a análise), `POST /api/import/spreadsheet/{id}/preview` (o resumo e as 10 primeiras linhas), `POST /api/import/spreadsheet/{id}/start` (confirma e põe na fila), `GET /api/import/spreadsheet/{id}` (andamento e relatório), `GET /api/import/spreadsheet` (histórico) e `DELETE /api/import/{importId}` (cancela). Só proprietário e administrador, com o `X-CommunityId`. Ver [Import](/api/referencia/import).

## Relacionados

- [Conteúdo](/espacos/conteudo)
- [Feed](/espacos/feed)
- [Importar membros por planilha](/membros/importar-membros)
- [Logs](/membros/registros-de-atividades)
