Partner help

Connect Shopify to Installers.org

Automatically create an installation job every time a customer buys assembly service in your Shopify store. No middleware, no code — just a webhook.

How it works

  1. A customer places an order in your Shopify store that includes an assembly or installation line item.
  2. Shopify sends the order to Installers.org via a webhook.
  3. Installers.org creates a job and notifies qualified installers near the customer.
  4. You select an installer from your partner dashboard, and they coordinate directly with the customer.

What you need

  • An Installers.org partner account on the Advanced plan
  • Your API key (find it in your partner dashboard)
  • Admin access to your Shopify store

Step 1: Create the webhook in Shopify

  1. In your Shopify admin, go to Settings → Notifications.
  2. Scroll to the bottom and click Create webhook.
  3. Set the fields:
    • Event: Order payment
    • Format: JSON
    • URL:https://installers.org/api/v1/webhooks/shopify
  4. Click Save.

Step 2: Add your API key

Shopify needs to send your Installers.org API key with every webhook so we know which partner the order belongs to. Add a custom header to the webhook:

X-Installers-Key: your_api_key_here

If your Shopify plan doesn't support custom webhook headers, you can append the key as a query parameter instead:

https://installers.org/api/v1/webhooks/shopify?key=your_api_key_here

Step 3: Map your assembly SKUs

In your Installers.org partner dashboard, map each of your Shopify assembly SKUs to a service category and an installer payout.

For example, if you sell a treadmill with an optional "Professional Assembly" add-on at $199, but you want to pay the installer $150:

SKUService categoryInstaller payout
ASSM-TREADMILLFitness Equipment Assembly$150 flat
ASSM-FURNITUREFurniture Assembly80% of line item price
ASSM-*Furniture Assembly75% of line item price

When an order arrives, we match the SKU on each line item against your rules and calculate the installer payout automatically. You can set:

  • Fixed payout: the installer gets a flat dollar amount regardless of what the customer paid
  • Percentage: the installer gets a percentage of the line item price (e.g., customer pays $199, installer gets 80% = $159.20)

Exact SKU matches take priority over wildcards. Use * as a catch-all default for any assembly SKU you haven't mapped individually.

Step 4: Control which orders create jobs

You probably don't want every order to create an installation job. Use one of these approaches to control which orders get sent:

Shopify Flow (recommended)

If you're on Shopify Basic or higher, you have access to Shopify Flow, a visual automation tool. Create a flow that:

  1. Trigger: Order paid
  2. Condition: Order contains a line item where SKU equals your assembly SKU (e.g., ASSEMBLY-SERVICE), or where a product tag equals assembly-required
  3. Action: Send HTTP request to https://installers.org/api/v1/webhooks/shopify with your API key header

This is the cleanest approach. You filter on the Shopify side, and only matching orders reach us.

Assembly as a separate product or variant

Another common pattern: sell assembly as a separate line item (e.g., "Professional Assembly — $99"). If the customer adds it to their cart, the SKU appears on the order. Use Shopify Flow to check for that SKU before sending the webhook.

Testing

Use your sandbox API key (found in your partner dashboard) instead of your live key. Sandbox jobs are never sent to real installers, so you can place test orders safely.

To test, place a real order in your Shopify store (you can refund it afterward). The webhook will fire, and the job will appear in your partner dashboard marked as a test.

What the job looks like

When a Shopify order hits our webhook, we create a job with:

  • Customer: name, email, and phone from the order
  • Location: the shipping address and ZIP code
  • Description: all line item names, quantities, and SKUs
  • Reference: the Shopify order number (e.g., "Shopify #1042")
  • Payout: calculated from your SKU payout rules — fixed dollar amount or percentage of the line item price. If no rule matches, the job defaults to quote mode (installers bid)

From there, everything works exactly like a job posted from the dashboard or API. Installers request the job, you pick one, and they coordinate with your customer.

Troubleshooting

Job not created

Check that your API key is being sent in the X-Installers-Key header or Authorization: Bearer header. In Shopify, go to Settings → Notifications and check the webhook response code. A 201 means success.

"unknown_service" error

We couldn't determine the service category. Make sure you've mapped your assembly SKUs in your partner dashboard. The SKU on the Shopify line item needs to match one of your rules.

"no_valid_zip" error

The order's shipping address doesn't have a valid 5-digit US ZIP code. This can happen with international orders or orders with no shipping address (digital products).

"customer_contact_required" error

The order is missing both a customer phone number and email. Make sure your Shopify checkout collects at least one of these.

Need help setting this up? Contact us and we'll walk you through it.