# Connect a Shopify store to Sightkick

Your user wants Sightkick to publish pages on their Shopify store's blog. Sightkick publishes the pages, whoever writes them (Sightkick, you or your user), each on its day. About 3 minutes.

Sightkick connects through an app made in Shopify's Dev Dashboard, which only the store's owner or a staff member with Shopify's App developer role can make, so steps 2 and 3 happen in their Shopify admin. Walk them through it, or do it yourself if you work in their browser.

## 1. Connect to Sightkick

- Sightkick's MCP server is https://app.sightkick.so/mcp (streamable HTTP, OAuth). If it isn't connected yet, connect it by https://sightkick.so/connect/agent.md. Its sign-in picks your user's workspace.
- Call get_settings with view: sites. If a Shopify connection for this store is there with status connected, tell your user it's connected already and stop.
- A site has one publishing destination, so a second connection is refused. If another one is there, ask your user whether to move. Only on their yes, remove it (update_connections with action: remove), then go on.

## 2. Check the store has a blog

In the Shopify admin, Content → Blog posts. If the store has no blog, add one there (Manage blogs → Add blog).

## 3. Create the app

1. Open https://dev.shopify.com/dashboard, then Apps → Create app → "Start from Dev Dashboard". Name it Sightkick.
2. Versions → Create version. Paste these into Scopes: `read_content,write_content,read_files,write_files,write_online_store_navigation`. Untick "Embed app in Shopify admin" and leave the rest as it is.
3. Click Release, then Install app, and pick the store.
4. On the app's overview, copy its Client ID and Client secret.

A store with a custom app made in its admin before 2026 can use that app's Admin API access token (shpat_…) instead.

It is a secret: keep it out of code, commits and anything you share.

## 4. Connect

Call update_connections with action: connect_shopify, shopDomain (yourstore.myshopify.com) and clientId and clientSecret, or accessToken.

- It publishes to the blog with the handle news, else the store's first, with the store's name as the author. To let your user choose, call it with check: true first: it lists the blogs and stores nothing. Then call again with blogId and authorName.
- missingScopes in the answer means the app lacks those scopes: images stay on Sightkick's servers until your user adds them, releases a new version and reinstalls.

## 5. Test

Call update_connections with action: test and the connectionId. ok: true means Sightkick can publish.

## Tell your user

Sightkick publishes each page to their store's blog on its day. They see the connection in Sightkick under Settings → Publishing, and change or remove it there.

If a step fails, its error says what to fix. Your user can also connect by hand: Settings → Publishing in Sightkick, "Set it up yourself".
