ProxyHook
Integrations
Pricing Try Free
Log in →

Footer

ProxyHook Logo

Support

  • Pricing
  • Documentation

Company

  • Blog

Legal

  • Contact
  • Privacy
  • Terms

integrations

Route Shopify Order Events to Postgres with ProxyHook

May 7, 2026

A data stream flowing from a Shopify store to a Postgres database stack

If you run a Shopify store, you already have a firehose of order data. Every new order, cancellation, refund, and fulfillment update fires a webhook — but by default that data lands nowhere useful. It sits in Shopify's own activity log, unreachable by your SQL queries, your BI tools, or your custom dashboards.

Pointing those Shopify webhooks at ProxyHook and routing them to Postgres takes about ten minutes to set up. You get every order event in a table you own, queryable however you like, updated in real time.

Why Shopify Webhook Data Belongs in Your Database

Shopify's built-in reports are fine for high-level revenue summaries, but they break down quickly when you need to answer custom questions: which product combinations appear together most often, how long fulfillment takes on weekends versus weekdays, or which discount codes correlate with cancellations.

Those questions need raw event data in a database. Exporting CSVs on a schedule works until it doesn't — you miss events during off-hours, you can't join on other tables, and you're always a few hours behind.

Streaming Shopify webhooks closes that gap. ProxyHook acts as the relay: Shopify sends events to ProxyHook's durable endpoint, ProxyHook forwards them to Postgres. If Postgres has a momentary blip, ProxyHook handles retries automatically so you don't drop events.

How It Works in ProxyHook

1. Create a Source

In your ProxyHook dashboard, create a new Source. You'll receive a unique endpoint that's instantly active:

https://go.proxyhook.com/A817GH

This is what Shopify will POST order events to. The endpoint responds 200 immediately on receipt, decoupling Shopify's delivery from your Postgres connection — so a slow database moment never causes Shopify to pause or retry against you.

2. Configure the Shopify Webhooks Integration

In your Shopify admin:

  1. Go to Settings → Notifications → Webhooks
  2. Click Create webhook
  3. Select the event — start with Order creation
  4. Set the format to JSON
  5. Paste your ProxyHook Source URL as the endpoint
  6. Save, then use Shopify's test button to confirm it responds

Repeat the process for any additional order events you want to capture in Postgres.

3. Create a Postgres Destination

Add a new Destination in ProxyHook, select Postgres, and enter your connection credentials. Once created, the Destination dashboard shows total requests, 2XX vs. non-2XX response counts, filtered request counts, and average execution time — all sliceable from 30 minutes to one month.

4. Subscribe Source to Destination

Create a Subscription that links your Shopify Source to your Postgres Destination. Once saved, order events flow immediately from Shopify through ProxyHook into your database. No polling, no scheduled exports.

Optional: Filter by Payload Content

Not every event needs to land in Postgres. ProxyHook lets you add Filters at the Destination level — matching against payload content fields, country, city, and more. Events that don't match are dropped before forwarding.

For example, if you only want to warehouse events matching a specific condition in the payload body, a payload content filter handles that without touching any application code.

Debugging with Logs

When you're first setting up the integration, enable Logging on the Source and set a sample rate appropriate for your volume. Logs capture raw request payloads, response codes, and execution times for each event. Once everything looks healthy, dial the sample rate down — the activity counters keep running regardless.

The Destination's activity view surfaces non-2XX responses separately, so Postgres connectivity issues are visible before they cause data gaps.

A Note on Schema

Shopify's order webhooks send a full JSON object. ProxyHook forwards the body as-is to Postgres. How you store it depends on your query patterns: a jsonb column with a GIN index works well for flexible exploration; normalized tables are better for high-frequency analytical queries against specific fields.

Get Started

Create a Source in ProxyHook, point your Shopify webhooks integration at it, add a Postgres Destination, and connect them with a Subscription. You'll have live Shopify order events flowing into your own database in minutes — no custom server, no scheduled export, no gaps.

View the Shopify integration →
View the Postgres integration →

← Back to blog