# Importar contenido desde una planilla

> Cómo traer publicaciones, artículos y publicaciones cortas de una planilla .xlsx o .csv con la fecha y el autor originales (archivo, columnas, opciones, vista previa, progreso e informe), qué hace que se omita una fila, cada aviso y los límites.

El botón **Importar contenido** trae a la comunidad el historial que estaba en otro sitio (WordPress, Substack, Circle, un grupo antiguo, una planilla): cada fila de la planilla se convierte en una publicación, un artículo o una publicación corta, con la **fecha original** y, cuando es posible, el **autor original**. Tú indicas a dónde va cada columna, revisas una vista previa y solo entonces importas. No se notifica a nadie.

## Para qué sirve

| Comunidad | Planilla |
|---|---|
| Migrando desde un blog o una newsletter | La exportación de los artículos, con título, texto en HTML, fecha y e-mail del autor |
| Foro o grupo antiguo | Las conversaciones, cada una con el e-mail de quien la abrió, hacia un espacio de Feed |
| Asociación | El archivo de comunicados de los últimos años, todos en un espacio de Contenido |
| Curso | Los avisos de la clase como publicaciones cortas, en el orden en que salieron |

## Cómo funciona

### Dónde está y quién puede

El botón **Importar contenido** está en la cabecera de los espacios de **Contenido** y de **Feed**. Solo el **propietario** y el **administrador** ven el botón; para los demás roles no aparece, y la API lo rechaza.

Si Memberfy ha suspendido la entrada a la comunidad, la importación no empieza. Consulta [Suspensión de entrada y ventas](/membros/politica-de-convites#suspension-de-entrada-y-ventas).

### Los tres tipos

| Tipo | Cómo entra | Dónde puede entrar |
|---|---|---|
| **Publicación** | Título y texto | Espacio de Contenido o de Feed |
| **Artículo** | Título y texto | Espacio de Contenido o de Feed |
| **Publicación corta** | Solo texto, hasta 500 caracteres, sin título y sin etiquetas | Solo espacio de Feed |

El tipo vale para todas las filas (opción **Tipo**) o viene de una columna de la planilla, con valores como *post*, *artículo* o *corto* (también *status*, *blog*, *newsletter*, en portugués, inglés, español, italiano o alemán).

### Lo que respeta la importación

- **La fecha original se mantiene.** La publicación entra con la fecha de la planilla como [fecha de publicación](/espacos/conteudo#fecha-de-publicacion), en el lugar de esa fecha en el Feed y en la lista del espacio, y no arriba del todo.
- **En silencio.** No se notifica nada: ningún miembro recibe aviso ni e-mail, las publicaciones quedan fuera de los e-mails de novedades y de los destacados, y nadie gana puntos en el [Ranking](/espacos/ranking). Solo quien importó recibe, al final, un e-mail con el resumen.
- **El autor se encuentra por el e-mail.** La columna de e-mail del autor vincula cada fila a una persona de la comunidad. Tiene que ser miembro y tener un **rol inferior al tuyo** (el propietario importa a nombre de administradores, moderadores, financieros y miembros; el administrador, a nombre de moderadores, financieros y miembros). Si no, la fila se omite y el informe dice por qué. Tu propio e-mail siempre vale. Quien importó queda registrado en los [Logs](/membros/registros-de-atividades) en cada publicación hecha a nombre de otra persona.
- **Una fecha futura o inválida no entra.** La fila se omite. Una **fecha vacía** pasa a ser la fecha de la importación, y la fila entra con un aviso.
- **Nada entra dos veces.** Una publicación o un artículo con el mismo título y la misma fecha que otro que ya está en la comunidad se omite; volver a importar la misma planilla no duplica nada. Las filas repetidas dentro de la propia planilla también entran una sola vez.
- **Las imágenes vienen incluidas.** Las imágenes dentro del texto se descargan y se alojan en Memberfy, con los mismos límites que una imagen subida desde la app; los enlaces del texto se quedan como están. La imagen que no se puede descargar queda como enlace al original, y el informe lo avisa.
- **Los enlaces se convierten en reproductor o tarjeta.** Los enlaces del texto de cada publicación importada se convierten en [reproductor o tarjeta](/espacos/conteudo#los-enlaces-se-convierten-en-reproductor-o-tarjeta), hasta 5 por publicación, en segundo plano, después de que entra la publicación.

### Límites

| Qué | Límite |
|---|---|
| Archivo | **.xlsx** o **.csv**, hasta **5 MB** |
| Filas | Hasta **5.000** filas de datos (y 100 columnas) |
| Imágenes por fila | **20**; las siguientes quedan como enlace |
| Imágenes por importación | **300** o **500 MB**, lo que llegue primero; las siguientes quedan como enlace |
| Importaciones a la vez | **Una** por comunidad; la siguiente empieza cuando termina la anterior |

Una planilla cuyos textos suman más de 25 MB se rechaza antes de empezar: divídela en partes más pequeñas.

## Paso a paso

### 1. Archivo

1. En el espacio de Contenido o de Feed, haz clic en **Importar contenido**.
2. Arrastra la planilla o haz clic para elegirla (**.xlsx o .csv · hasta 5 MB y 5.000 filas**).
3. Revisa la lectura:
   - **Hoja**: en el .xlsx, qué hoja leer.
   - **Fila de encabezado**: Memberfy la encuentra sola; para cambiarla, haz clic en otra fila de la tabla.
   - **Separador** (coma, punto y coma, tabulación o barra vertical) y **Codificación**: en el .csv, se detectan solos; se pueden cambiar.

### 2. Columnas

Cada columna aparece con sus 3 primeras filas y un destino sugerido en **Va a**. Ajusta lo que necesites; lo que quede en **Ignorar** no se importa. Cada destino acepta una sola columna.

| Destino | Qué va en él |
|---|---|
| **Título** | Obligatorio en publicaciones y artículos. Los títulos de más de 300 caracteres se recortan |
| **Contenido** | Texto, Markdown o HTML. Obligatorio para continuar |
| **E-mail del autor** | La publicación queda a nombre de la persona de la comunidad con ese e-mail. Sin esta columna, todo sale a tu nombre |
| **Fecha de publicación** | La fecha original. Una fecha sin zona horaria usa la de la comunidad |
| **Space** | El id, la dirección o el nombre de un espacio de Contenido o de Feed (no importan las mayúsculas ni los acentos) |
| **Tipo** | post, artículo o corto |
| **Etiquetas** | Varias, separadas por coma, punto y coma o barra vertical (hasta 20 por publicación) |

### 3. Opciones

- **Space** (o **Space por defecto**, cuando hay columna de space): dónde entran las publicaciones, o el espacio que se usa cuando la fila no trae uno válido. **Ninguno (omitir la fila)** omite las filas sin space válido.
- **Tipo** (o **Tipo por defecto**): Publicación, Artículo o Publicación corta. La publicación corta solo entra en un espacio de Feed.
- **Quién la ve**: **Solo miembros** o **Pública**.
- **Orden de las fechas**, que aparece cuando la planilla tiene fechas como 03/04/2024: **Día/mes/año** o **Mes/día/año**. La pantalla muestra un ejemplo de la planilla (*"03/04/2024 se leerá como 3 de abril de 2024."*) y, cuando la planilla tiene una fecha que solo encaja en un orden (como 25/12/2023), elige ese y lo avisa.
- **Zona horaria**: las fechas sin zona horaria se leen en la de la comunidad, que la pantalla muestra.
- **Autor con e-mail desconocido**, para cuando el e-mail de la planilla no es de nadie de la comunidad: **Omitir la fila** o **Publicar a mi nombre** (la fila entra con un aviso).

Las fechas aceptadas: AAAA-MM-DD (con o sin hora y zona horaria), DD/MM/AAAA o MM/DD/AAAA (con `/`, `.` o `-` y hora opcional), fechas con el nombre del mes en inglés (*15 March 2024*, *Mar 15, 2024*) y números de fecha Unix. En el .xlsx, la celda de fecha de Excel vale tal cual.

### 4. Vista previa

La vista previa no guarda nada. Muestra el resumen (filas en la planilla, cuántas se importarán, cuántas con fecha original, cuántas sin fecha, filas omitidas, filas con avisos, imágenes a descargar y el tamaño de los textos) y las **primeras 10 filas** tal como quedarán: tipo, título, espacio, autor, fecha y avisos, con las omitidas marcadas.

### 5. Confirmar

Haz clic en **Importar N publicaciones** y confirma. La importación se ejecuta en segundo plano: puedes cerrar la ventana.

### 6. Progreso

La pantalla muestra *"120 de 800 filas"*. **Cancelar importación** detiene las filas que faltan; las publicaciones que ya entraron siguen publicadas.

### 7. Informe e historial

Al final, la pantalla muestra **Importadas**, **Omitidas**, **Con error** y **Con avisos**, las **Filas que no entraron** (con el motivo) y las que **Entraron con avisos**. **Descargar informe** genera un CSV con la fila, el resultado, el título y el motivo. Quien importó recibe también el resumen por e-mail.

**Importaciones anteriores**, en la parte superior de la ventana, muestra las importaciones de la comunidad, con su estado (**Sin iniciar**, **En cola**, **Importando**, **Completada**, **Falló**, **Cancelada** o **Abandonada**) y **Ver** para abrir el informe. Una planilla analizada que no se importa en 24 horas queda como **Abandonada**.

## Por qué se omitió una fila

| En el informe | Qué significa | Qué hacer |
|---|---|---|
| **Sin título** | Publicación o artículo sin título | Rellena el título o importa la fila como publicación corta |
| **Sin contenido** | Publicación corta sin texto | Rellena el contenido |
| **Sin space válido** | La fila no trae un espacio que acepte ese tipo, y no hay un espacio por defecto que sirva | Elige un espacio por defecto, o corrige la columna de space |
| **Fecha inválida** | No se entendió la fecha, o no existe (como 31/02) | Corrige la fecha o cambia el **Orden de las fechas** |
| **Fecha en el futuro** | La fecha es posterior a ahora: la importación no programa publicaciones | Corrige la fecha |
| **Contenido demasiado largo** | Publicación corta de más de 500 caracteres | Impórtala como publicación o artículo |
| **Repetida en la hoja** | Mismo tipo, título, fecha y comienzo del texto que una fila anterior | Nada: la primera entró |
| **Ya existe una publicación con ese título y fecha** | Una publicación o un artículo igual ya está en la comunidad, de una importación anterior o hecho a mano | Nada: es lo que evita duplicar |
| **El e-mail del autor no es de nadie de la comunidad** | El e-mail no es de un miembro, y la opción es **Omitir la fila** | Invita antes a la persona, o elige **Publicar a mi nombre** |
| **Solo se puede publicar a nombre de alguien con un rol inferior al tuyo** | El e-mail es de alguien con un rol igual o superior al tuyo | Pide a un propietario que importe, o quita el e-mail de la fila |
| **Error al guardar** (resultado **Falló**) | Algo falló al guardar esa fila | Vuelve a importar la planilla: lo que ya entró se omite |

## Qué significa cada aviso

La fila con aviso **entró**; el aviso dice qué cambió.

| Aviso | Qué significa |
|---|---|
| **Tipo no reconocido** | El valor de la columna Tipo no es post, artículo ni corto; se usó el tipo de las opciones |
| **Título recortado** | El título superaba los 300 caracteres y se recortó |
| **Space no encontrado** | El espacio de la fila no existe en la comunidad; se usó el espacio por defecto |
| **Space de otro tipo** | El espacio de la fila no acepta ese tipo (por ejemplo, una publicación corta en un espacio de Contenido); se usó el espacio por defecto |
| **Sin fecha** | La celda de fecha estaba vacía; la publicación entró con la fecha de la importación |
| **Autor no encontrado** | El e-mail no es de nadie de la comunidad; la publicación salió a tu nombre (opción **Publicar a mi nombre**) |
| **Etiquetas ignoradas** | La publicación corta no tiene etiquetas |
| **Imagen no descargada** | No se pudo descargar una imagen del texto; quedó el enlace al original |
| **Imagen no compatible** | La dirección de la imagen no es un enlace web que se pueda descargar; quedó como enlace |
| **Demasiadas imágenes en la publicación** | El texto tenía más de 20 imágenes; las siguientes quedaron como enlace |
| **Límite de imágenes de la importación** | La importación llegó a 300 imágenes o 500 MB; las siguientes quedaron como enlace |

## Preguntas frecuentes

**¿Los miembros van a recibir una avalancha de avisos?**
No. Nada de la importación notifica a los miembros ni suma puntos, sea cual sea la fecha.

**¿Puedo importar comentarios y reacciones?**
No. La importación trae publicaciones, artículos y publicaciones cortas. Para traer personas, usa [Importar miembros desde una planilla](/membros/importar-membros).

**Importé y faltaban personas como autoras. ¿Puedo volver a importar?**
Sí. Invita a las personas, importa la misma planilla y las filas que ya entraron se omiten como *Ya existe una publicación con ese título y fecha*. Las publicaciones cortas no pasan por esa comprobación: en una segunda importación, deja solo las filas que faltaron.

**¿Y si me equivoco con la fecha de una publicación?**
Edita la publicación y cambia la **Fecha de publicación**. Consulta [Fecha de publicación](/espacos/conteudo#fecha-de-publicacion).

## Con el asistente

El asistente hace la misma importación en cuatro pasos: `analyze_content_import` (lee la planilla), `preview_content_import` (el resumen, sin guardar), `start_content_import` (importa después de mostrar el resumen) y `get_content_import` (progreso e informe). Consulta [Herramientas · Contenido](/mcp/ferramentas-conteudo#analyze-content-import).

## En la API

`POST /api/import/spreadsheet` (sube el archivo y devuelve el análisis), `POST /api/import/spreadsheet/{id}/preview` (el resumen y las 10 primeras filas), `POST /api/import/spreadsheet/{id}/start` (confirma y pone en cola), `GET /api/import/spreadsheet/{id}` (progreso e informe), `GET /api/import/spreadsheet` (historial) y `DELETE /api/import/{importId}` (cancela). Solo propietario y administrador, con el `X-CommunityId`. Consulta [Import](/api/referencia/import).

## Relacionados

- [Contenido](/espacos/conteudo)
- [Feed](/espacos/feed)
- [Importar miembros desde una planilla](/membros/importar-membros)
- [Logs](/membros/registros-de-atividades)
