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

# Connect Shopify

> Connect your Shopify store to Automations with your own Dev Dashboard app — no App Store review, no sign-in window

Shopify has no shared sign-in app for third-party platforms: an app that many stores install must first pass Shopify's App Store review. Famulor therefore connects **your** store through **your own** Shopify app. You create it in the Shopify Dev Dashboard in a few minutes, install it on your store, and paste its Client ID and secret into Famulor. Famulor exchanges them for an Admin API token and refreshes it automatically.

What you get: every Shopify **trigger and action** in the [App Catalog](/automations/app-catalog) — orders, products, customers, inventory, fulfillments, discounts and more — plus the Shopify tools your assistants can call from a conversation via an automation.

<Note>
  This is different from the **Shopify (Storefront MCP)** connection, which only reads the public catalog, carts and policies of a store and needs no app. Use this guide when an automation should read or change store data through the Admin API.
</Note>

## Before you start

* You are the **owner or a staff member with app-development permission** of the Shopify store.
* Your Famulor workspace has the Automation platform on its plan and **Beta Features** enabled (Settings → Workspace → Beta Features).
* Keep the store's permanent name at hand — the `acme` in `acme.myshopify.com` (Shopify admin → Settings → Domains). Your custom domain will not work.

The whole setup takes about ten minutes. Client ID and secret stay at the app connector; Famulor never stores them in your workspace.

## Step 1 — Open the Dev Dashboard

In your Shopify admin, type **App development** into the search bar and open the settings entry, or go to **Settings → Apps and sales channels → Develop apps**.

<Frame caption="Shopify admin: search for “App development”">
  <img src="https://mintcdn.com/ouraicall/yKC9j80hMG-IufiE/images/automations/shopify/01-search-app-development.png?fit=max&auto=format&n=yKC9j80hMG-IufiE&q=85&s=3b0db84fe64cdd662f0612bf6b51e733" alt="Shopify admin search with App development highlighted" width="1696" height="991" data-path="images/automations/shopify/01-search-app-development.png" />
</Frame>

Click **Build apps in Dev Dashboard**. Ignore the legacy custom-app option — Shopify is retiring it, and Famulor's connection uses the new app model.

<Frame caption="Open the Dev Dashboard from App development">
  <img src="https://mintcdn.com/ouraicall/yKC9j80hMG-IufiE/images/automations/shopify/02-build-apps-dev-dashboard.png?fit=max&auto=format&n=yKC9j80hMG-IufiE&q=85&s=09cde8ff3c07b94c431427688e551647" alt="App development page with the Build apps in Dev Dashboard button" width="1696" height="951" data-path="images/automations/shopify/02-build-apps-dev-dashboard.png" />
</Frame>

## Step 2 — Create the app

In the Dev Dashboard click **Create app** (top right).

<Frame caption="Dev Dashboard → Create app">
  <img src="https://mintcdn.com/ouraicall/yKC9j80hMG-IufiE/images/automations/shopify/03-dev-dashboard-create-app.png?fit=max&auto=format&n=yKC9j80hMG-IufiE&q=85&s=11b82225a30b0018c57ceff3f3b30e6e" alt="Dev Dashboard apps page with the Create app button" width="1696" height="996" data-path="images/automations/shopify/03-dev-dashboard-create-app.png" />
</Frame>

Choose **Start from Dev Dashboard**, give the app a name you will recognize later (for example `famulor-voice`) and click **Create**. You do not need Shopify CLI.

<Frame caption="Name the app and click Create">
  <img src="https://mintcdn.com/ouraicall/yKC9j80hMG-IufiE/images/automations/shopify/04-create-app-name.png?fit=max&auto=format&n=yKC9j80hMG-IufiE&q=85&s=e24cb166914f14b3a7cb9866505e7fb6" alt="Create an app dialog with app name field" width="1696" height="994" data-path="images/automations/shopify/04-create-app-name.png" />
</Frame>

## Step 3 — Configure a version with the scopes Famulor needs

Open **Versions** and click **Create a version**. Keep **App URL** at a placeholder such as `https://example.com` — Famulor does not host an embedded app — and leave the redirect URLs empty. This connection type does not use them.

<Frame caption="Create a version: name and URLs">
  <img src="https://mintcdn.com/ouraicall/yKC9j80hMG-IufiE/images/automations/shopify/05-create-version.png?fit=max&auto=format&n=yKC9j80hMG-IufiE&q=85&s=3d2e5dda95ed37510896c7d9ddb976fe" alt="Create a version form with app name and URLs" width="1696" height="991" data-path="images/automations/shopify/05-create-version.png" />
</Frame>

Scroll to **Access → Scopes** and click **Select scopes**.

<Frame caption="Access → Scopes → Select scopes">
  <img src="https://mintcdn.com/ouraicall/yKC9j80hMG-IufiE/images/automations/shopify/06-access-scopes.png?fit=max&auto=format&n=yKC9j80hMG-IufiE&q=85&s=56a882032e9ec7f9e3adde5671193482" alt="Access section with the Scopes field and Select scopes link" width="1696" height="991" data-path="images/automations/shopify/06-access-scopes.png" />
</Frame>

Tick the Admin API scopes for the data your automations should touch. A safe default set:

| Area                 | Scopes                                                                                                                  |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| Orders               | `read_orders`, `write_orders` (add `read_all_orders` if you need orders older than 60 days)                             |
| Products & inventory | `read_products`, `write_products`, `read_inventory`, `write_inventory`                                                  |
| Customers            | `read_customers`, `write_customers`                                                                                     |
| Fulfillment          | `read_fulfillments`, `write_fulfillments`, `read_assigned_fulfillment_orders`, `write_assigned_fulfillment_orders`      |
| Discounts & drafts   | `read_discounts`, `write_discounts`, `read_draft_orders`, `write_draft_orders`, `read_price_rules`, `write_price_rules` |
| Store setup          | `read_locations`, `read_shipping`, `write_shipping`, `read_content`, `write_content`                                    |

Only `read_*` scopes for the areas you use is fine too. If an automation later fails with a permission error, add the scope here, release a new version and reconnect in Famulor.

<Frame caption="Pick the Admin API scopes">
  <img src="https://mintcdn.com/ouraicall/yKC9j80hMG-IufiE/images/automations/shopify/07-select-scopes-dialog.png?fit=max&auto=format&n=yKC9j80hMG-IufiE&q=85&s=9e691ff69be57648eb8c52c8822647f8" alt="Select scopes dialog listing Admin API scopes" width="1696" height="1215" data-path="images/automations/shopify/07-select-scopes-dialog.png" />
</Frame>

Click **Release** at the bottom. In the dialog you can name the version (for example `v1`) — then confirm **Release**.

<Frame caption="Release the version">
  <img src="https://mintcdn.com/ouraicall/yKC9j80hMG-IufiE/images/automations/shopify/09-release-version.png?fit=max&auto=format&n=yKC9j80hMG-IufiE&q=85&s=9466a02bdc3ead49820d69537ad0cf70" alt="Release this new version dialog" width="1696" height="1074" data-path="images/automations/shopify/09-release-version.png" />
</Frame>

The new version is now marked **Active**.

<Frame caption="The version is Active">
  <img src="https://mintcdn.com/ouraicall/yKC9j80hMG-IufiE/images/automations/shopify/10-version-active.png?fit=max&auto=format&n=yKC9j80hMG-IufiE&q=85&s=6016f152d2fe5f953727b34946f2fe13" alt="Versions list with the new version marked Active" width="1696" height="911" data-path="images/automations/shopify/10-version-active.png" />
</Frame>

## Step 4 — Set distribution and install the app on your store

Famulor exchanges the app's credentials for an Admin API token with Shopify's client-credentials grant. Shopify only allows that once the app is **installed on the store**, and both app and store must belong to the same Shopify organization — which is the case when you create the app from your own store.

1. In the app's left menu open **Distribution** (on some accounts it is under **Home → Distribution**).
2. Choose **Custom distribution** and confirm. Custom distribution is the right choice for an app that only your own store(s) use; it needs no App Store review.
3. Enter your store's `.myshopify.com` domain, click **Generate link** and open the install link.
4. In your Shopify admin, review the requested scopes and click **Install**.

<Warning>
  Distribution can be set only once per app. Pick **Custom** — a public app would require Shopify's App Store review before any store could install it.
</Warning>

## Step 5 — Copy the Client ID and secret

In the app's **Settings** you find **Credentials**. Copy the **Client ID** and reveal and copy the **Secret**.

<Frame caption="Settings → Credentials: Client ID and Secret">
  <img src="https://mintcdn.com/ouraicall/yKC9j80hMG-IufiE/images/automations/shopify/11-credentials.png?fit=max&auto=format&n=yKC9j80hMG-IufiE&q=85&s=66c834d04f86aff6717c7b2c17ad7cac" alt="App settings page with Client ID and Secret" width="1696" height="987" data-path="images/automations/shopify/11-credentials.png" />
</Frame>

Treat the secret like a password. If you ever rotate it in Shopify, reconnect in Famulor with the new value.

## Step 6 — Connect in Famulor

1. In Famulor open **Automations → Connections** and click **Add connection**.
2. Choose **Browse apps (Beta)**, search for **Shopify** and select it.
3. Enter the **store name** (`acme` or `acme.myshopify.com` — Famulor trims it), the **Client ID** and the **Client secret**.
4. Click **Connect Shopify**.

<Frame caption="Famulor: connect Shopify with your own app">
  <img src="https://mintlify.s3.us-west-1.amazonaws.com/ouraicall/images/automations/shopify/12-famulor-connect-shopify.png" alt="Famulor connection dialog for Shopify with store name, Client ID and Client secret" />
</Frame>

Famulor validates the credentials with Shopify immediately. On success the connection appears as **ok** in the Connections list and Shopify is available in the App Catalog for every automation in the workspace.

## Troubleshooting

| Message                                          | What it means                                                             | Fix                                                                                                        |
| ------------------------------------------------ | ------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| *Shopify does not know this Client ID*           | The ID does not belong to any app, or has a typo.                         | Copy it again from Dev Dashboard → your app → Settings → Credentials.                                      |
| *Shopify rejected the client secret*             | Wrong or rotated secret.                                                  | Reveal the current secret in Settings → Credentials, or rotate it and use the new one.                     |
| *The app is not installed on this store yet*     | Step 4 was skipped, or the install link was opened for a different store. | Set Custom distribution, generate the link for this store and install.                                     |
| *This store name does not exist*                 | A custom domain or a typo was entered.                                    | Use the permanent name from Settings → Domains (`acme` for `acme.myshopify.com`).                          |
| An automation step fails with a permission error | The app version lacks a scope.                                            | Add the scope in Step 3, release a new version, then **Replace credentials** on the connection in Famulor. |

## Reconnecting and removing

* **Replace credentials:** open the connection under Automations → Connections and choose **Edit**. Enter the new Client ID and secret; Famulor replaces the stored app credentials in one step.
* **Remove:** deleting the connection also removes the app credentials from the app connector. Automations that used the connection show *Connect needed* until you connect Shopify again.
* To revoke access on the Shopify side, uninstall the app from your store or rotate the secret in the Dev Dashboard.

## Related

* [App Catalog](/automations/app-catalog) — the Shopify triggers and actions you can use
* [Automation node reference](/automations/nodes)
* [Automations overview](/automations/overview)
