Orders9 min read

Export Shopify Orders Automatically

How to export Shopify orders automatically, which options exist, and how Columna exports orders to CSV or XLSX with line-item properties.

In this guide
  1. How do I export Shopify orders automatically?
  2. What you probably want
  3. Option 1: Shopify’s manual order export
  4. Option 2: Exporting a report
  5. Option 3: Shopify Flow on a schedule
  6. Option 4: An app or an integration
  7. Designing the schedule so it doesn’t drift
  8. Which option fits
  9. Export orders to CSV or XLSX with Columna
  10. Which setup fits which team?
  11. Checklist
  12. FAQ
  13. Where Columna: Order Export & Sheets fits

To export Shopify orders automatically instead of copying order data out by hand, you can use Shopify’s own order and report exports, a scheduled Shopify Flow workflow, or an app or integration that builds the file for you. This guide covers each of those options, what you get from it and where it stops.

Shopify’s own tools only go part of the way. Shopify can run a workflow on a schedule and can email you order data, but its built-in exports are manual. Getting a proper file into Google Drive, an SFTP server or an accounting system on a schedule needs an app or an integration. This guide explains where each tool stops, so you can pick the right one before you build anything.

How do I export Shopify orders automatically?

  1. Write down what the file needs: how often, which orders, which columns and where it goes. The table below lists the usual choices.
  2. For a short list of orders by email, build a Shopify Flow workflow with the Scheduled time trigger, Get order data and Send internal email.
  3. For order data sent to your own endpoint, use Send HTTP request in the same workflow, on the Grow, Advanced or Plus plan.
  4. For a CSV or XLSX file delivered on a schedule, use an app with scheduled exports or an integration that reads orders through the Admin API, builds the file and delivers it.
  5. If a file you download each period is enough, run Shopify’s order export or a report export, or save your columns as a template in an export app so each run is the same.
  6. Make failures visible and compare the first few runs with a manual export.

What you probably want

Most recurring export requests look like this:

Part Typical choice
Frequency Daily, weekly or monthly
Window Orders created (or paid) in the previous day, week or month
Format CSV or Excel with fixed columns
Destination An email inbox, a Google Drive folder, an SFTP server, or an accounting or ERP system
Owner Someone who notices when a run fails

Keep that table in mind. Each Shopify tool covers some rows and not others.

Option 1: Shopify’s manual order export

The order export in the Orders page is the starting point:

  1. Sort and filter your orders.
  2. Click Export.
  3. Choose which orders: up to 50 orders or the current page, or orders by date.
  4. Choose Export orders for order details, or Export transaction histories for transactions only.

Exports of up to 50 orders, or the current page, download to your device. Exports of more orders, or by date, are emailed as a CSV to you and the store owner.

Shopify’s help page describes no way to schedule this. It is a manual export each time. If you want to make the manual run easier, our guides to exporting Shopify orders to Excel and one row per line item cover the details. To turn each emailed CSV into a sortable .xlsx in one step, open it in the free Shopify order CSV to Excel converter.

Option 2: Exporting a report

In Analytics > Reports, you can export a report from its menu. Shopify lists CSV, XML, JSON Lines and Apache Parquet as formats that most reports support, and the file is saved to your downloads folder.

Reports are the better source when you need totals rather than order rows, for example sales by day for your accountant. Shopify order export for accounting explains when to use reports instead of the order export.

Shopify’s page on exporting reports describes only manual exports. It says nothing about scheduling or emailing a report automatically.

Option 3: Shopify Flow on a schedule

Shopify Flow is a free Shopify app on the Basic, Grow, Advanced and Plus plans. It is the only built-in tool here that runs on a schedule.

The pieces

  • Scheduled time trigger: starts a workflow at a set time and can repeat every given number of days, weeks or months. You choose the weekday for weekly runs and the day of the month for monthly runs. It runs at most once every 10 minutes.
  • Get order data: fetches orders matching a query, for example on updated_at. It returns up to 100 orders per run.
  • Send internal email: sends an email from your store’s sender address to one or more addresses. Shopify’s example loops over the orders with Liquid to list each order’s name in the message.
  • Send HTTP request: sends a request to a web server. Shopify says it is only available on the Grow, Advanced and Plus plans. It waits up to 30 seconds for a response and retries for up to 24 hours on error codes.

What it can do

A weekly workflow can wake up on Monday morning, get last week’s orders and email a list to your team, or post them to an endpoint you control. For a short daily digest of unfulfilled or flagged orders, that is often enough. Our order alerts guide shows a similar pattern for chat.

Where it stops

  • 100 orders per Get order data action. A busy store’s weekly export will not fit.
  • No file. Shopify’s pages on Get order data and Send internal email do not mention CSV files or attachments. You get the data in the body of an email or request, not a spreadsheet.
  • No Google Drive or SFTP step. Flow can call a URL, but something on the other end has to receive the data and write the file.
  • No HTTP request on Basic.

For the full comparison, see Shopify Flow vs a custom app.

Option 4: An app or an integration

To get a real file to a real destination on a schedule, you need code that runs outside your browser. That can be a third-party app that supports scheduled exports, a connector platform, or a small integration of your own. All of them do the same work underneath.

How it works

  1. A timer starts the job, for example every day at 06:00 in the store’s time zone.
  2. The job reads orders through the Admin GraphQL API. For large exports, Shopify’s bulk operations run the query on Shopify’s side and return a JSONL file. The download URL expires after one week, and completion is signalled by the bulk_operations/finish webhook or by polling.
  3. The job builds the file: picks the columns, formats dates and money, and writes CSV or XLSX.
  4. The job delivers the file to email, a Drive folder, an SFTP server or an accounting system’s API.
  5. The job records the run: which window it covered, how many orders, and whether delivery succeeded.

Access to older orders

By default an app can read only the last 60 days of orders. Shopify’s access scopes reference says the read_all_orders scope, which requires Shopify’s approval, gives access to all relevant orders. A daily export does not need it. A rerun of last year’s exports does.

Designing the schedule so it doesn’t drift

Most problems with recurring exports are not technical. They come from vague definitions.

Pick one date field

“Last week’s orders” can mean created, paid, fulfilled or updated. Pick one and write it down. Created date is the usual choice for operations. For accounting, read three views of the same money before you decide.

Use closed windows

Export whole days or weeks that have already ended, such as Monday 00:00 to Sunday 23:59 in the store’s time zone. Do not export “the last 24 hours” from whatever time the job happens to run. Closed windows let you rerun a period and get the same answer.

Decide what happens to late changes

Orders change after export: refunds, edits, cancellations. Decide whether the recipient gets a correction file, or whether a later report picks up refunds in the month they happen.

Name files by period

orders-2026-10-05_2026-10-11.csv tells the reader what is inside. export (7).csv does not.

Make failure visible

A schedule that fails silently is worse than a manual export, because nobody notices the gap. Send an alert when a run fails, and an alert when a run returns zero orders on a day you would expect some. Our integrations checklist covers retries, duplicates and monitoring.

Treat the file as personal data

Order exports usually contain names, emails, phone numbers and addresses. Send only the columns the recipient needs, prefer a shared folder with access control over email attachments, and decide how long files are kept.

Which option fits

Need Fits
A one-off or monthly file you check by eye Manual order export or report export
A short daily email listing a few orders Flow: Scheduled time, Get order data, Send internal email
Order data posted to your own endpoint Flow with Send HTTP request (Grow, Advanced or Plus)
A CSV or XLSX file delivered on a schedule An app with scheduled exports, or an integration
Data written to an accounting or ERP system An integration; see ERP and 3PL integration

Export orders to CSV or XLSX with Columna

Columna: Order Export & Sheets exports Shopify orders to CSV or XLSX with line-item properties, such as engraving text, gift messages and upload links. The export is processed in your browser. It is made for shops that hand orders to production, fulfilment or accounting, so the people who make, pack or book an order get its details in a file instead of reading each order. See the Columna: Order Export & Sheets app page for the columns and how an export works.

Which setup fits which team?

Team What they need in the file
Production One row per line item, with each line-item property (engraving text, gift message, upload link) in its own column
Fulfilment The items, quantities and shipping address, without prices or customer emails when the file goes to an outside partner
Accounting One row per order with totals, taxes, discounts and refunds, for a closed period and one agreed date field

Checklist

  1. Write down the frequency, window, date field and time zone.
  2. List the exact columns the recipient uses.
  3. Choose the destination and who can access it.
  4. Check whether Flow’s 100-order limit and lack of files rule it out.
  5. If you need files, choose an app with scheduled exports or plan an integration.
  6. Set up failure and zero-order alerts.
  7. Run the first few periods in parallel with your manual export and compare totals.

FAQ

Can Shopify export orders automatically every day?

Not as a file. Shopify’s order export and report exports are manual. Shopify Flow can run on a schedule and email or post up to 100 orders per Get order data action, but it does not produce a CSV.

Can Shopify Flow attach a CSV to an email?

Shopify’s pages for the Get order data and Send internal email actions do not mention CSV files or attachments. You can list orders in the email body with Liquid.

Can I send orders to an SFTP server or Google Drive without an app?

Not with Shopify’s built-in tools. Flow’s Send HTTP request can call a URL on the Grow, Advanced and Plus plans, but something on the other end must receive the data and write the file. That is an app or a small integration.

Why does my integration only see two months of orders?

By default apps can read the last 60 days of orders. Access to older orders needs the read_all_orders scope, which requires Shopify’s approval.

Where Columna: Order Export & Sheets fits

Columna: Order Export & Sheets is on the Shopify App Store. When you run an export in the app, it builds the CSV or XLSX file in your browser from a saved column template and saves it to your device. If a weekly or monthly export with the same columns every time is enough, saved templates take most of the work out of it. For short digests, Flow is enough; for files delivered elsewhere, compare the options above.