> ## Documentation Index
> Fetch the complete documentation index at: https://documentation.outpost.pub/llms.txt
> Use this file to discover all available pages before exploring further.

# Shopify Integration

> Bring Shopify customers into Outpost as members based on subscription tag activity. Currently scoped to a specific subscription-tag flow; broader purchase-to-Ghost subscriber linking is on the roadmap.

The Shopify integration listens for customer events in your Shopify store and turns selected customers into Outpost members. Today it is scoped to a specific **subscription-tag** flow; in the future it will connect Shopify purchases to Ghost subscribers more broadly.

## How it works

Shopify sends real-time webhooks to Outpost whenever a customer is created, updated, or deleted. Outpost processes those events and updates your member list accordingly.

**Sync direction: Shopify → Outpost only.** Changes made in Outpost are not pushed back to Shopify.

## What syncs today

The current behavior is tag-driven. Outpost looks at the customer's Shopify tags and acts only when they match a specific subscription-tag set:

* Customers with subscription tags that the integration is configured to recognize are created in Outpost as **complimentary** members on the corresponding tier.
* Email, first name, and last name are stored on the new member record.
* Subsequent updates to those customers (tag changes, profile updates) keep the Outpost member in sync.
* Customers without matching subscription tags are not imported.

<Note>
  The active subscription tag, the target Ghost tier, and the member tag applied to imported members are all configured in the Shopify integration settings in Outpost. A customer is treated as a complimentary member only when their Shopify tags include **both** the configured member tag and the active subscription tag.
</Note>

## Roadmap

Future work for this integration will broaden the scope so that any Shopify purchase can be linked to a Ghost subscriber, not just customers carrying the configured subscription tags. We'll update this page as those changes ship.

## Setup

<Steps>
  <Step title="Create a Shopify custom app">
    In your Shopify Admin, go to **Settings → Apps and sales channels → Develop apps**. Create a new app and grant it read access to **Customers and Products** (`read_customers`, `read_products`).
  </Step>

  <Step title="Connect Outpost to Shopify">
    Go to the Shopify integration in Outpost and enter:

    * Your shop name (e.g., `yourstore.myshopify.com`).
    * Your Shopify **API key** and **API secret key**.
    * Your **Admin API access token** from the custom app.

    Then configure the tag-to-tier mapping:

    * The **active subscription tag** name to look for on Shopify customers.
    * The target **Ghost membership tier** to assign matching customers to.
    * The **member tag** to apply to imported members.
  </Step>

  <Step title="Add Outpost's webhook URLs in Shopify">
    Outpost displays the webhook URLs you need to register inside Shopify (customer create, customer update, customer delete). Paste each URL into Shopify Admin under **Settings → Notifications → Webhooks**, with format set to JSON. Outpost does not auto-register these — paste them manually.
  </Step>

  <Step title="Confirm with a test customer">
    Add a Shopify customer with one of the recognized subscription tags and confirm they appear in Outpost as a complimentary member on the expected tier.
  </Step>
</Steps>

## Matching existing members

When a Shopify webhook arrives, Outpost matches the customer to an existing member by email:

* **If found** — the existing member record is updated.
* **If not found** — a new complimentary member is created using the Shopify subscription-tag mapping.

## FAQ

<AccordionGroup>
  <Accordion title="Does Outpost push data back to Shopify?">
    No. Sync runs Shopify → Outpost only.
  </Accordion>

  <Accordion title="What happens if a Shopify customer is deleted?">
    Outpost receives the deletion event and can remove the corresponding member, depending on your configuration.
  </Accordion>

  <Accordion title="Can I choose which Shopify tag assigns a tier?">
    Yes. You set the active subscription tag and the target Ghost tier in the Shopify integration settings. A customer is imported as a complimentary member on that tier when their tags include both the configured member tag and the active subscription tag.
  </Accordion>

  <Accordion title="How quickly do changes sync?">
    Shopify sends webhooks in real time. Most events appear in Outpost within seconds, though they're processed through a queue so there may be a brief delay during high-traffic periods.
  </Accordion>
</AccordionGroup>
