Help centre

GrabFlow attaches digital files to your Shopify products and delivers them automatically after checkout. This page covers setup, how delivery works, the day-to-day pages inside the app, and what to do when something looks wrong.

Everything below refers to the app at app.grabflow.app, which you normally open from Apps in your Shopify admin. If you get stuck, email support@grabflow.app.

Getting started

A first product is usually five to ten minutes of work, most of which is waiting for your files to upload.

  1. Install the app. Install GrabFlow from the Shopify App Store and open it from Apps in your admin. You start on the Free plan; you can change plans later on the Plans page without reinstalling.

  2. Upload your files. Go to the Files page and drag files onto the drop zone, or click it to browse. Any file type and any size is accepted, up to the storage included in your plan. Large files are uploaded in parts, so a slow or interrupted connection can simply be retried. Each file shows an Uploaded or Failed state and whether it is Attached to a product or Not attached.

  3. Attach the files to a product. Go to the Products page, choose the product you want to sell, and tick the files that buyers should receive. You can attach to a whole product or to a single variant if only one variant is digital. While you are there you can optionally set:

    • Download limit per purchase — how many times the buyer may download before the link stops working. Leave it empty for unlimited.
    • Access expires after (days) — how long the download page stays live after purchase. Leave it empty for no expiry.
    • Add license keys (one per line) — paste a list and GrabFlow hands out one key per purchase alongside the files.

    If you leave the limit and expiry empty, the defaults from your Settings page apply.

  4. Tell Shopify the product is digital. In the Shopify product editor, scroll to Shipping and untick This is a physical product. This is what makes checkout skip shipping rates and the address step for a digital-only cart, and it is easy to forget. Do this for every variant that is digital.

  5. Place a test order. Buy the product yourself (a discount code for 100% off works well) and confirm three things: the email arrives, the download page opens, and the file downloads correctly. The test order will then appear on the Orders page like any other, so you can also try the re-send and revoke actions on it.

How delivery works

Delivery is triggered by Shopify telling GrabFlow that an order has been paid. Nothing is sent for unpaid, pending or draft orders.

  1. Shopify sends the paid order to GrabFlow.
  2. GrabFlow matches each line item against your attachments. Products with nothing attached are ignored, so mixed carts of physical and digital items are fine.
  3. A download page is created for that order, along with any license keys the order is due.
  4. The delivery email goes out to the email address on the order, using your subject line, intro text, logo and colours.
  5. If auto-fulfil is on, the digital line items are marked as fulfilled in Shopify so the order does not sit in your unfulfilled queue. Physical line items on the same order are left alone.

Each order gets its own download page, branded with your store name, logo and colours, listing every file the buyer is entitled to plus their license key if you use them. The buyer can return to that page whenever they like, within whatever limit and expiry you set.

Your files are never exposed at a public web address. When a buyer clicks a file, GrabFlow generates a signed link that stops working five minutes later, so a copied URL cannot be passed around. That is also why download counts are reliable: every download goes through GrabFlow and is recorded against the order.

Managing orders

The Orders page lists every order that contained a digital item, newest first. For each one you can see:

From the same row you can:

Refunds revoke access automatically. If you refund an order in Shopify, GrabFlow revokes that order's downloads without you doing anything; restore it manually if the refund was a mistake or you decided to let the buyer keep the files.

Settings

The Settings page controls how your delivery emails and download pages look, and what defaults new attachments get. Changes apply to orders delivered from that point on.

Setting What it does
Store display name The name buyers see on the download page and in the email. Set it to whatever they recognise from checkout.
Logo URL Shown at the top of the download page and the email.
Brand color Main colour of the download page and email header.
Accent color (buttons) Colour of the download buttons. Pick something with enough contrast against white text.
Subject Subject line of the delivery email.
Intro message A short paragraph above the download links — a thank-you, usage notes, or your refund policy.
Reply-to email Where replies to the delivery email go. Use an address you actually monitor; buyers do reply.
Default download limit Applied to attachments that do not set their own limit. Empty means unlimited.
Default expiry (days) Applied to attachments that do not set their own expiry. Empty means no expiry.
Auto-fulfill digital line items When on, GrabFlow marks digital line items as fulfilled after delivery. Turn it off only if you fulfil manually for a reason.

Troubleshooting

The customer says they didn't get the email

Work through it in this order:

  1. Open the Orders page and find the order. If the email status is Failed, the message never left — check the customer's address on the order for typos, fix it in Shopify if needed, then re-send.
  2. If it was sent, ask the buyer to check their spam or promotions folder, and to search their mail for your store display name. Delivery emails often land there on the first purchase from a new store.
  3. Use Re-send. This is safe to do as many times as you need and does not consume the buyer's download limit.
  4. If it still doesn't reach them, copy the download link from the Orders page and send it to them yourself. The link works regardless of which address it was mailed to.
The order still shows as unfulfilled in Shopify

Two things to check.

The important part is that fulfilment status is cosmetic: the buyer already has their files. If an order is still unfulfilled after two hours, fulfil it manually in Shopify and let us know the order name.

An upload failed
A customer says their download link doesn't work

There are three reasons a link stops working, and all three are visible against the order on the Orders page:

One more possibility: the buyer saved a direct file URL rather than the download page. Those signed links expire after five minutes by design. Send them the download page link instead — that one keeps working.

I need to delete a file that customers have already bought

Deleting a file breaks the download links of every past order that included it, so the app warns you and asks you to confirm before it goes ahead. There is no undo — the file is removed from storage.

If you are replacing a file with a newer version rather than withdrawing it, upload the new version and attach it to the product first, then delete the old one once you are happy. Buyers who return to their download page will see whatever is currently attached to their order.

Billing and plans

Plans differ on one thing only: how much storage you get. Products, orders and download bandwidth are unlimited on every plan, including Free, and there are no overage fees.

Plan Price Storage
Free $0 1 GB
Starter $9/month 15 GB
Pro $24/month 150 GB
Scale $49/month 1 TB

Every paid plan comes with a 14-day free trial. To change plan, open the Plans page inside the app and pick the one you want; Shopify shows you the charge to approve.

Billing runs entirely through Shopify's own billing system, so charges appear on your regular Shopify invoice alongside your subscription. GrabFlow never sees or handles card details.


Contact

Questions, bugs, or something in this page that doesn't match what you're seeing — email support@grabflow.app. Including your .myshopify.com domain and the affected order name (for example #1042) usually saves a round trip.