We have a Shopify store connected to n8n, and we want to automate several actions securely, using the native Shopify node whenever possible, rather than the generic HTTP Request node.
Current use case:
We want to create a blog article in Shopify as a draft, never published automatically.
Action required:
Create a blog article in Shopify.
Blog: News.
Blog ID:****
Published: false.
Author:
Create only a draft for human review.
Problem:
In the Shopify node in n8n, we only see these resources:
Order
Product
Custom API Call
There is no resource of the type:
Blog
Article
Blog Article
Content
When we select Custom API Call, n8n indicates that we should use HTTP Request to perform the custom call, using Shopify authentication.
Questions:
Does the Shopify node in n8n currently allow creating Shopify blog articles natively?
If the Blog/Article operation does not exist in the Shopify node, what is the recommended approach by n8n?
Should we use HTTP Request with “Predefined Credential Type” and select the Shopify credential?
What type of Shopify credential does n8n recommend for stores now using the new Shopify Dev Dashboard?
The classic documentation states: “Shopify Admin → Settings → Apps → Develop apps → Create custom app”, but now Shopify redirects to the Dev Dashboard. How should we correctly obtain/configure the Admin API access token for n8n in this new system?
For several future automations, do you recommend a single reusable Shopify credential in n8n or separate credentials per use case?
Future actions we want to automate with Shopify in n8n:
Create draft blog articles.
Update draft blog articles.
Create products in draft status, never published automatically.
Update product metafields.
Read paid orders.
Read products and stock.
Update internal statuses without publishing content.
Keep everything with credentials stored within n8n, no tokens in JSON.
Does the Shopify node support blog posts? No. It only supports Order, Product, and Custom API Call. Blog/Article operations aren’t available natively.
Recommended approach for blog posts: Use the HTTP Request node with your Shopify credential as a Predefined Credential Type. in the HTTP Request node, set Authentication to “Predefined Credential Type”, select “Shopify Access Token API”, and pick your existing credential. Then call the Shopify Admin API directly, e.g. POST /admin/api/2024-01/blogs/{blog_id}/articles.json with published: false.
Your credential error: If you get a “Couldn’t connect with these settings” warning, this may be due to your app’s access scope dependencies. For blog posts you’ll need the write_content scope on your custom app. Go into your Shopify app’s Configuration and make sure that scope is enabled, then reinstall the app to apply changes.
New Shopify Dev Dashboard: The Access Token method is recommended. Shopify no longer generates API keys with passwords. The setup path is still Admin → Settings → Apps and sales channels → Develop apps → Create custom app, even if Shopify’s UI has changed. The Access Token and API Secret Key you get from there are what you enter in n8n.
Single vs separate credentials: One credential is fine as long as it has all the scopes you need (orders, products, content). No reason to maintain multiple credentials for the same store.
The native Shopify node doesn’t expose blog/article resources - you’ll need the HTTP Request node for that. Use the Shopify OAuth2 credential you already set up, then call:
POST https://your-store.myshopify.com/admin/api/2024-01/blogs/{blog_id}/articles.json
Body (JSON): {"article": {"title": "Your title", "body_html": "<p>Content</p>", "published": false}}
Setting published: false creates it as draft. You can get your blog_id by calling GET /admin/api/2024-01/blogs.json first and looking at the id field.
Thank you so much for the clarification, I’ll keep that in mind. When I get to working on the Shopify workflows, I’ll let you know if it works for me or not.