Now inviting stores. Join the waitlist to hear RowCall call you.

Join the waitlist

Search the docs

Find a docs page

API reference

Connect a Shopify store

Preview

Make your own app in Shopify's Dev Dashboard, grant RowCall the permissions it reads with, set its privacy webhooks, and connect the store.

RowCall reads your Shopify store through an app you make in Shopify's Dev Dashboard, in your store's own organization. The app is yours: you decide what it may read, and uninstalling it ends the integration.

What you set up

Make the app, release a version with RowCall's permissions, install it, deploy its privacy webhooks, and connect it in RowCall.
  1. Make the app

    In Shopify's Dev Dashboard, in the same organization as your store, open Apps, press Create app and choose Start from Dev Dashboard. Name it RowCall and press Create.

  2. Release a version with RowCall's permissions

    Open Versions and press Create version. Set App URL to Shopify's page for apps that aren't shown in the admin, https://shopify.dev/apps/default-app-home. Paste the permissions below into Scopes all at once (Shopify takes them comma-separated), and press Release.

    read_products,read_customers,read_orders,read_returns,read_merchant_managed_fulfillment_orders,write_orders,write_merchant_managed_fulfillment_orders
  3. Install it on the store

    On the app's home, press Install app, choose your store and press Install.

  4. Set the privacy webhooks

    Shopify takes these only from the app's configuration file, so they're set with Shopify CLI. In an empty folder, link the app (choose it from the list):

    shopify app config link

    In the shopify.app.toml it writes, replace the [access_scopes] and [webhooks] sections with these lines, with your org's webhook URL from RowCall's Stores page (it's filled in there, ready to copy):

    [access_scopes]
    scopes = "read_products,read_customers,read_orders,read_returns,read_merchant_managed_fulfillment_orders,write_orders,write_merchant_managed_fulfillment_orders"
    
    [webhooks]
    api_version = "2026-10"
    
    [[webhooks.subscriptions]]
    compliance_topics = [ "customers/redact", "customers/data_request", "shop/redact" ]
    uri = "https://<rowcall>/webhooks/orgs/<your org id>/shopify"

    Then release it:

    shopify app deploy
  5. Connect the store in RowCall

    In the app's App settings, copy the Client ID and Client secret from Credentials. In RowCall, open Stores, press Connect a Shopify store and enter them with the store's myshopify.com address. RowCall checks them with Shopify before saving anything, then subscribes to the store's other webhooks and imports its data.

Permissions

PermissionRequiredWhat RowCall uses it for
read_productsRequiredProducts and variants, so calls can name what was ordered
read_customersRequiredCustomers: who to call, their phone and language
read_ordersRequiredOrders from the last 60 days, fulfillments, delivery status and refunds
read_returnsRequiredReturns and their reasons
read_merchant_managed_fulfillment_ordersRequiredWhat is on hold or ready to ship
write_ordersRecommendedTagging orders and adding notes with what a call found (later)
write_merchant_managed_fulfillment_ordersRecommendedHolding shipping until a cash-on-delivery order is confirmed (later)

When a new version of RowCall asks for a permission your store hasn't granted, the store shows Needs attention and names it. Add it to your app and release the new version; Shopify tells RowCall once you've approved it, and the notice clears.

Webhooks

You set these in your app's shopify.app.toml (step 4), all to your org's webhook URL. RowCall shows it on the Stores page; it looks like https://<rowcall>/webhooks/orgs/<your org id>/shopify.

WebhookWhat RowCall does
customers/redactForgets the shopper: their customer record, their details on orders and returns
customers/data_requestExports everything RowCall holds about the shopper, for you to send them
shop/redactDeletes all of the store's data

RowCall can only see that these are set once one arrives: each store shows when every webhook last came in.

RowCall sets these itself when it connects the store, and checks them every 15 minutes: orders, fulfillments, refunds, returns, customers and products changing, the shop's details, app/uninstalled and app/scopes_update.

Uninstalling

Uninstalling the app ends the integration. RowCall marks the store Uninstalled and deletes its data straight away: orders, customers, returns, products, history and the raw copies Shopify sent. Contacts the store created are deleted too, unless they were called (they keep their calls, without the store's name for them) or another store still links to them.

Next stepIntegrations

Other ways to connect RowCall to your store.