Esta función sincroniza los avatares subidos en la carpeta "avatares" (ID: 298755272940) con los autores e ilustradores en HubSpot. El match se realiza por nombre: el nombre del archivo debe coincidir con el nombre del autor/ilustrador.
Importante: Asegúrate de que los nombres de archivo coincidan exactamente con los nombres de los autores/ilustradores (sin tener en cuenta mayúsculas, espacios, guiones o guiones bajos).
Ejemplo: Si el autor se llama "Gabriel García Márquez", el archivo debe llamarse "gabriel garcia marquez.jpg" o "gabriel_garcia_marquez.png"
Esta función sincroniza los archivos PDF subidos en la carpeta "pdf" (ID: 298837002442) con los Books en HubSpot. El match se realiza por unique_book_id: el nombre del archivo debe coincidir con el unique_book_id del libro.
Importante: Asegúrate de que los nombres de archivo coincidan exactamente con el unique_book_id de los libros (sin tener en cuenta mayúsculas, espacios, guiones o guiones bajos).
Ejemplo: Si el unique_book_id es "begiko_a-zer-azeria", el archivo debe llamarse "begiko_a-zer-azeria.pdf" o "begiko-a-zer-azeria.pdf"
Esta función sincroniza los archivos Reading Guides PDFs subidos en la carpeta "guides" (ID: 302578087113) con los Books en HubSpot. El match se realiza por unique_book_id: el nombre del archivo debe coincidir con el unique_book_id del libro.
Importante: Asegúrate de que los nombres de archivo coincidan exactamente con el unique_book_id de los libros (sin tener en cuenta mayúsculas, espacios, guiones o guiones bajos).
Ejemplo: Si el unique_book_id es "loqueleo_por-que-tiene-que-ser-todo-tan-dificil", el archivo debe llamarse "loqueleo_por-que-tiene-que-ser-todo-tan-dificil.pdf" o "loqueleo-por-que-tiene-que-ser-todo-tan-dificil.pdf"
Esta función sincroniza las imágenes de portada de la carpeta "Magazines > Img" (ID: 301947538661) con los Magazines en HubSpot. El match se realiza por unique_magazine_id: el nombre del archivo debe coincidir con el unique_magazine_id del magazine.
Importante: Asegúrate de que los nombres de archivo coincidan exactamente con el unique_magazine_id de los magazines (sin tener en cuenta mayúsculas, espacios, guiones o guiones bajos).
Ejemplo: Si el unique_magazine_id es "loqueleo-profesores-42-gl", el archivo debe llamarse "loqueleo-profesores-42-gl.jpg" (o con guiones bajos: "loqueleo_profesores_42_gl.jpg").
Esta función sincroniza los archivos PDF de la carpeta "Magazines > pdf" (ID: 301945869554) con los Magazines en HubSpot. El match se realiza por unique_magazine_id: el nombre del archivo debe coincidir con el unique_magazine_id del magazine.
Importante: Asegúrate de que los nombres de archivo coincidan exactamente con el unique_magazine_id de los magazines (sin tener en cuenta mayúsculas, espacios, guiones o guiones bajos).
Ejemplo: Si el unique_magazine_id es "loqueleo-profesores-24-gl", el archivo debe llamarse "loqueleo-profesores-24-gl.pdf" (o con guiones bajos: "loqueleo_profesores_24_gl.pdf").
Esta función sincroniza las imágenes de Reading Guides subidas en la carpeta "guide images" (ID: 302611606748) con los Books en HubSpot. El match se realiza por unique_book_id: el nombre del archivo debe coincidir con el unique_book_id del libro.
Importante: Asegúrate de que los nombres de archivo coincidan exactamente con el unique_book_id de los libros (sin tener en cuenta mayúsculas, espacios, guiones o guiones bajos).
Ejemplo: Si el unique_book_id es "loqueleo_rimas-y-leyendas", el archivo debe llamarse "loqueleo_rimas-y-leyendas.jpg" o "loqueleo-rimas-y-leyendas.jpg"
Esta función analiza todas las News en HubSpot y genera un reporte detallado de cuáles NO tienen imágenes asignadas (featured_image o listing_image).
Usa esta función ANTES de sincronizar para identificar qué imágenes necesitas subir a HubSpot.
El reporte te mostrará:
Esta función sincroniza las imágenes destacadas subidas en la carpeta "imagenes" (ID: 300967234764) con las noticias en HubSpot. El match se realiza por unique_news_id: el nombre del archivo debe coincidir con el unique_news_id de la noticia.
Importante: Asegúrate de que los nombres de archivo coincidan exactamente con el unique_news_id de las noticias (sin tener en cuenta mayúsculas, pero manteniendo guiones bajos y números).
Ejemplo: Si el unique_news_id es "loqueleo_208_gl", el archivo debe llamarse "loqueleo_208_gl.jpg" o "loqueleo_208_gl.png"
Esta función crea un registro del objeto "Book Image" por cada imagen en la carpeta "imagenes" (ID: 298771564739). El campo "title" se llena con el nombre del archivo (sin extensión).
Importante: La función verifica si ya existe un registro para cada imagen y solo crea los registros faltantes.
Ejemplo: Si la imagen se llama "alice-in-wonderland.jpg", se creará un registro con title: "alice-in-wonderland"
Esta función asocia automáticamente los registros de "Book Image" con sus "Books" correspondientes. El matching se realiza por nombre: el título del Book Image (sin sufijos numéricos) debe coincidir con el slug del Book.
Importante: La función maneja automáticamente imágenes múltiples por libro.
Ejemplo: "alicia-en-el-pais-de-las-maravillas-2" se asocia con el book de slug "alicia-en-el-pais-de-las-maravillas"
Esta función identifica y elimina registros duplicados del objeto "Book Image" que tienen la misma imagen asignada. Por cada imagen duplicada, se mantiene el registro más antiguo y se eliminan los demás.
⚠️ Advertencia: Esta acción es irreversible. Los registros duplicados se eliminarán permanentemente.
Criterio: Se mantiene el registro más antiguo (creado primero) y se eliminan los más recientes.
Esta función CORRIGE las asociaciones entre Books y Authors/Illustrators usando el CSV corregido (File ID: 299301668031). ELIMINA asociaciones incorrectas (ej: Jules Verne como ilustrador) y AGREGA las faltantes.
⚠️ Importante: Esta función hace cambios permanentes en HubSpot.
Modo DRY RUN: Primero ejecuta en modo DRY RUN para ver qué cambiará (sin hacer cambios reales).
Modo LIVE: Después ejecuta en modo LIVE para aplicar los cambios.
Esta función asocia Books con Authors usando un archivo CSV corregido (File ID: 299301668031). El matching se realiza por slugs exactos: libro_slug → persona_slug.
Importante: El CSV debe tener las columnas: libro_slug, persona_slug, tipo_relacion, orden.
Ejemplo: "alicia-en-el-pais-de-las-maravillas" se asocia con persona_slug "lewis-carroll"
tipo_relacion puede ser: autor, ilustrador, traductor, etc.
Esta función asocia News con Books usando el archivo CSV de relaciones (File ID: 300030683355). El matching se realiza por unique_news_id y unique_book_id.
Importante: El CSV contiene 1,107 relaciones News-Books.
Formato: unique_news_id (ej: loqueleo_1_es) → unique_book_id (ej: loqueleo_alicia-en-el-pais)
Esta función asocia News con Authors/Illustrators usando el archivo CSV de relaciones (File ID: 300031526113). El matching se realiza por unique_news_id y unique_author_id.
Importante: El CSV contiene 82 relaciones News-Authors.
Formato: unique_news_id (ej: loqueleo_1_es) → unique_author_id (ej: loqueleo_roald-dahl)
Esta función sincroniza los archivos PDF de la carpeta de Resources (ID: 324011322609) con los Resources en HubSpot. El match se realiza por unique_id: el nombre del archivo debe coincidir con el unique_id del resource.
Importante: Asegúrate de que los nombres de archivo coincidan exactamente con el unique_id de los resources (sin tener en cuenta mayúsculas, espacios, guiones o guiones bajos).
Ejemplo: Si el unique_id es "guia-docente-aventuras", el archivo debe llamarse "guia-docente-aventuras.pdf" o "guia_docente_aventuras.pdf"
Esta función crea asociaciones entre Resources y Books. El unique_id del Resource
debe coincidir con el unique_book_id del Book.
Matching: Resource.unique_id → Book.unique_book_id
Ejemplo: Si el Resource tiene unique_id="loqueleo_mi-libro", se asociará con el Book que tenga unique_book_id="loqueleo_mi-libro".
Esta función embebe las propiedades de autores directamente en cada libro para evitar queries de asociaciones costosas.
Solo incluye autores con type = "Author" (excluye Illustrators y Both).
Propiedades embebidas: authors_names, authors_last_names, authors_slugs, authors_full_names, authors_count
Formato: Valores separados por ";" para múltiples autores (ej: "Gabriel García;José Saramago")
Esta función sincroniza el campo 'segell' (Grup Promotor / Voramar) con los Books de Jollibre. El match se realiza por ISBN.
Importante: Solo actualiza libros de Jollibre (publishing_site = 'jollibre'). El CSV debe estar subido en HubSpot Files con el ID correcto en la serverless function.
Total libros con segell: 37 (todos "Grup Promotor")