Automate Shopify order tracking in Notion using Make.com. Capture new orders in Notion databases, route exceptions, and keep your fulfillment team aligned.
Introduction
If you are still juggling Shopify orders in a separate workflow and then manually updating status in Notion, you are wasting time and inviting errors. Your fulfillment queue lives in Notion best when every new order creates a row with essential fields, and updates flow back into Notion as status changes. A Shopify to Notion automation lets you keep product, fulfillment, and customer data in one evergreen view. By the end of this guide you will know how to connect Shopify to Notion with Make.com, map the critical fields, and route exceptions to Slack or email when needed.
This is a practical, hands-on setup you can deploy in an afternoon for an e-commerce operation that wants faster, clearer visibility into orders without duplicating data entry.
What You’ll Need
- A Shopify store with orders flowing through webhooks or events
- A Notion workspace with a database ready to receive orders (columns for Order ID, Customer, Total, Status, Shipping, Link, etc.)
- A Make.com account with Shopify, Notion, and Slack connections
- A Slack channel for escalation (optional but recommended)
- A basic understanding of your order lifecycle (new, processing, fulfilled, cancelled)
Note: For a smooth build you should have a paid Make.com plan if you anticipate more than a handful of orders per hour or need advanced features like webhooks and error handling.
How It Works (The Logic)
Trigger: a new Shopify order is created. Action: Make.com creates a matching Notion row with key fields. Optional: if the order hits certain criteria, a Slack alert is posted or an email is sent. Updates in Shopify or Notion should reflect back to Notion to keep the record current. In practice, this means a two-path flow: one path for standard orders, another path for high-priority orders that require escalation.
This setup keeps your Notion dashboard accurate and actionable, avoiding the need to flip between systems to get a complete picture of fulfillment.
Step-by-Step Setup
- Create your Notion database structure
- In Notion, build a database with these essential properties: Order ID (text), Customer (text), Total (currency), Currency (text), Status (select), Created At (date), Shipping (text), Order URL (url), and Notes (text).
- Add a view named “New Shopify Orders” that filters for records with a status such as “New” so you can easily see unprocessed orders.
- Prepare the Shopify trigger in Make.com
- Create a new Scenario and start with the Shopify module.
- Choose the trigger that fires when a new order is created. Select your store and ensure the connection is authenticated.
- You want the payload to include at least: order ID, customer name, total price, currency, status, created at, shipping address, and a URL if available.
- Map fields from Shopify to Notion
- Add Notion module action: Create a Database Page (or Update if you want upserts).
- Map fields as follows:
- Title: Order ID or a composite like "Order {{order_number}} - {{customer_name}}"
- Order ID → Order ID
- Customer → Customer
- Total → Total
- Currency → Currency
- Status → Status
- Created At → Created At
- Shipping → Shipping
- Order URL → Link (URL property)
- Notes → any additional order details you want to store
- Add filtering for order importance (optional but recommended)
- After the Shopify trigger, insert a filter to only continue when the order meets business criteria. Examples:
- Total greater than 100
- Status is not equal to cancelled
- Shipping country is within a specific region
- This helps keep Notion clean and focused on value generating orders.
- Branch for escalation (optional)
- Use a router to split high priority orders to a Slack channel for rapid fulfillment review.
- Path A: Post a concise Slack message to #orders-alert with key fields and a link to the Notion page.
- Path B: Simply create the Notion page and finish the path with a confirmation pullback in the scenario log.
- Test with a real Shopify order
- Create a test order in Shopify and ensure the scenario pulls it up.
- Verify that a new Notion page is created with the correct values and that the URL links back to the exact order record when clicked.
- Confirm that the Slack alert (if configured) shows the right data fields and channel targeting.
- Turn on and monitor the first week
- After enabling the scenario, monitor the first set of orders for mapping accuracy, field completeness, and any rate limit warnings from Shopify or Notion.
- If you see missing fields, double-check your trigger payload fields and your Notion property mappings.
Real-World Business Scenario
A small fashion retailer uses Shopify plus Notion for a centralized ops board. Every new order creates a Notion row with essential details and a link to the order in Shopify. Fulfillment teammates glance the Notion board and immediately see what’s new, what’s pending, and what needs escalation. This eliminated manual copy-paste and reduces miscommunication between sales, warehouse, and customer service.
Common Variations
- Add a second Notion database for fulfilled orders and move records when status changes to fulfilled. This creates a simple lifecycle in Notion without duplication.
- Extend with a PDF snapshot of order details attached to the Notion page via a Make.com step that generates a PDF and stores it in a cloud drive.
- Route more events to Slack or email for high-value orders or orders with high risk notes in Shopify tags.
Keeping the workflow practical
This Shopify to Notion automation gives you a clean, single source of truth for orders. It minimizes manual data entry, reduces errors, and accelerates fulfillment alignments. If you want this kind of automation built end to end across Shopify, Notion, Slack, and the rest of your stack, Olmec Dynamics builds them for real businesses. See how we work here.
For references and to see related patterns, you can check our guide on Shopify orders to Google Sheets and Slack here.
"Current date, time, and timezone (ISO): 2026-09-03T08:39:59.422+02:00"