How it works
Alva Digital Downloads has no direct Google connection. Its CSV exports cover your history, and a Shopify Flow workflow you build adds a row for each new download or delivery. A CSV is a snapshot, so export again for fresh numbers.
Open an export in Google Sheets
1. Export the CSV
In the Alva admin, click an export at the top of the page. Dates read dd-MM-yyyy HH:mm in your store's time zone.
- Orders → Export Orders: one row per purchase, with customer, product, access status and license keys.
- Orders → Export download activity: one row per download page visit or button click. In the dialog, optional From and To days in your store's time zone limit the range; click Export.
- Products → Export catalog: one row per file, pack, link or license key pool on each product.
Alva Orders page with the Export download activity dialog open: From and To date fields filled with example dates and the Export button. Keep the page header with Export Orders and Export download activity visible behind it. No real customer data visible.
2. Import it into Google Sheets
Choose File → Import → Upload and select the CSV. Set Import location to Replace spreadsheet, or Insert new sheet(s) to keep your other tabs, and Separator type to Comma. Click Import data. Opening the CSV from Google Drive works too.
Google Sheets Import file dialog after choosing an Alva CSV: Import location set to Replace spreadsheet, Separator type set to Comma. Example file name only.
3. Check the dates
If day and month look swapped, or dates stay as text, pick a day-first locale such as United Kingdom in File → Settings and import again.
What the download activity export contains
Columns: Date, Event, Customer Email, Customer Name, Order Number, IP Address, User Agent and Source. Event is Download page opened (a visit to the download page) or File downloaded (a click on a file or ZIP button on the thank-you page, order status page, customer account or download page). Older rows can also read Admin download: you downloading your own file from the Alva admin, which Alva no longer records.
A row is a visit or a click, not a download count: don't add up rows to count downloads.
What the catalog export contains
One row per delivery item on each product. A personalized (made-to-order) product gets one personalized row plus a row for each link attached to it; its license key pools aren't listed, because personalized purchases don't receive keys. A product with nothing attached gets one row. Link URLs are never exported.
- Product title, Variant titles, Shopify product ID, Shopify variant IDs and Mapping active. Product titles come from Shopify; if Shopify is busy or the product was deleted, the export uses the title Alva last saw, or Unknown product.
- Item type, Item name, File size (bytes) (a pack shows the total of its files) and Content type.
- Buyers with access: distinct customers whose access is on, including orders still under fraud review.
- Product downloads: clicks on the product's download buttons, repeated on each of its rows, not per file. Resetting a customer's download limits lowers it, and thank-you-page downloads made before the order finished syncing aren't included.
Variant titles lists the variants an item is delivered for, or says:
- All variants: every variant of the product.
- All other variants: every variant that another mapping of the same product doesn't list.
- No variants (another mapping takes priority): this mapping delivers to no variant, because another mapping of the product wins.
- Conflict (more than one mapping covers the same variants): two or more mappings tie for the same variants.
- Blue (conflict): another mapping of the product also claims that variant, and the cell then starts with the Conflict label.
- All other variants; plus: Green: the label, then the variants this mapping also lists. Parts are separated by semicolons.
Add new rows automatically with Shopify Flow
Build the workflow yourself in Shopify Flow: Alva's Digital file downloaded or Digital purchase delivered trigger, followed by the Google Sheets Add row to spreadsheet action. Suggested columns for downloads: Date, Order, Customer email, Product, File. For deliveries: Date, Order, Customer email, Products, Files (number of files).
File is the file clicked, or Multiple files for a ZIP or multi-file button, or Unknown file when the product has no files. Products shows the ZIP's delivery name (or a generated one), not the Shopify product title, except license-key-only products, which show the product title.
1. Prepare the sheet
Create the tab first, with a header row for your columns, starting in column A.
2. Add the trigger and the action
In Shopify Flow, click Create workflow. Choose Alva's Digital file downloaded or Digital purchase delivered trigger, then add the Google Sheets Add row to spreadsheet action.
3. Connect Google Sheets in Flow
When Flow asks, sign in to your own Google account and allow it to edit spreadsheets. Alva never sees that account.
4. Fill in the action and turn it on
Paste the Spreadsheet URL and type the Tab name exactly. In Row contents (comma separated), paste the line for your workflow as one line. Each value fills one column in your header row's order, and commas are stripped from text values so they can't split a column.
Downloads workflow (Date, Order, Customer email, Product, File):
{{ "now" | date: "%Y-%m-%d %H:%M" }},{{ order.name | replace: ",", " " }},{{ order.email | replace: ",", " " }},{{ product.title | replace: ",", " " }},{{ fileName | replace: ",", " " }}
Deliveries workflow (Date, Order, Customer email, Products, Files):
{{ "now" | date: "%Y-%m-%d %H:%M" }},{{ order.name | replace: ",", " " }},{{ order.email | replace: ",", " " }},{{ productNames | replace: ",", ";" }},{{ totalFiles | round }}
Customer email uses order.email because a guest order has no customer. If a value that starts with = shows up as a formula in your sheet, add | prepend: "'" to the text values, never to Date or Files. Click Turn on workflow.
Shopify Flow editor: Alva's Digital file downloaded trigger connected to the Google Sheets Add row to spreadsheet action. Show the Spreadsheet URL, Tab name and Row contents fields filled with example values. No real customer data visible.
What your customers see
Nothing changes for customers, but your sheets hold their personal data: names, emails and, in the activity export, IP addresses and browsers. Share them only with people who need them.
Limitations
- Forward-only. No backfill: use the CSVs for anything before the workflow was on, or while it was off.
- Append-only. A refund or revoked access doesn't remove a row.
- No blank leading cells. Sheets writes each row from the first column with content.
- Google rate limits. About 60 writes a minute per account, so a very busy store can see errors in Flow's run history. Those rows may be missing; the CSVs have them.
- Resends add rows; some sales add none. A deliveries workflow adds a row for every successful download email, so resending one from the order page, the customer's resend page or Sidekick adds another row for that order. Made-to-order (personalized) products, and orders whose download email isn't sent (emails turned off or the send failed), add no deliveries row. Point-of-sale walk-in sales without a customer account add no row at all.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| Export download activity says “No download activity to export” | No visits or clicks fall between your From and To days or, with no dates set, there is no activity yet. | Widen the range, or leave both dates empty to export all activity. |
| Flow shows a 403 on the Google Sheets step | The Google account connected in Flow can't edit the sheet. | Give that account edit access, or reconnect it and allow edits. |
| Rows land in the wrong columns | Blank leading cells, or a comma inside a value: each comma starts a column. | Delete the blank cells, and add | replace: ",", " " to text values in Row contents. |
| Catalog downloads don't match the activity export | Activity rows are visits and clicks; Product downloads counts clicks and drops after a reset. | Compare against File downloaded rows only. |
Frequently asked questions
Not directly. Alva has no Google connection of its own. Use the CSV exports for your history, and a Shopify Flow workflow you build yourself for new downloads and deliveries.
No. All three exports and Alva's Flow triggers work on every Alva Digital Downloads plan, including Free.
Each row is a download page visit or a download button click, so one buyer can make several rows. Filter Event on File downloaded to count clicks.
No. Links and license key pools appear by name only. The keys assigned to each order are in the orders export.
See also
Was this helpful?
Last updated 2026-10-29