Saltar al contenido

Actualización de Snippet y Subida de Imagen en Shopify desde Baserow

Actualiza un snippet de tema en Shopify (campaign.liquid) y sube una imagen al CDN de Shopify cuando una fila en Baserow es modificada, verificando si la campaña está activa y tiene una imagen.

AIRepo Original 62 nodos 26 tipos conectado
Cargando workflow...

Nodos

ManualTrigger HttpRequest Set VectorStoreQdrant DocumentDefaultDataLoader EmbeddingsOpenAi TextSplitterRecursiveCharacterTextSplitter SplitInBatches NoOp Wait Sort RespondToWebhook InformationExtractor Webhook ChainLlm If Redis ExecuteWorkflow ExecuteWorkflowTrigger SplitOut ScheduleTrigger RemoveDuplicates StickyNote Html Markdown LmChatOpenAi

Herramientas

LangChain OpenAI

Detalles

ID
3288
Nodos
62
Conex.
Tipos
26

Pertenece a:

¿Qué hace este workflow?

Este workflow orquesta la actualización dinámica de contenido en tu tienda Shopify. Se activa automáticamente cuando detecta modificaciones en una fila de Baserow, unificando la gestión de datos. El sistema va más allá de una simple sincronización, integrando capacidades avanzadas de inteligencia artificial (IA), incluyendo el procesamiento de subtítulos de video, embeddings y una base de datos vectorial Qdrant. Esto permite generar y adaptar de forma inteligente snippets de tema (como `campaign.liquid`) y seleccionar imágenes relevantes para subir al CDN de Shopify, asegurando que solo las campañas activas y con imágenes válidas sean publicadas. Es ideal para equipos de marketing que buscan escalar sus operaciones de contenido, personalizar campañas con agilidad y aprovechar al máximo sus activos de video. Reduce significativamente el tiempo dedicado a la gestión manual de contenidos en Shopify y mejora la relevancia de tus campañas al automatizar la personalización basada en datos y análisis de IA, optimizando la experiencia del cliente y el rendimiento de tus estrategias de marketing digital.

¿Cómo funciona?

Este workflow usa 62 nodos conectados con 26 tipos diferentes: ManualTrigger, HttpRequest, Set, VectorStoreQdrant, DocumentDefaultDataLoader y 21 más. La estructura está totalmente conectada — listo para importar.

¿Para quién es?

Diseñado para empresas de Ecommerce y equipos de Marketing & Email. Nivel avanzado — recomendado para usuarios experimentados. Alto valor de negocio: automatiza una tarea recurrente con impacto directo.

¿Lo quieres en tu empresa?

Lo implementamos por ti end-to-end: integración, deploy, mantenimiento y soporte. Consultoría B2B con Genai Sapiens.

Hablemos de tu proyecto

¿Quieres aprender a hacerlo?

Sprints de 30 días con companion IA + comunidad. Aprende n8n, automatización y agentes IA desde cero o nivel avanzado.

Ver formación Momentum

Workflows similares

\n \n\n\n
\n \n \n
\n
\n
\n \n
\n \n \n \n Search\n \n
\n \n
\n
\n
    \n
    \n
    \n
    \n
    \n \n
    Video will show here.
    \n
    \n
    \n
    \n

    About N8N Video Search

    \n \n

    \n This demo has the ability to search recent video and livestream recordings from the official n8n.io Youtube channel.\n The results are picked out of the transcripts allowing users to jump to the exact timestamp relevant to their query.\n This application was built with the following services:\n

    \n
      \n
    • \n Apify.com - \n Searches for \"n8n @ scale\" Youtube livestream recordings and downloads the transcripts. \n Use my code \"20JIMLEUK\" at checkout for 20% OFF an Apify subscription (*expires May 2025).\n
    • \n
    • \n Qdrant.tech - \n Video transcripts are chunked and vectorised into a Qdrant Vector Store. Qdrant is super fast and have a robust search and filtering capabilities.\n
    • \n
    • \n n8n.io - \n n8n serves as our automation platform, backend API and frontend Interface for this demo! Really easy to put together quick AI projects like this one.\n Also be sure to checkout my other free n8n x AI templates here!\n
    • \n
    \n

    \n Questions or Comments? Check out my forum post here!\n

    \n

    \n {{ $now.format('yyyy') }} © Jim Le. \n If you've enjoyed this demo, connect and follow me on \n linkedin.com/in/jimleuk and \n x.com/jimle_uk.\n

    \n
    \n
    \n
    \n \n \n \n \n\n"},"typeVersion":1.2},{"id":"054feb14-d740-4d05-9ef5-d5c584e07eb6","name":"Markdown","type":"n8n-nodes-base.markdown","position":[3080,180],"parameters":{"mode":"markdownToHtml","options":{},"markdown":"={{ $json.text }}"},"typeVersion":1},{"id":"76c6fb4b-5b82-4115-8be4-63b6ce652793","name":"Sticky Note10","type":"n8n-nodes-base.stickyNote","position":[-540,880],"parameters":{"color":7,"width":540,"height":420,"content":"**Fig 1. N8N Video Search Frontend**\n![screenshot of web frontend](https://res.cloudinary.com/daglih2g8/image/upload/f_auto,q_auto/v1/n8n-workflows/lqd2giei1ap2owjgbuth#full-width)"},"typeVersion":1},{"id":"b8ad1b2b-ff05-46a3-a817-951d02d69b01","name":"Sticky Note11","type":"n8n-nodes-base.stickyNote","position":[2160,-740],"parameters":{"color":5,"width":400,"height":240,"content":"**Create Qdrant Collection**\nYou may need to create the qdrant collection manually. Run this in the qdrant dashboard's console.\n```\nPUT collections/n8n_videos\n{\n \"vectors\": {\n \"distance\": \"Cosine\",\n \"size\": 1536\n }\n}\n```"},"typeVersion":1},{"id":"189d6973-cd09-4176-b04b-4c8feea2e653","name":"Sticky Note12","type":"n8n-nodes-base.stickyNote","position":[-1660,-1160],"parameters":{"width":440,"height":1080,"content":"## Try It Out!\n### Ever wanted to build your own RAG search over Youtube videos? Well, now you can! This n8n template shows how you can build a very capable Youtube search engine powered by Apify, Qdrant and your LLM of choice to quickly and efficiently browse over many videos for research or viewing pleasure.\n\nI originally started to template to ask questions on the \"n8n @ scale office-hours\" livestream videos but then extended it to include the latest videos on the official channel.\n\n**Check out a demo here**: [https://jimleuk.app.n8n.cloud/webhook/n8n_videos](https://jimleuk.app.n8n.cloud/webhook/n8n_videos)\n\n### How it works\n* Stage 1 is to collect the Youtube video transcripts into a vector database. For this, I've used Apify to scrape and Qdrant to store.\n* Transcripts are broken down into smaller chunks and carefully tagged with metadata to assist in later search and filtering.\n* Stage 2 is to build a web frontend for the user to query the vectorised transcripts. I'm using a webhook to serve a simple web app and API to dynamically fetch the results.\n* When searching for a video, I've opted to use Qdrant's search groups API which in this use-case, performs better as it returns a wider range of videos results.\n* In the web frontend, when the user clicks on the results, the matching Youtube video plays in an embedded video player.\n\n### How to use\n* Once credentials are all set, first run steps 1 - 3 to populate your vector store.\n* Next, set the workflow to active to expose the web frontend. Visit the webhook [https:///webhook/n8n_videos](/webhook/n8n_videos) in your browser to use it.\n* If only for personal use, you may want to remove. the rate limiting mechanism in step 4.\n\n### Customising the template\n* Not interested in official n8n videos? Swap to a different channel.\n* Google Gemini may perform better when extracting from transcripts.\n\n### Need Help?\nJoin the [Discord](https://discord.com/invite/XPKeKXeB7d) or ask in the [Forum](https://community.n8n.io/)!"},"typeVersion":1},{"id":"a39f0990-6638-4b07-82ca-e91a9a289dfc","name":"Has Results?1","type":"n8n-nodes-base.if","position":[180,240],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"0eb32753-8fd7-4266-a32f-a8f51bf77e93","operator":{"type":"array","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.result.groups }}","rightValue":""}]}},"typeVersion":2.2},{"id":"2552bce4-587f-45ee-8702-7c919978c87e","name":"Generate Empty Response1","type":"n8n-nodes-base.set","position":[180,460],"parameters":{"options":{},"assignments":{"assignments":[{"id":"7c4bd999-49b1-4532-89ca-c53e98da6b17","name":"text","type":"string","value":"={{ '' }}"},{"id":"916221de-2ec9-4fd9-8029-d7a3de88f395","name":"results","type":"string","value":"=
    0 Video Results
    "}]}},"typeVersion":3.4},{"id":"9e9d74c0-3693-4f6f-b406-0ad9a8592c09","name":"Respond to Webhook4","type":"n8n-nodes-base.respondToWebhook","position":[380,460],"parameters":{"options":{"responseCode":200},"respondWith":"text","responseBody":"=
    {{ $json.text }}
    \n{{ $json.results }}"},"executeOnce":false,"typeVersion":1.1},{"id":"e39b205e-1574-4ce6-a87a-a0e090ca3e33","name":"Groups to Items1","type":"n8n-nodes-base.splitOut","position":[380,240],"parameters":{"options":{},"fieldToSplitOut":"result.groups"},"typeVersion":1},{"id":"96e5844a-090b-4e1d-b40a-e0ccf58eac13","name":"OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[1080,460],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o-mini"},"options":{}},"credentials":{"openAiApi":{"id":"8gccIjcuf3gvaoEr","name":"OpenAi account"}},"typeVersion":1.2},{"id":"03c3b930-c677-45e1-974c-8e6fc43acd56","name":"OpenAI Chat Model1","type":"@n8n/n8n-nodes-langchain.lmChatOpenAi","position":[2760,340],"parameters":{"model":{"__rl":true,"mode":"list","value":"gpt-4o-mini"},"options":{}},"credentials":{"openAiApi":{"id":"8gccIjcuf3gvaoEr","name":"OpenAi account"}},"typeVersion":1.2}],"pinData":{},"connections":{"Wait":{"main":[[{"node":"For Each Chunk","type":"main","index":0}]]},"WEB UI":{"main":[[{"node":"Generate Webpage","type":"main","index":0}]]},"Markdown":{"main":[[{"node":"Map Fields","type":"main","index":0}]]},"10req/min":{"main":[[{"node":"Get Query","type":"main","index":0}],[{"node":"429 Response","type":"main","index":0}]]},"Get Query":{"main":[[{"node":"Get Embeddings","type":"main","index":0}]]},"Group Ref":{"main":[[{"node":"Extract Results","type":"main","index":0}]]},"Video Ref":{"main":[[{"node":"Get Video Subtitles","type":"main","index":0}]]},"Embeddings":{"ai_embedding":[[{"node":"Qdrant Vector Store","type":"ai_embedding","index":0}]]},"Map Fields":{"main":[[{"node":"Respond to Webhook","type":"main","index":0}]]},"SEARCH API":{"main":[[{"node":"Incr Rate Limit","type":"main","index":0}]]},"429 Response":{"main":[[{"node":"Respond to Webhook2","type":"main","index":0}]]},"Answer Query":{"main":[[{"node":"Markdown","type":"main","index":0}]]},"Has Results?":{"main":[[{"node":"Transcripts to Items","type":"main","index":0}],[{"node":"Generate Empty Response","type":"main","index":0}]]},"Has Results?1":{"main":[[{"node":"Groups to Items1","type":"main","index":0}],[{"node":"Generate Empty Response1","type":"main","index":0}]]},"Text Splitter":{"ai_textSplitter":[[{"node":"Default Data Loader","type":"ai_textSplitter","index":0}]]},"For Each Chunk":{"main":[[],[{"node":"Qdrant Vector Store","type":"main","index":0}]]},"For Each Group":{"main":[[{"node":"Combine Results","type":"main","index":0}],[{"node":"Group Ref","type":"main","index":0}]]},"For Each Video":{"main":[[],[{"node":"Vectorise Subworkflow","type":"main","index":0}]]},"Get Embeddings":{"main":[[{"node":"Qdrant Groups Search","type":"main","index":0}]]},"Chunk Subtitles":{"main":[[{"node":"Chunks to Items","type":"main","index":0}]]},"Chunks to Items":{"main":[[{"node":"For Each Chunk","type":"main","index":0}]]},"Clean Up Output":{"main":[[{"node":"Sort By Video ID","type":"main","index":0}]]},"Combine Results":{"main":[[{"node":"Has Results?","type":"main","index":0}]]},"Extract Results":{"main":[[{"node":"For Each Group","type":"main","index":0}]]},"Incr Rate Limit":{"main":[[{"node":"10req/min","type":"main","index":0}]]},"Generate Webpage":{"main":[[{"node":"Render Page","type":"main","index":0}]]},"Groups to Items1":{"main":[[{"node":"For Each Group","type":"main","index":0}]]},"Schedule Trigger":{"main":[[{"node":"Get Latest Youtube Videos","type":"main","index":0}]]},"Sort By Video ID":{"main":[[{"node":"Generate Template","type":"main","index":0}]]},"Generate Template":{"main":[[{"node":"Answer Query","type":"main","index":0}]]},"OpenAI Chat Model":{"ai_languageModel":[[{"node":"Extract Results","type":"ai_languageModel","index":0}]]},"OpenAI Chat Model1":{"ai_languageModel":[[{"node":"Answer Query","type":"ai_languageModel","index":0}]]},"Default Data Loader":{"ai_document":[[{"node":"Qdrant Vector Store","type":"ai_document","index":0}]]},"Get Video Subtitles":{"main":[[{"node":"Chunk Subtitles","type":"main","index":0}]]},"Ignore Already Seen":{"main":[[{"node":"For Each Video","type":"main","index":0}]]},"Qdrant Vector Store":{"main":[[{"node":"Wait","type":"main","index":0}]]},"Qdrant Groups Search":{"main":[[{"node":"Has Results?1","type":"main","index":0}]]},"Transcripts to Items":{"main":[[{"node":"Clean Up Output","type":"main","index":0}]]},"Vectorise Subworkflow":{"main":[[{"node":"For Each Video","type":"main","index":0}]]},"Vectorise Subworkflow1":{"main":[[{"node":"Video Ref","type":"main","index":0}]]},"Generate Empty Response":{"main":[[{"node":"Respond to Webhook3","type":"main","index":0}]]},"Generate Empty Response1":{"main":[[{"node":"Respond to Webhook4","type":"main","index":0}]]},"Get Latest Youtube Videos":{"main":[[{"node":"Ignore Already Seen","type":"main","index":0}]]},"When clicking ‘Test workflow’":{"main":[[{"node":"Get Latest Youtube Videos","type":"main","index":0}]]}}}