Connect your Shopify store to Chatwoot using a custom Shopify app. Once connected, your team can view customer orders, payment status, and fulfillment status from the conversation sidebar.

This option is available for selected workspaces. Contact Chatwoot support if you would like it enabled.

## Before you start

* Administrator access to your Chatwoot workspace.

* Permission to create and install apps for your Shopify store.

* Access to a Shopify Partner organization in the Dev Dashboard. This setup requires a Custom distribution installation link.

You can connect one Shopify store per workspace. This integration connects order information; it does not install a live chat widget or change your subscription. Custom-app setup is unavailable for workspaces billed through Shopify.

## 1. Create your app in Shopify

1. Open the [Shopify Dev Dashboard](https://dev.shopify.com/dashboard) and select your Partner organization.

2. Go to **Apps → Create app → Start from Dev Dashboard**.

3. Name your app, for example **Chatwoot Support**, and create it.

4. Open **Versions** and create an initial version.

5. Turn off **Embed app in Shopify admin**. If Shopify requires an **App URL**, use [`https://shopify.dev/apps/default-app-home`](https://shopify.dev/apps/default-app-home) temporarily. You will replace it in step 4.

6. Release the initial version.

See [Shopify’s app creation guide](https://shopify.dev/docs/apps/build/dev-dashboard/create-apps-using-dev-dashboard) for more information.

## 2. Find your app credentials and installation link

Open your app’s **Settings → Credentials** and locate the **Client ID** and **Client secret**. Keep this page open.

Return to the app overview and find the **Distribution** card:

1. Select **Custom distribution**.

2. Enter your permanent store domain, such as `your-store.myshopify.com`, and restrict installation to your intended store.

3. Generate and copy the complete installation link.

Shopify does not let you change the distribution method after selecting it. The Distribution card is available for apps belonging to a Partner organization. If it is missing, check which organization owns your app. See [Shopify’s distribution guide](https://shopify.dev/docs/apps/launch/distribution/select-distribution-method).

## 3. Save the app details in Chatwoot

Open **Settings → Integrations → Shopify** and expand **Connect using your own Shopify app**.

* **Shopify store domain:** enter your permanent domain, such as `your-store.myshopify.com`, without `https://` or a path.

* **Client ID:** copy it from your app’s Shopify credentials page.

* **Client secret:** copy it from the same credentials page.

* **Shopify installation link:** paste the full link generated under Custom distribution. It must belong to the same app and store.

Select **Save and get setup URLs**. Chatwoot stores the client secret encrypted and does not display it again. Saving these details does not connect your store yet.

![Shopify custom app details form in Chatwoot](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCUGl4UWdjPSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--ae3604cc9efd790c96ba338999406e09ba3e5267/clipboard.png)

## 4. Finish setup in Shopify

Chatwoot now displays the callback URL, required permissions, and webhook URL for your workspace. Keep this page open.

### Set the app and redirect URLs

Create a new version in your Shopify app. Copy the callback URL displayed in Chatwoot into both **App URL** and **Allowed redirection URL(s)**.

Keep **Embed app in Shopify admin** turned off. If the form shows **Use legacy install flow**, keep it enabled for this connection flow.

Always copy the URL from your own workspace. Do not use a staging URL or an account ID from an example screenshot.

### Add the required permissions

Add these Admin API access scopes:

```
read_customers,read_orders,read_fulfillments
```

### Configure webhooks

Use the webhook URL shown in Chatwoot as the destination for `app/uninstalled` and the applicable privacy webhook subscriptions. This is a different URL from the OAuth callback.

Webhook destinations are configured separately from redirect URLs. If your Dev Dashboard does not expose subscription settings, ask the developer managing your Shopify app to configure them. Changing the Webhooks API version alone does not create subscriptions.

### Release the version

Save and release the updated version. Confirm that Shopify marks it **Active** and that it includes the URLs and permissions above.

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCUG5kUWdjPSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--ce8cdf412ae9633bdf3af08c92dc8d11b3207914/ChatGPT%20Image%20Oct%2026,%202026,%2003_16_14%20PM.png)

\
*This screenshot shows an example workspace. Copy the setup URLs from your own Chatwoot workspace.*

## 5. Connect your store

1. Return to Chatwoot and select **Connect store in Shopify**.

2. Sign in to the intended Shopify store and complete any two-factor verification.

3. Approve the installation or requested access in Shopify.

4. After authorization, return to Chatwoot. The integration page will confirm that your store is connected.

## 6. Check customer orders

Open a conversation with a contact whose email address or phone number matches the customer’s Shopify record. Expand **Shopify Orders** in the conversation sidebar.

Available orders show their total, payment status, and fulfillment status. Select an order to open it in Shopify. If you see **No orders found**, check that the contact details match a Shopify customer who has orders.

![](https://app.chatwoot.com/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBCR0xVUWdjPSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--7fbbad6132faa706fc8b82cd81dcfd9161c18113/CleanShot%202026-10-26%20at%2015.57.40@2x.png)

## Update or reset your setup

Before connecting, select **Edit app details** to update the client secret or installation link. Leave the secret blank to keep the saved value, and paste the installation link again when updating the form.

If you saved the wrong store or Client ID, select **Reset setup** and enter the correct details.

After connecting, use **Delete** on the integration page to disconnect. This also removes the custom-app configuration and credentials saved in Chatwoot.

## Troubleshooting

### I do not see the custom-app option

Contact Chatwoot support to check whether custom-app setup is enabled for your workspace.

### Shopify reports an invalid redirect URL

Copy the callback URL from Chatwoot again. Confirm that it appears in the active Shopify app version, then start a fresh connection attempt.

### Shopify requires two-factor authentication

Complete verification in Shopify, then return to Chatwoot and select **Connect store in Shopify** again.

### The app details will not save

Check the permanent store domain, credentials, and installation link. Use the complete Shopify-generated custom installation link for the same app and store.