← Blog
TutorialMay 23, 20265 min read

How to Connect Shopify to Notion Without Code

Automatically sync Shopify orders to a Notion database — no developer required. Build a live order tracker in under 10 minutes.


The problem: Shopify data stuck in Shopify

You have order data in Shopify. You want it in Notion — for your team's operations dashboard, for customer success tracking, for financial reporting, or just to have a flexible database that everyone can query and filter.

The traditional path: hire a developer to write a webhook handler that receives Shopify order events and calls the Notion API. Two to three days of work for something that feels like it should take ten minutes.

With APIlot, it takes ten minutes.

What you'll build

A Shopify webhook that fires on every new order, automatically creating a row in your Notion database with:

  • Order number and total amount
  • Customer name and email
  • Order status and fulfillment status
  • List of items purchased
  • Order date
  • Step 1: Create your Notion database

    First, set up the Notion database that will receive the orders. Create a new database with these properties:

  • Order Number (Title)
  • Customer Email (Email)
  • Customer Name (Text)
  • Amount (Number — formatted as currency)
  • Status (Select — options: Pending, Fulfilled, Cancelled)
  • Items (Text)
  • Order Date (Date)
  • Get the database ID from the URL: `notion.so/[workspace]/[DATABASE_ID]?v=...`

    Step 2: Set up Notion integration

    Go to notion.so/my-integrations and create a new integration. Give it a name like "Shopify Sync." Copy the integration token — this is your `NOTION_API_KEY`.

    Then share your database with the integration: open the database, click Share in the top right, and search for your integration name.

    Step 3: Describe your integration to APIlot

    Open APIlot and type:

    "When a new Shopify order is placed, create a row in my Notion database with the order number, customer name, customer email, total price, line items, and order status."

    APIlot identifies:

  • Source: Shopify Webhooks (`orders/create` event)
  • Target: Notion Database API (create page with properties)
  • It generates a complete TypeScript webhook handler, Notion API client, and README with setup instructions.

    Step 4: Gather your credentials

    Shopify:

  • `SHOPIFY_WEBHOOK_SECRET` — generated when you create the webhook in the next step
  • Notion:

  • `NOTION_API_KEY` — from your integration settings
  • `NOTION_DATABASE_ID` — from your database URL
  • Step 5: Deploy to GitHub

    Click deploy in APIlot. The code goes to a private GitHub repository. Deploy that repository to Railway or Render (both have simple GitHub integration and cost $5–7/month).

    Step 6: Register the Shopify webhook

    In your Shopify admin:

    1. Go to Settings → Notifications → Webhooks

    2. Create webhook: Event = Order creation, Format = JSON

    3. URL = your deployed server's `/webhook` endpoint

    4. Copy the signing secret into `SHOPIFY_WEBHOOK_SECRET`

    Test it

    Place a test order in Shopify (or use Shopify's "Send test notification" button). Check your Notion database — the order should appear within seconds.

    What you can do next

    Once the basic order sync is working, you can extend it:

  • Fulfillment updates: Add a second webhook for `orders/fulfilled` that updates the Status column in your existing row
  • Refunds: Hook into `refunds/create` to add a "Refunded" flag
  • Revenue dashboard: Add a formula column in Notion that calculates daily/monthly totals
  • For each extension, just describe the new behavior to APIlot and it generates an updated or additional handler.

    Why not use Zapier for this?

    Shopify → Notion on Zapier works, but every new order consumes one Zapier task. For a store doing 1,000 orders/month, that's 1,000 tasks — costing you $50–$100/month on Zapier's paid plans, forever.

    APIlot generates code that runs on your own server. 1,000 orders/month costs you the same as 10 orders/month — just your $5–7/month hosting fee.

    Get started free at useapilot.com.

    Ready to ship your first integration?

    Free forever plan. No credit card required.

    Get started free →

    More articles

    How to Ship API Integrations Without a Developer (2025 Guide)

    7 min read · Product

    How to Connect Stripe to Notion Without Code (Step-by-Step)

    5 min read · Tutorial

    APIlot vs Zapier: Why PMs Are Switching to Code-Based Integrations

    6 min read · Comparison