• Shopify

Shopify Finance Sync Agent

The LinkyFlow Shopify Finance Sync Agent keeps a normalised copy of one Shopify store's finance data: orders, transactions, refunds, Shopify Payments payouts and balance transactions, and disputes. It reads the history once, then what changed every hour, and keeps one row per item, with gross, tax, fee and net apart, in the currency the source states them in. It is read-only: it never changes anything in Shopify.

Launch agent

Sign in or create your LinkyFlow account, then set this agent up.

Shopify Finance Sync AgentShopify store → LinkyFlow Finance sync agent → Finance rowsSOURCEShopify storeOrders, transactions, refunds,payouts, balance transactions,disputesLINKYFLOWFinance sync agentEvery hour · read-only · one rowper itemOUTPUTFinance rowsGross, tax, fee, net, currency andthe ids that tie them togetherShopify Finance Sync AgentShopify store → LinkyFlow Finance sync agent → Finance rowsSOURCEShopify storeOrders, transactions, refunds, payouts,balance transactions, disputesLINKYFLOWFinance sync agentEvery hour · read-only · one row per itemOUTPUTFinance rowsGross, tax, fee, net, currency and the idsthat tie them together

Reads

  • The whole history once, through Shopify's bulk operations where the read allows it
  • Then what changed, every hour, from where it stopped
  • A source it may not read is reported and does not stop the others

Keeps

  • One row per item, however often it is read
  • Gross, tax, fee, net and currency apart
  • A column the source does not state stays empty

Ties together

  • The order, payout, transaction, refund and dispute ids of each row
  • The payment processor's reference of a transaction
  • Where and when each row was read

Examples

What the agent returns in real situations

  1. 1. A movement on the balance

    SYNCED

    Gross
    120.00 EUR
    Fee
    3.50 EUR
    Net
    116.50 EUR

    One row, tied to its order and its payout. Read again unchanged, it stays one row.

  2. 2. A scope the store did not grant

    NOT_GRANTED

    Source
    Shopify Payments payouts
    Scope
    read_shopify_payments_payouts

    That source is reported and asked again once the connection's scopes are synced. The others go on.

  3. 3. A store without Shopify Payments

    NOT_ON_SHOPIFY_PAYMENTS

    Source
    Shopify Payments payouts
    Rows
    0

    The run says the store has no such rows, rather than leaving an empty list to explain itself.

ResultWhat it means
SYNCEDThe source was read to the end of its window. Its rows are up to date as of this run.
IN_PROGRESSThe source is not finished, and nothing is wrong: Shopify is still preparing a bulk read, or the run reached its time budget. The next run carries on where this one stopped.
THROTTLEDShopify or the plan's quota said not now. The source keeps its place and is read again by a later run.
DEFERREDThe source was not asked in this run: its last read failed, and it is tried again after a growing delay.
NOT_GRANTEDThe connection lacks the Shopify scope for this source. It is asked again once the connection's scopes are synced.
NOT_ON_SHOPIFY_PAYMENTSThe store has no Shopify Payments account, so it has no such rows.
READ_FAILEDThe read failed. It is retried after a growing delay, and the rows already read stand.

What you can do with the results

From result to action

Open in Excel

Review the current finance rows, the runs and the detail of a past run in a live workbook.

Run again now

Start a run on demand, after granting a scope for instance.

Ask an assistant

Ask ChatGPT or Claude where each source stands, or to list what a run found.

Read-only

This agent changes nothing at Shopify: it has no write of any kind. It stores what the store states and computes no amount. It holds no document: Shopify publishes no billing invoice as a PDF, and none is invented.

  • Read-only
  • Runs every hour
  • Runs on demand
  • Incremental: re-reads only what changed
  • Live Excel workbook views
  • ChatGPT and Claude, via MCP

What is the Shopify Finance Sync Agent?

It keeps one Shopify store's finance data as rows you can read in a sheet: one row per order, transaction, refund, Shopify Payments payout, balance transaction and dispute, with the money apart and the ids that tie each row to the others.

What it reads

The first run reads each source's whole history: through Shopify's bulk operations for orders, transactions, refunds and disputes, by pages for the payouts and the balance transactions. How far back orders go depends on what Shopify serves the connection: 60 days without the read_all_orders scope. Every run after that reads what changed since the last one, with a small overlap, so an update that lands late is not missed.

What it does not do

It writes nothing at Shopify, and it computes no amount. It decides nothing about your sales: that is the work of a reconciliation. It holds no PDF, because Shopify publishes none for its billing invoices.

Does it reconcile my sales?

No. It keeps the rows a reconciliation needs, with the amounts apart and the ids that tie them together. It decides nothing, and it opens no case.

Why is a fee or a net empty on some rows?

Because that source does not state it. A balance transaction states amount, fee and net; an order states its total and its tax; a payout states gross and net. An empty column means Shopify did not say, never zero.

Which currency are the amounts in?

The one the source states. On an order, a transaction and a refund, what the buyer was charged, with the store's own currency beside it when it differs. On a Shopify Payments movement, the currency of the balance. Nothing is converted.

How often does it run?

Once per hour, and on demand. A payout's status, the payout a movement joins and a dispute's outcome change with no date to filter on, so those are read again once a day.

How long does the first run take?

On a small store, minutes. On a large one, several hours: Shopify prepares each bulk read in its own time, one at a time per store, and the agent looks again at the next run. In the meantime a bulk export you start on the same store waits for it, and the reverse.

Does it hold invoices or PDFs?

No. Shopify publishes no billing invoice as a document, so the agent holds none and invents none.

How long are the rows kept?

A row not changed for 180 days expires. The detail of each run is kept for 30 days.

I am a Shopify Partner. Does it read my earnings?

With a Shopify Partner connection, yes: your transactions, and the events that state money, as rows of the same shape. It is optional, and the store's rows do not depend on it.

Launch this agent

Add it to your LinkyFlow account in a few steps. It starts running as soon as its setup is complete.

Launch agent