Baserow Database Synchronization to Shopify Theme Assets - n8n Workflow

Use this robust n8n workflow to synchronize campaign data and images from Baserow directly to your Shopify store, updating theme snippets dynamically. Learn how to implement this powerful n8n automation.

Workflow Preview

Ready to automate?

Download this n8n workflow template and start using it instantly.

Who is this best for?


  • E-commerce developers needing to synchronize marketing campaign assets automatically.

  • Users looking for advanced examples of using custom GraphQL and REST API calls within an n8n node structure.

  • Businesses using Baserow as a campaign database and Shopify as their storefront.

  • Anyone seeking a practical n8n template for managing theme assets programmatically.

Overview

Managing dynamic content, such as campaign banners or featured images, across multiple systems can be time-consuming. This n8n workflow solves the problem of manual asset management by automating the entire process. When a campaign record in Baserow is updated and marked active, this powerful n8n automation first checks for changes, uploads the corresponding image file directly to Shopify using GraphQL, and then updates a specific liquid template snippet via the Shopify REST API. Because the standard Shopify n8n node does not currently support image and theme asset uploads, this n8n template showcases the use of specialized HTTP Request and GraphQL n8n nodes for advanced API interaction, providing a complete, end-to-end synchronization solution.

How it Works

This advanced n8n workflow operates through a structured sequence, starting with an incoming data signal:


  1. Triggering the n8n workflow: The process begins with the 'Call from Baserow' Webhook n8n trigger. This node listens for POST requests, typically sent by Baserow when a row is updated in the campaign database.

  2. Configuration Setup: The 'Set values here!' n8n node defines static configuration parameters required for the Shopify API calls, including the Shopify Subdomain, the target Theme ID, the Liquid snippet Filename (campaign.liquid), and the base HTML content for the snippet.

  3. Conditional Check: The 'Check' IF n8n node verifies if the incoming Baserow data meets specific criteria: the record must be Active, contain a Campaign Image, and have a 'Last modified' timestamp significantly newer than the previous state. If these conditions are met, the n8n workflow proceeds to the upload step; otherwise, the flow terminates gracefully.

  4. Image Upload (GraphQL): The 'Upload Image' GraphQL n8n node executes a fileCreate mutation against the Shopify Admin GraphQL API. It retrieves the image URL and filename from the Baserow input data, uploading the asset directly to Shopify.

  5. Theme Asset Update (REST): Finally, the 'Save campaign.liquid' HTTP Request n8n node uses a PUT request to update the specified Liquid theme asset (snippets/campaign.liquid). It dynamically injects the filename of the newly uploaded image into the Liquid snippet content defined earlier, completing the synchronization. This final step ensures the Shopify front-end immediately reflects the latest campaign image from Baserow.

Installation Guide

To deploy and utilize this n8n template, follow these steps:


  1. Import: Copy the provided JSON code and import it directly into your n8n instance.

  2. Baserow Webhook Setup: Activate the 'Call from Baserow' n8n trigger and copy the generated webhook URL. Configure a Baserow automation to POST data to this URL whenever a campaign row is updated.

  3. Shopify Credentials: You will need two types of credentials:

HTTP Header Auth (Shopify): Used for the GraphQL and HTTP Request nodes. This typically involves using a Custom App's Access Token set as an X-Shopify-Access-Token header.

  1. Configuration Node: Edit the 'Set values here!' n8n node and update the static values:

Set your Shopify Subdomain.
Set the target Theme ID.
Verify the Filename and Content match your theme's requirements.

  1. Testing: Execute the n8n workflow manually or trigger it via a Baserow update to confirm the image uploads and template updates successfully.

Node Details

Call from Baserow (Webhook n8n trigger): Serves as the starting point. It receives a POST request containing updated row data from Baserow, activating the n8n workflow.
Set values here! (Set n8n node): Stores critical configuration variables (Subdomain, Theme ID, Filename, base Content) that are referenced by subsequent nodes via expressions ($($('Set values here!').params...).
Check (IF n8n node): Implements core logic flow control. It ensures that the n8n workflow only proceeds if the Baserow record is active, has an image attached, and the 'Last modified' field has actually been updated.
Upload Image (GraphQL n8n node): Executes a fileCreate mutation to upload the campaign image from its Baserow URL to Shopify's file system, bypassing limitations in the standard Shopify n8n node. Requires Header Auth credentials.


  • Save campaign.liquid (HTTP Request n8n node): Uses the Shopify REST Admin API to perform a PUT operation on the theme asset. This node dynamically replaces an IMAGE placeholder in the liquid content with the filename from the Baserow input, enabling dynamic theme updates via this n8n workflow.

Related n8n Workflows

Free

Nodes: 7 Nodes
Updated: December 26 2025
View all
Created by
Sascha
Sascha

Featured*