{
  "id": "gl7ZRfiTi9tQX4nn",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "ShopifyMCP",
  "tags": [],
  "nodes": [
    {
      "id": "936e5bea-347e-4a6e-b639-579dc932fdd6",
      "name": "AI Agent",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1376,
        32
      ],
      "parameters": {
        "options": {
          "systemMessage": "You are an AI Commerce Assistant integrated with a Shopify MCP Server (via n8n).\nYour goal is to help users manage their Shopify store efficiently with minimal friction by intelligently using the available MCP tools.\n\n\ud83d\udd11 Core Principles\n\nMinimize Questions\n\nBefore asking the user for any detail, always attempt to retrieve it automatically using available MCP tools (e.g., fetch customer, product, order records).\n\nIf a detail can be derived from context (e.g., \u201clatest order\u201d \u2192 fetch most recent order), do so without asking.\n\nOnly ask the user if the information cannot be inferred or retrieved.\n\nContext-Aware Automation\n\nUse prior conversation history and Shopify data to fill in missing fields.\n\nWhen multiple matches are possible (e.g., two customers with similar names), suggest the best match and confirm only if needed.\n\nDefault to sensible values when options are ambiguous (e.g., if product variant unspecified, pick best-seller or default variation).\n\nUser Experience (UX) First\n\nRespond clearly, concisely, and in natural language.\n\nAvoid technical jargon unless explicitly requested.\n\nSummarize actions before execution only when they are irreversible (e.g., refunding an order).\n\nAction Orientation\n\nAlways try to take direct action rather than explaining how.\n\nFor requests like \u201ccreate a coupon,\u201d \u201cadd product,\u201d \u201ccheck stock,\u201d or \u201cget sales report,\u201d immediately call the appropriate MCP tool and provide results.\n\nError & Fallback Handling\n\nIf a tool call fails, retry with adjusted parameters (e.g., fuzzy search for names).\n\nIf still unsuccessful, explain clearly what\u2019s missing and ask the user only for that specific piece of info.\n\nNever overwhelm the user with multiple technical errors.\n\u2699\ufe0f Available Capabilities (via MCP Server Tools)\n\nProduct Management: Create, update, fetch, and search products, categories, stock.\n\nOrder Management: Create, update, fetch, search, and refund orders.\n\nReports & Analytics: Fetch sales reports, top products, low-stock items, revenue insights.\n\nCoupons & Discounts: Create, fetch, and manage coupons.\n\nStore Settings: Fetch store details, currency, tax rates.\n\n\ud83d\udcdd Behavioral Guidelines\n\nDefault to automation: Always use available MCP tools before asking for details.\n\nSmart filling: Auto-populate fields (e.g., customer email from prior orders).\n\nConcise responses: Provide clear, user-friendly summaries of results.\n\nProgressive disclosure: Share only the info relevant to the request; provide deeper details only if asked.\n\nConfirmation required for critical actions: Refunds, deletions, or bulk updates.\n\n\u2705 Example Behaviors\n\nUser: \"Create an order for John Doe for 2 T-shirts.\"\n\nAuto: Search customer \u2192 find John Doe\u2019s ID.\n\nAuto: Search product \u201cT-shirt\u201d \u2192 resolve product ID + variation if default exists.\n\nAuto: Create order with quantity 2.\n\nRespond: \u201c\u2705 Order #1234 created for John Doe (2 \u00d7 T-shirt).\u201d\n\nUser: \"Check today\u2019s sales.\"\n\nAuto: Call sales report tool with today\u2019s date.\n\nRespond: \u201c\ud83d\udcca Today\u2019s sales: $2,345 from 42 orders. Top product: Blue Hoodie.\u201d\n\nUser: \"Add a new coupon.\"\n\nAuto: Ask only for missing details (e.g., discount percentage).\n\nDefault sensible values (expiry = 30 days, usage limit = unlimited).\n\nRespond: \u201c\ud83c\udf9f\ufe0f Coupon \u2018SAVE10\u2019 created: 10% off, valid for 30 days.\u201d\n\n\ud83d\udd12 Final Rule: Always act as a proactive assistant\u2014reduce friction, retrieve what you can, ask the minimum necessary, and deliver results efficiently."
        }
      },
      "typeVersion": 2
    },
    {
      "id": "c3dd8763-a88b-4e3e-800c-d7cc5c3ef29e",
      "name": "OpenAI Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1232,
        208
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-5-mini",
          "cachedResultName": "gpt-5-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "3295421a-95db-4343-842e-c378be8b884a",
      "name": "MCP Client",
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "position": [
        1552,
        208
      ],
      "parameters": {
        "sseEndpoint": "http://localhost:5678/mcp/7295b0c9-19ab-4c39-b22c-570573cdd1df/sse"
      },
      "typeVersion": 1
    },
    {
      "id": "7ce13d4c-3772-4909-858b-cfbbb2a409fc",
      "name": "Simple Memory",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        1392,
        208
      ],
      "parameters": {},
      "typeVersion": 1.3
    },
    {
      "id": "810678d2-ac55-4459-a070-4523121831d1",
      "name": "When chat message received",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        1408,
        -176
      ],
      "parameters": {
        "public": true,
        "options": {}
      },
      "typeVersion": 1.1
    },
    {
      "id": "566caa63-f921-44a7-80ae-6b4a20c26386",
      "name": "Shopify Tool MCP Server",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        448,
        -224
      ],
      "parameters": {
        "path": "7295b0c9-19ab-4c39-b22c-570573cdd1df"
      },
      "typeVersion": 1
    },
    {
      "id": "1c23ae46-23af-41b7-8069-1939d07b93df",
      "name": "Create a product in Shopify",
      "type": "n8n-nodes-base.shopifyTool",
      "position": [
        64,
        32
      ],
      "parameters": {
        "title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
        "resource": "product",
        "authentication": "accessToken",
        "additionalFields": {
          "handle": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Handle', ``, 'string') }}",
          "body_html": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Body_HTML', ``, 'string') }}",
          "product_type": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Product_Type', ``, 'string') }}"
        }
      },
      "credentials": {
        "shopifyAccessTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "023dd9d8-d248-4ada-bc33-7c1f6bcca583",
      "name": "Get a product in Shopify",
      "type": "n8n-nodes-base.shopifyTool",
      "position": [
        256,
        32
      ],
      "parameters": {
        "resource": "product",
        "operation": "get",
        "productId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Product_ID', ``, 'string') }}",
        "authentication": "accessToken",
        "additionalFields": {}
      },
      "credentials": {
        "shopifyAccessTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "02c85f5d-c3e4-4730-944b-1fe3334ee712",
      "name": "Search products in Shopify by Title",
      "type": "n8n-nodes-base.shopifyTool",
      "position": [
        448,
        32
      ],
      "parameters": {
        "resource": "product",
        "operation": "getAll",
        "returnAll": true,
        "authentication": "accessToken",
        "additionalFields": {
          "title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}"
        }
      },
      "credentials": {
        "shopifyAccessTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e254d39b-fd0e-4a2c-a681-73f7590e005a",
      "name": "Get All products in Shopify",
      "type": "n8n-nodes-base.shopifyTool",
      "position": [
        704,
        32
      ],
      "parameters": {
        "resource": "product",
        "operation": "getAll",
        "returnAll": true,
        "authentication": "accessToken",
        "additionalFields": {}
      },
      "credentials": {
        "shopifyAccessTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "8ab3f661-64d6-47f2-bfb8-7f7a0b58e104",
      "name": "Update a product in Shopify",
      "type": "n8n-nodes-base.shopifyTool",
      "position": [
        896,
        32
      ],
      "parameters": {
        "resource": "product",
        "operation": "update",
        "productId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Product_ID', ``, 'string') }}",
        "updateFields": {
          "title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Title', ``, 'string') }}",
          "handle": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Handle', ``, 'string') }}",
          "body_html": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Body_HTML', ``, 'string') }}"
        },
        "authentication": "accessToken"
      },
      "credentials": {
        "shopifyAccessTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "d8428685-3e3e-4f80-af40-1ea53737299f",
      "name": "Delete a product in Shopify",
      "type": "n8n-nodes-base.shopifyTool",
      "position": [
        1088,
        32
      ],
      "parameters": {
        "resource": "product",
        "operation": "delete",
        "productId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Product_ID', ``, 'string') }}",
        "authentication": "accessToken"
      },
      "credentials": {
        "shopifyAccessTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "6643b0d1-e02c-45c8-abb0-ebc4d0a407eb",
      "name": "Create an order in Shopify",
      "type": "n8n-nodes-base.shopifyTool",
      "position": [
        64,
        304
      ],
      "parameters": {
        "limeItemsUi": {
          "lineItemValues": [
            {
              "grams": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('lineItemValues0_Grams', ``, 'string') }}",
              "price": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('lineItemValues0_Price', ``, 'string') }}",
              "title": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('lineItemValues0_Title', ``, 'string') }}",
              "quantity": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('lineItemValues0_Quantity', ``, 'number') }}",
              "productId": 9070405255407,
              "variantId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('lineItemValues0_Variant_ID', ``, 'string') }}"
            }
          ]
        },
        "authentication": "accessToken",
        "additionalFields": {
          "email": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Email', ``, 'string') }}",
          "fulfillmentStatus": "fulfilled",
          "sendFulfillmentReceipt": true
        }
      },
      "credentials": {
        "shopifyAccessTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "1ecc6cbc-ee04-4882-8c0e-a27eec72c6cd",
      "name": "Get an order in Shopify",
      "type": "n8n-nodes-base.shopifyTool",
      "position": [
        256,
        304
      ],
      "parameters": {
        "options": {},
        "orderId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Order_ID', ``, 'string') }}",
        "operation": "get",
        "authentication": "accessToken"
      },
      "credentials": {
        "shopifyAccessTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b241ac71-0a35-4211-ad01-e3f96369a253",
      "name": "Get fulfilled orders in Shopify",
      "type": "n8n-nodes-base.shopifyTool",
      "position": [
        448,
        304
      ],
      "parameters": {
        "options": {
          "fulfillmentStatus": "shipped"
        },
        "operation": "getAll",
        "returnAll": true,
        "authentication": "accessToken"
      },
      "credentials": {
        "shopifyAccessTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "07ec0ab5-9b26-4c95-9701-574da85c7d17",
      "name": "Get all orders in Shopify",
      "type": "n8n-nodes-base.shopifyTool",
      "position": [
        704,
        304
      ],
      "parameters": {
        "options": {},
        "operation": "getAll",
        "returnAll": true,
        "authentication": "accessToken"
      },
      "credentials": {
        "shopifyAccessTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "09b6b766-09f8-4a83-aec0-3f741211a7c9",
      "name": "Update an order in Shopify",
      "type": "n8n-nodes-base.shopifyTool",
      "position": [
        896,
        304
      ],
      "parameters": {
        "orderId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Order_ID', ``, 'string') }}",
        "operation": "update",
        "updateFields": {
          "note": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Note', ``, 'string') }}",
          "email": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Email', ``, 'string') }}"
        },
        "authentication": "accessToken"
      },
      "credentials": {
        "shopifyAccessTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "bb063604-7cc0-46b7-8376-9a1411ae8b3e",
      "name": "Delete an order in Shopify",
      "type": "n8n-nodes-base.shopifyTool",
      "position": [
        1088,
        304
      ],
      "parameters": {
        "orderId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Order_ID', ``, 'string') }}",
        "operation": "delete",
        "authentication": "accessToken"
      },
      "credentials": {
        "shopifyAccessTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "64d5eddd-5369-4dbb-80fe-e80a070aa4e9",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -944,
        -256
      ],
      "parameters": {
        "width": 880,
        "height": 1360,
        "content": "## Step-by-Step Setup Guide\n\nFollow these steps to import and configure the Shopify MCP AI Agent workflow in n8n:\n\n### 1. Import the Workflow File\n\n- Download the workflow file from this Creator Hub listing.\n- In your n8n instance, go to **Workflows** > **Import from File** and upload the JSON.\n\n### 2. Prepare Shopify Access\n\n- Log in to your [Shopify admin](https://shopify.com/admin).\n- Create a **Custom App** or use an existing app and retrieve the Admin API Access Token.\n- **Storefront access:** Ensure your app has relevant permissions for Products, Orders, Discounts, and Store Settings.\n\n### 3. Set Up Credentials in n8n\n\n- In n8n, navigate to **Credentials** and add a new Shopify API credential using your Access Token.\n- Name it something memorable (e.g., `Shopify Access Token account`) to match the credential used in the workflow nodes.\n\n### 4. Configure the MCP Server Connection\n\n- Make sure your MCP Server is running and accessible with API endpoints for product/order management.\n- Update any relevant connection endpoints in the workflow if you run your MCP Server locally or in a different location.\n\n### 5. Connect OpenAI or Other LLM Provider\n\n- Provide your API key for OpenAI GPT or a compatible model.\n- Link the credential to the `OpenAI Chat Model` node (replace with other providers if required).\n\n### 6. (Optional) Customize for Your Needs\n\n- Tweak node logic, add new triggers, or extend memory features as required.\n- Add, remove, or restrain the AI\u2019s capabilities to fit your operational needs.\n- Configure chat triggers for more personalized workflows.\n\n### 7. Testing\n\n- Use the **\u201cWhen chat message received\u201d** trigger or send http requests to the workflow\u2019s endpoint.\n- Example: *\u201cCreate an order for Jane Doe, 3 Black T-shirts\u201d* or *\u201cShow today\u2019s fulfilled orders\u201d*.\n- The workflow and AI Agent will handle context, fetch/store data, and reply accordingly.\n\n### 8. Ready to Automate!\n\n- Begin leveraging conversational automation to manage your Shopify store.\n- For additional tips, consult the workflow\u2019s internal documentation and n8n\u2019s official guides.\n\n***\n\n## Additional Notes\n\n- This template includes all core Shopify product and order operations.\n- The AI agent auto-resolves context, making routine admin tasks simple and quick.\n- Extend or fork the workflow to suit niche scenarios\u2014discounts, analytics, and more.\n- Visual thumbnail and schematic are included for easy reference.\n\n***"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "7255c4e9-2da6-4f0d-a769-5973025046e3",
  "connections": {
    "MCP Client": {
      "ai_tool": [
        [
          {
            "node": "AI Agent",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "AI Agent",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "OpenAI Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "AI Agent",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "Get an order in Shopify": {
      "ai_tool": [
        [
          {
            "node": "Shopify Tool MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get a product in Shopify": {
      "ai_tool": [
        [
          {
            "node": "Shopify Tool MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get all orders in Shopify": {
      "ai_tool": [
        [
          {
            "node": "Shopify Tool MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Create an order in Shopify": {
      "ai_tool": [
        [
          {
            "node": "Shopify Tool MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Delete an order in Shopify": {
      "ai_tool": [
        [
          {
            "node": "Shopify Tool MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Update an order in Shopify": {
      "ai_tool": [
        [
          {
            "node": "Shopify Tool MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "When chat message received": {
      "main": [
        [
          {
            "node": "AI Agent",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create a product in Shopify": {
      "ai_tool": [
        [
          {
            "node": "Shopify Tool MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Delete a product in Shopify": {
      "ai_tool": [
        [
          {
            "node": "Shopify Tool MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get All products in Shopify": {
      "ai_tool": [
        [
          {
            "node": "Shopify Tool MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Update a product in Shopify": {
      "ai_tool": [
        [
          {
            "node": "Shopify Tool MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get fulfilled orders in Shopify": {
      "ai_tool": [
        [
          {
            "node": "Shopify Tool MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Search products in Shopify by Title": {
      "ai_tool": [
        [
          {
            "node": "Shopify Tool MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}