# Referencia de bloques del editor de in-apps

Referencia para cada bloque que puedes añadir en el lienzo del [editor integrado](/es/product/content/in-apps/no-code-in-app-editor/create-rich-media-in-the-built-in-editor/).

Cada tipo de bloque tiene un propósito diferente en el mensaje:

*   **[Encabezado](#encabezado-y-texto):** títulos y titulares cortos
*   **[Texto](#encabezado-y-texto):** cuerpo del texto y descripciones más largas
*   **[Botón](#botón):** una llamada a la acción que se puede tocar
*   **[Imagen](#imagen):** imágenes de la [Galería de medios](/es/product/content/media-store/), subidas o desde una URL
*   **[Video](#video):** una miniatura de video que se puede tocar y que abre un video de YouTube o Vimeo
*   **[Tarjeta](#tarjeta):** una imagen con encabezado, texto y botón en un solo diseño
*   **[Divisor](#divisor):** una línea que separa secciones
*   **[Columnas](#columnas):** diseños de lado a lado (2, 3 o 4 columnas iguales, o divisiones de 33/67 y 67/33)
*   **[Temporizador](#temporizador-de-cuenta-regresiva):** una cuenta regresiva para ofertas y plazos
*   **[Menú](#menú):** una fila o columna de enlaces de navegación o contacto
*   **[Social](#social):** iconos que enlazan a tus perfiles sociales
*   **[HTML](#html):** HTML personalizado, como un formulario, una encuesta o un video incrustado
*   **[Productos](#productos):** una cuadrícula de tarjetas de productos de tu [Catálogo de Productos](/es/product/content/product-catalog/) o del carrito abandonado de un usuario

## Cómo configurar los bloques del editor

Arrastra un bloque al lienzo desde la pestaña **Bloques**, o haz clic en él para añadirlo al final. Selecciona el bloque para abrir su configuración en el panel derecho y configurar el contenido, los enlaces, el tamaño y el espaciado.

<Aside type="tip">
Cada bloque también tiene configuraciones de **Visibilidad** y **Condición de visualización**. Úsalas para ocultar un bloque en el teléfono o en el escritorio, o para mostrarlo solo a usuarios específicos. [Aprende más](/es/product/content/in-apps/no-code-in-app-editor/show-in-app-content-to-specific-users/)
</Aside>

### Encabezado y texto

Los bloques de **Encabezado** y **Texto** contienen el texto que los usuarios leen en el mensaje in-app. Edita el texto en el lienzo y formatéalo con la barra de herramientas.

Haz clic en un bloque de **Encabezado** o **Texto** para editar su contenido en el lienzo. Selecciona algo de texto para que aparezca la barra de herramientas de formato: negrita, cursiva, subrayado, alineación, un botón de enlace y un menú desplegable de **estilo de texto**.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-8.webp" alt="Bloque de encabezado seleccionado en el lienzo con la barra de herramientas de formato de texto mostrando opciones de estilo y formato"/>

Los Merge Tags son marcadores de posición que insertan un valor de [Tag](/es/product/audience-data-and-segmentation/user-data-tags/tags/) del perfil del usuario en el mensaje, para que cada suscriptor vea un texto personalizado. Para añadir uno, selecciona el texto, haz clic en **Merge Tags** en la barra de herramientas y elige un Tag de tu cuenta. [Aprende más sobre mensajes in-app personalizados](/es/product/how-to-guides/how-to-send-a-personalized-message/how-to-send-a-personalized-in-app-message/)

### Imagen

Un bloque de **Imagen** muestra una imagen en la plantilla in-app.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-40.webp" alt="Bloque de imagen en el lienzo con la configuración de Imagen mostrando Reemplazar imagen, URL de la imagen, Texto alternativo, Generar alt con IA, Prompt, Ancho, Alto, Radio de esquina y Alineación" width="600"/>

Selecciónalo en el lienzo para abrir la configuración de **Imagen** en el panel derecho.

*   **Añadir imagen** / **Reemplazar imagen:** haz clic en **Añadir imagen** cuando el bloque esté vacío, o en **Reemplazar imagen** cuando ya haya una imagen establecida. Puedes subir un archivo o elegir uno de tu [Galería de medios](/es/product/content/media-store/).
*   **URL de la imagen:** pega un enlace alojado a la imagen.
*   **Texto alternativo:** describe la imagen para la accesibilidad.
*   **Prompt:** el prompt de generación de IA para una imagen que creaste con **Generar con IA**.
*   **Ancho (px)** / **Alto (px):** fija la imagen a un tamaño en píxeles. Deja un campo vacío para que se dimensione automáticamente.
*   **Radio de esquina (px):** redondea las esquinas de la imagen.
*   **Alineación:** izquierda, centro o derecha.

En **Enlace**, establece un **Tipo de acción** (por ejemplo, **Abrir sitio web** o **URL o Deeplink**) y su **URL** para abrir algo cuando se toque la imagen, y un **Destino del enlace** para abrirlo en la misma pestaña o en una nueva.

En **Espaciado**, activa **Relleno** para añadir espacio alrededor de la imagen. Usa **Todos los lados** para el mismo relleno en cada lado, o activa **Más opciones** para establecer cada lado por separado.

### Video

Un bloque de **Video** añade un video de YouTube o Vimeo al mensaje como una miniatura que se puede tocar. El mensaje muestra una imagen fija con una superposición de ▶. Al tocarla, se abre el video en la aplicación de YouTube o Vimeo o en el navegador.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-38.webp" alt="Bloque de video en el lienzo con la configuración de Video mostrando URL del video, Texto alternativo, Reemplazar miniatura, URL de la miniatura y Superposición del botón de reproducción" width="600"/>

Selecciona el bloque en el lienzo para abrir su configuración:

*   **URL del video:** pega un enlace de YouTube o Vimeo. El editor obtiene una miniatura automáticamente.
*   **Texto alternativo:** describe el video para la accesibilidad.
*   **URL de la miniatura:** mantén la miniatura obtenida automáticamente, o haz clic en **Añadir miniatura** / **Reemplazar miniatura** para elegir una de la [Galería de medios](/es/product/content/media-store/), o pega un enlace alojado directamente.
*   **Superposición del botón de reproducción:** activado por defecto. Desactívalo para mostrar la miniatura simple sin la superposición de ▶.
*   **Ancho (px)**, **Radio de esquina (px)** y **Alineación:** controlan cómo se ve la miniatura y dónde se sitúa en el diseño.

### Tarjeta

Un bloque de **Tarjeta** combina una imagen con un encabezado, texto y botón en un único diseño predefinido, para que no tengas que colocar y alinear cuatro bloques separados a mano.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-37.webp" alt="Bloque de tarjeta en el lienzo con la configuración de Tarjeta mostrando Diseño, Reemplazar imagen, URL de la imagen, Texto alternativo, Prompt, Relleno y Radio de esquina" width="600"/>

*   **Diseño:** elige en qué lado se sitúa la imagen en relación con el contenido, o activa **Ajustar texto alrededor de la imagen**.
*   **Imagen:** añade o reemplaza la imagen, establece el texto alternativo, edita el **Prompt** de generación de IA, añade **Relleno** y establece el **Radio de esquina (px)**.
*   **Tamaño y ajuste:** establece el **Ancho**, **Alto**, **Recorte** (Original o una proporción fija) y **Ajuste** (Cubrir o un punto focal) de la imagen. Los campos exactos dependen del **Diseño** que hayas elegido.
*   **Enlace:** haz que toda la tarjeta abra una URL cuando se toque.

Edita el encabezado, el texto y el botón de la tarjeta de la misma manera que editas los bloques independientes de [Encabezado, Texto](#encabezado-y-texto) y [Botón](#botón).

### Botón

Un **Botón** es una llamada a la acción que se puede tocar en el mensaje in-app. Úsalo para abrir una URL, ejecutar JavaScript personalizado o cerrar el mensaje.

Haz clic en un bloque de **Botón** para editar su etiqueta en el lienzo. Usa la barra de herramientas para cambiar el tamaño de la fuente, el color del texto, negrita, cursiva, subrayado y alineación.

Para establecer qué sucede cuando el usuario toca el botón:

1.  Haz clic en el icono de enlace en la barra de herramientas para abrir **Insertar/Editar Enlace**.
2.  Elige un **Tipo de acción**: **Abrir sitio web**, **URL o Deeplink**, o **Javascript personalizado**.
3.  Rellena los campos para esa acción (ver más abajo).
4.  Haz clic en **Guardar**.

#### Abrir sitio web

**Abrir sitio web** abre una página web cuando el usuario toca el botón. Introduce la dirección en **URL**, por ejemplo `https://example.com`.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-10.webp" alt="Diálogo Insertar/Editar Enlace para un Botón con Tipo de acción Abrir sitio web y un campo de URL"/>

#### URL o Deeplink

**URL o Deeplink** abre un enlace o un deep link cuando el usuario toca el botón. Introduce la dirección en **URL**, por ejemplo, una pantalla de la aplicación: `myapp://screen`.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-45.webp" alt="Barra de herramientas de Botón con el diálogo Insertar/Editar Enlace abierto, Tipo de acción URL o Deeplink, y URL establecida en myapp://screen"/>

#### Ejecutar JavaScript personalizado

**Javascript personalizado** ejecuta código cuando el usuario toca el botón. Introduce el código en el campo **onClick**.

Úsalo cuando un toque deba hacer algo en Pushwoosh, no solo abrir un enlace. La persona en la aplicación sigue viendo un botón normal. No ve los tags ni los eventos. Tú decides qué sucede a continuación en la pantalla: dejar el mensaje abierto o cerrarlo en el mismo **onClick**.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-11.webp" alt="Diálogo Insertar/Editar Enlace para un Botón con Tipo de acción Javascript personalizado y onClick establecido en closeInApp"/>

**Métodos disponibles en onClick**

*   `pushwoosh.closeInApp()`: cierra el mensaje in-app. Omítelo para mantener el mensaje abierto después del toque.
*   `pushwoosh.sendTags({...})`: guarda valores como [tags de dispositivo](/es/product/audience-data-and-segmentation/user-data-tags/tags/) para campañas posteriores.
*   `pushwoosh.postEvent(...)`: envía un [evento personalizado](/es/product/audience-data-and-segmentation/events/custom-events/), por ejemplo, para iniciar un Customer Journey.
*   `pushwoosh.getTags(...)`: lee los tags actuales. Útil en HTML personalizado para cambiar lo que muestra el mensaje.
*   `pushwoosh.getCustomData()`: lee datos personalizados pasados desde el push que abrió este in-app.

##### Ejemplo: permitir que los usuarios elijan un interés y guardarlo para campañas posteriores

1.  Añade una pregunta en un bloque de **Texto** o **Encabezado**, por ejemplo: "¿Qué deporte te interesa?"
2.  Añade un **Botón** por opción, por ejemplo: **Yoga** y **Gimnasio**.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-12.webp" alt="Plantilla in-app con botones de Yoga y Gimnasio y Javascript personalizado onClick para el botón de Yoga"/>

3.  Establece el **Tipo de acción** en **Javascript personalizado** para cada botón.
4.  Para el botón de **Yoga**, pega esto en **onClick**:

```js
pushwoosh.sendTags({ interest: "yoga" });
pushwoosh.closeInApp();
```

5.  Para el botón de **Gimnasio**, pega esto en **onClick**:

```js
pushwoosh.sendTags({ interest: "gym" });
pushwoosh.closeInApp();
```

Cuando el usuario toca **Yoga**, Pushwoosh escribe el tag `interest` en su dispositivo y cierra el in-app. Luego puedes dirigirte a ese usuario en un [segmento](/es/product/audience-data-and-segmentation/segmentation/) o [Customer Journey](/es/product/customer-journey/journey-elements/#in-app).

<LinkCard title="Aprende más sobre cómo crear in-apps con JavaScript" href="/developer/guides/messaging-channels/inapp-with-javascript/" />

### Divisor

Un **Divisor** es una línea horizontal entre bloques de contenido. Úsalo para separar secciones visualmente en la plantilla.

Configura el **estilo de línea** (Sólido, Discontinuo, Punteado), el **color**, el **grosor** y el **ancho** en el panel de configuración.

### HTML

El bloque **HTML** te permite pegar HTML personalizado en una plantilla in-app. Úsalo para un formulario personalizado, una encuesta o un video incrustado cuando no haya un bloque de Formulario dedicado para mensajes in-app.

##### Ejemplos

Los siguientes ejemplos muestran formas comunes de usar el bloque HTML en una plantilla in-app: un formulario de clientes potenciales, una encuesta y un video incrustado.

<Aside type="note">
Los ejemplos de formulario y encuesta guardan tags de dispositivo y envían eventos a través de Pushwoosh. Crea los eventos personalizados en tu cuenta antes de usarlos en campañas.
</Aside>

<Tabs>
<TabItem label="Formulario de clientes potenciales">

Este formulario de clientes potenciales escribe el nombre y el correo electrónico como tags, envía un evento `promo_requested`, muestra un mensaje de agradecimiento y luego cierra el in-app.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-13.webp" alt="Formulario de clientes potenciales HTML en el editor de in-apps con campos de nombre y correo electrónico y un botón Envíenme el código" width="360"/>

<details>
<summary>Código HTML</summary>

```html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
  body { margin: 0; padding: 20px; font-family: Arial, sans-serif; }
  h2 { font-size: 18px; margin-bottom: 8px; color: #222; }
  p { font-size: 14px; color: #666; margin-bottom: 20px; }
  input {
    width: 100%;
    padding: 12px;
    margin-bottom: 12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    font-size: 15px;
    box-sizing: border-box;
  }
  button {
    width: 100%;
    padding: 14px;
    background: #FF6B35;
    color: white;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
  }
  .thanks { display: none; text-align: center; padding: 40px 0; font-size: 18px; color: #333; }
</style>
</head>
<body>

<h2>Obtén tu 20% de descuento</h2>
<p>Deja tu nombre y correo electrónico. Te enviaremos el código promocional de inmediato.</p>

<div id="form">
  <input type="text" id="name" placeholder="Tu nombre" />
  <input type="email" id="email" placeholder="Tu correo electrónico" />
  <button onclick="submit()">Envíenme el código</button>
</div>

<div class="thanks" id="thanks">
  🎉 ¡Listo! Revisa tu bandeja de entrada para ver el código promocional.
</div>

<script>
function submit() {
  const name = document.getElementById('name').value.trim();
  const email = document.getElementById('email').value.trim();
  if (!name || !email) return;

  pushwoosh.sendTags({ name: name, email: email });
  pushwoosh.postEvent("promo_requested", { email: email });

  document.getElementById('form').style.display = 'none';
  document.getElementById('thanks').style.display = 'block';
  setTimeout(() => pushwoosh.closeInApp(), 3000);
}
</script>

</body>
</html>
```

</details>

</TabItem>
<TabItem label="Encuesta">

Esta encuesta guarda la hora de entrenamiento seleccionada como un tag, envía un evento `schedule_survey_completed`, muestra un mensaje de agradecimiento y luego cierra el in-app.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-14.webp" alt="Encuesta HTML en el editor de in-apps preguntando cuándo prefiere el usuario entrenar con cuatro opciones de tiempo" width="360"/>

<details>
<summary>Código HTML</summary>

```html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
  body { margin: 0; padding: 20px; font-family: Arial, sans-serif; text-align: center; }
  h2 { font-size: 18px; margin-bottom: 6px; color: #222; }
  p { font-size: 13px; color: #888; margin-bottom: 20px; }
  .option {
    display: block;
    width: 100%;
    padding: 14px;
    margin-bottom: 10px;
    background: #f5f5f5;
    border: 2px solid transparent;
    border-radius: 10px;
    font-size: 15px;
    cursor: pointer;
    box-sizing: border-box;
  }
  .option:hover { border-color: #FF6B35; background: #fff5f0; }
  .thanks { display: none; font-size: 17px; padding: 40px 0; color: #333; }
</style>
</head>
<body>

<h2>¿Cuándo prefieres entrenar?</h2>
<p>Ayúdanos a programar las mejores clases para ti</p>

<button class="option" onclick="pick('morning')">☀️ Mañana (6:00–10:00)</button>
<button class="option" onclick="pick('afternoon')">🌤️ Tarde (12:00–15:00)</button>
<button class="option" onclick="pick('evening')">🌙 Noche (18:00–21:00)</button>
<button class="option" onclick="pick('weekend')">📅 Solo fines de semana</button>

<div class="thanks" id="thanks">¡Entendido! Te enviaremos el mejor horario 💪</div>

<script>
function pick(time) {
  pushwoosh.sendTags({ preferred_time: time });
  pushwoosh.postEvent("schedule_survey_completed", { time: time });
  document.querySelector('h2').style.display = 'none';
  document.querySelector('p').style.display = 'none';
  document.querySelectorAll('.option').forEach(el => el.style.display = 'none');
  document.getElementById('thanks').style.display = 'block';
  setTimeout(() => pushwoosh.closeInApp(), 2000);
}
</script>

</body>
</html>
```

</details>

</TabItem>
<TabItem label="Video">

Este ejemplo incrusta un video de YouTube en el mensaje in-app.

<details>
<summary>Código HTML</summary>

```html
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ejemplo de Video In-App</title>
<style>
  body {
    font-family: Arial, sans-serif;
    margin: 0;
    padding: 20px;
    text-align: center;
  }
  .video-container {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
  }
  .video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
</style>
</head>
<body>

<h1>Ejemplo de Video In-App</h1>

<div class="video-container">
       <iframe src="https://www.youtube.com/embed/TN1uyD2mONs?autoplay=1&mute=1" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

</body>
</html>
```

</details>

</TabItem>
</Tabs>

### Menú

El bloque **Menú** coloca varios elementos clicables en una fila o columna. Úsalo para una barra de navegación o una lista de contactos de la empresa.

Para cada elemento del menú, establece:

*   **Etiqueta:** el texto que ven los usuarios
*   **URL:** a dónde se abre el elemento
*   **Destino:** misma pestaña o una nueva pestaña

En la configuración del bloque, también puedes establecer:

*   **Dirección:** Horizontal o Vertical
*   **Alineación:** Izquierda, Centro o Derecha
*   **Separador:** un divisor opcional entre elementos
*   Fuente, tamaño, peso, espaciado entre letras y colores de enlace/texto

### Social

El bloque **Social** muestra una fila de iconos de redes sociales que enlazan a tus perfiles. Úsalo para enviar a los usuarios a Facebook, Instagram, X y otras plataformas desde el mensaje in-app.

Añade entradas de plataforma, luego establece la alineación, el tamaño del icono y el espacio entre iconos.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-15.webp" alt="Configuración del bloque Social con enlaces de TikTok, Instagram y Facebook, además de Alineación, Tamaño del icono y Espacio" width="320"/>

### Temporizador de cuenta regresiva

El bloque **Temporizador** es una cuenta regresiva en el mensaje in-app. Úsalo para ofertas por tiempo limitado, ventas flash y recordatorios de eventos.

Para configurarlo:

1.  En **Cuenta regresiva**, establece la **Fecha de finalización** y la **Hora de finalización**, luego elige la **Zona horaria** y el **Idioma** para las etiquetas del temporizador.
2.  Activa **Etiquetas** para mostrar los subtítulos "días / horas / minutos / segundos" debajo de los dígitos, o desactívalo para solo números.
3.  En **Apariencia**, establece el **Fondo**, el **Color de los dígitos**, el **Color de las etiquetas** y el tamaño de la fuente para los dígitos (predeterminado 40px) y las etiquetas (predeterminado 16px).
4.  Ajusta el **Espaciado** (relleno) según sea necesario.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-16.webp" alt="Configuración del bloque Temporizador con fecha y hora de finalización de la cuenta regresiva, Etiquetas, Apariencia y opciones de Espaciado"/>

### Columnas

Las **Columnas** dividen el lienzo en secciones una al lado de la otra para que puedas colocar contenido uno junto al otro en una sola fila.

Arrastra uno de estos bloques al lienzo:

*   **2 columnas:** dos columnas iguales
*   **3 columnas:** tres columnas iguales
*   **4 columnas:** cuatro columnas iguales
*   **33 / 67:** columna izquierda de aproximadamente 33% de ancho, derecha de aproximadamente 67%
*   **67 / 33:** columna izquierda de aproximadamente 67% de ancho, derecha de aproximadamente 33%

Luego añade contenido a cada columna. Para cambiar el espaciado de todas las columnas en la plantilla, abre **Configuración** → **Valores predeterminados de las columnas** y ajusta el relleno exterior, el relleno de la columna y el espacio entre columnas.

### Productos

Un bloque de **Productos** muestra una cuadrícula de tarjetas de productos desde una plantilla compartida. Cada tarjeta puede incluir una imagen, título, descripción, precio y un botón de compra. La plantilla se repite para cada producto.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-47.webp" alt="Bloque de Productos con dos tarjetas de productos mostrando imagen, título, descripción, precio y botón Comprar ahora"/>

En el panel de configuración, en **Fuente**, elige de dónde provienen los productos:

*   **Manual:** introduce los productos a mano, o haz clic en **Elegir del catálogo…** para seleccionar artículos específicos de tu [Catálogo de Productos](/es/product/content/product-catalog/) por ID. Puedes mezclar ambos en el mismo bloque.
*   **Regla de catálogo:** extrae productos automáticamente por categoría y orden de clasificación, resueltos de nuevo desde el catálogo cuando se muestra el mensaje.
*   **Carrito:** muestra los artículos del carrito abandonado actual de cada usuario. [Cómo configurar una campaña de carrito abandonado](/es/product/how-to-guides/lifecycle-marketing-campaigns/how-to-set-up-an-abandoned-cart-campaign/)

<Aside type="note">
**Regla de catálogo** y **Carrito** requieren **Content Templates** en tu plan, y un [token de acceso a la API](/es/developer/api-reference/api-access-token/) (**Configuración → Acceso a la API**). Si el selector de **Fuente** no cambia a uno de ellos, o el bloque no renderiza productos, contacta con Soporte o tu gestor de cuenta, o crea un token y vuelve a seleccionar la fuente.
</Aside>

Una vez que hayas elegido una fuente, estas configuraciones controlan cómo se ven la cuadrícula y sus tarjetas:

*   **Número de productos** (o **Máximo de productos mostrados** para **Carrito**): cuántas tarjetas mostrar.
*   **Columnas:** 1, 2 o 3 tarjetas por fila.
*   **Espacio:** el espacio entre tarjetas.
*   **Límite de descripción:** el límite de caracteres al que se recorta el texto de la descripción, para que las tarjetas mantengan un tamaño consistente.
*   **Plantilla de tarjeta:** elige un diseño, luego establece el **Fondo de la tarjeta**, el **Radio de esquina de la tarjeta** y el **Relleno del contenido** para cada tarjeta.

## Guardar y reutilizar bloques

Guarda un bloque para reutilizarlo en esta u otras plantillas in-app en lugar de reconstruirlo cada vez.

1.  Selecciona el bloque en el lienzo.
2.  Haz clic en el icono de marcador (**Guardar bloque para reutilizar**) en la barra de herramientas del bloque y dale un nombre.

<img src="/rich-media-create-rich-media-in-the-built-in-editor-42.webp" alt="Barra de herramientas del bloque de Tarjeta con los iconos Mover arriba, Mover abajo, Duplicar, Eliminar, Guardar bloque para reutilizar y Preguntar a la IA"/>

Los bloques guardados aparecen en **Bloques guardados** en la parte inferior de la pestaña **Bloques**.

*   Arrastra un bloque guardado al lienzo, o haz clic en él para añadirlo al final de la plantilla.
*   Haz clic en la **×** en la miniatura de un bloque guardado para eliminarlo.

### Mantener las copias sincronizadas

Cuando guardes un bloque, activa **Mantener las copias sincronizadas** para vincular cada copia insertada a la misma fuente. Edita la fuente una vez, y el cambio se aplica en todos los lugares donde se use ese bloque.

Una copia sincronizada está bloqueada en el lienzo. No puedes editarla directamente. Selecciona la copia para abrir su configuración:

*   **Editar bloque sincronizado:** desbloquea esta copia para que puedas cambiarla. Aparece un banner en la parte superior. Haz clic en **Aplicar a todos** para guardar tus cambios en la fuente y en todas las demás copias, o en **Cancelar** para descartarlos. Solo puedes desbloquear un bloque sincronizado a la vez.
*   **Actualizar desde la fuente:** reemplaza esta copia con la última versión de la fuente.
*   **Desvincular de la fuente:** desvincula esta copia de la fuente para que puedas editarla por tu cuenta.

<Aside type="note">
Cada vez que abres una plantilla in-app, Pushwoosh comprueba sus copias sincronizadas y actualiza las que están desactualizadas. Un aviso muestra cuántas se actualizaron. Si la fuente tiene contenido más nuevo, la configuración de la copia muestra una advertencia hasta que vuelvas a abrir la plantilla o hagas clic en **Actualizar desde la fuente**. Si la fuente fue eliminada, la copia conserva su último contenido y solo puedes **Desvincular de la fuente**.
</Aside>