---
title: "Push Ultimate Member exports into Google Sheets"
date: 2026-08-06
modified: 2026-08-06
author: "userelements_wh8sr3"
url: "https://www.userelements.com/ultimate-member-export-to-google-sheets/"
markdown_url: "https://www.userelements.com/ultimate-member-export-to-google-sheets.md"
type: post
excerpt: "Want your Ultimate Member list to land in a live Google Sheet — for ops dashboards, marketing handoffs, or shared […]"
categories:
  - "Ultimate Member"
---
Want your Ultimate Member list to land in a live Google Sheet — for ops dashboards, marketing handoffs, or shared reporting — without downloading files by hand?

**UM Export Pro** can push a scheduled CSV export straight into Google Sheets. Connect a Google Cloud service account once, pick a spreadsheet and tab per preset, and each run replaces the sheet data starting at cell **A1**.

---

## Free vs Pro — what you need

CapabilityFreeProExport members to CSV / downloadYes (CSV, max 2,000 rows)YesScheduled automatic deliveryNoYesPush export into **Google Sheets**No**Yes — required**Deliveries page (service account)NoYesSheets sync format—**CSV only** (not Excel .xlsx)**Bottom line:** Google Sheets delivery is **Pro-only**. Free can export CSV you paste into Sheets manually; Pro can update the spreadsheet on a schedule.

Upgrade: [UM Export Pro](https://www.userelements.com/ultimate-member-export)

---

## How it works

1. You connect a Google **service account** under **UM Export → Deliveries**.
2. You share your Google Spreadsheet with that service account email as **Editor**.
3. You save an export preset and enable **Update a Google Sheet** on the schedule.
4. On each run, Pro exports matching members to CSV, then writes all rows into the chosen tab from **A1** (header + data).

**Important:** Each successful sync **replaces** the values written from A1 with the latest export. Do not use the same tab for manual notes you want to keep — use a dedicated tab (or spreadsheet) for UM Export.

---

## Part 1 — Connect Google Sheets (one-time)

### 1. Create a Google Cloud service account

1. Open [Google Cloud Console](https://console.cloud.google.com/).
2. Create or select a project.
3. Enable the **Google Sheets API** for that project.
4. Go to **IAM &amp; Admin → Service Accounts** → create a service account.
5. Create a JSON key and download the key file.

You only need Sheets write access for this integration (the plugin requests the `spreadsheets` scope).

### 2. Paste the JSON in WordPress

1. In WordPress, open **UM Export → Deliveries**.
2. Paste the full service account JSON into **Service account JSON**.
3. Click **Save delivery settings**.
4. The page should show the **Service account email** (looks like `name@project.iam.gserviceaccount.com`).
5. Use **Test connection** → **Test Google Sheets auth** to confirm the key signs in successfully.

> **📸 Screenshot 1 — Deliveries**  
> Deliveries page with service account JSON saved and the service account email displayed.

**Optional (agencies / locked sites):** define the JSON in `wp-config.php` instead of storing it in the database:

```
define( 'UM_EXPORT_GOOGLE_SERVICE_ACCOUNT_JSON', '{ ... full JSON ... }' );
```

### 3. Share the spreadsheet

1. Create or open the target Google Sheet.
2. Click **Share**.
3. Add the **service account email** as **Editor**.
4. Copy the **Spreadsheet ID** from the URL:

```
https://docs.google.com/spreadsheets/d/THIS_IS_THE_SPREADSHEET_ID/edit
```

Note the **tab name** you want updated (default in the plugin is `Sheet1`). Create a dedicated tab such as `UM Members` if you prefer.

---

## Part 2 — Schedule the export into Sheets

1. Go to **UM Export → Export**.
2. **Step 1:** set filters (role, status, dates, Woo/FluentCRM rules, etc.).
3. **Step 2:** choose columns (Email, Name, Role, custom fields…).
4. **Step 3:** enter a preset name and click **Save preset**.
5. Expand **Send this member list automatically** and enable the schedule.
6. Set **File type** to **CSV** (required for Google Sheets).
7. Under destinations, check **Update a Google Sheet**.
8. Paste the **Spreadsheet ID** and set the **Tab name**.
9. Choose frequency (every day / every hour / once a week).
10. Optional: also email yourself a download link as a backup.
11. Save the preset, then click **Send now** to test immediately.

> **📸 Screenshot 2 — Schedule panel**  
> “Update a Google Sheet” checked, Spreadsheet ID + tab name filled, file type = CSV.

After a successful run, open the sheet — you should see headers in row 1 and member rows below. Check **Activity** on the Export page for delivery status pills (Google Sheets success/failure).

---

## CSV vs Excel for Sheets

FormatGoogle Sheets destinationCSVSupported — required for Sheets syncExcel (.xlsx)Not supported for Sheets — use email or Dropbox insteadIf the schedule format is Excel, the Google Sheets destination will not sync that run as sheet cells. Keep the scheduled file type on **CSV** when Sheets is enabled.

---

## Useful patterns

### Daily approved members board

1. Filter: Account status = Approved.
2. Columns: ID, Email, Name, Role, Registered Date.
3. Schedule: Every day → CSV → Google Sheet tab `Approved`.

### Delta sync (only new/updated members)

1. Enable **Only new or updated members** on the schedule.
2. Pro includes people who joined or updated their profile since the last successful send.
3. Best for CRM/ops sheets where you append elsewhere — remember this destination still **replaces from A1** on the target tab, so use a dedicated “delta” tab if you need a full overwrite of only the latest changes.

### Marketing + ops share one workbook

- Tab `All members` — full daily CSV sync
- Tab `Inactive 90d` — separate preset with inactivity filter
- Keep human analysis on other tabs the plugin never touches

---

## Security notes

- Treat the service account JSON like a password. Prefer `wp-config.php` on production.
- Share only the specific spreadsheet(s) the service account needs — not your whole Drive.
- Use a dedicated Google Cloud project for WordPress integrations when possible.
- Scheduled download links (if you also email a link) expire in about **24 hours**; the Sheet itself stays updated until the next run.

---

## Troubleshooting

IssueFix“Update a Google Sheet” is disabled / asks to connectOpen **UM Export → Deliveries**, paste valid JSON, save, then Test connection.Permission / forbidden errorsShare the spreadsheet with the **exact** service account email as **Editor**. Enable Sheets API on the GCP project.Wrong spreadsheet updatedDouble-check Spreadsheet ID from the URL (`/d/…/edit`).Wrong tab / “Unable to parse range”Tab name must match exactly (case-sensitive), e.g. `Sheet1` vs `UM Members`.Sheet not updating on Excel scheduleSwitch file type to **CSV**.Old rows still visible below new dataEach run writes from A1 for the new size. If a previous export had more rows, clear the tab once or use a fresh tab so leftover cells don’t confuse readers.Empty export skippedIf filters match zero members, delivery is skipped. Widen filters or check Activity.No Google option at allYou’re on Free — upgrade to Pro.---

## Quick checklist

1. Pro active → **Deliveries** → service account JSON → Test auth
2. Share Sheet with service account email (Editor)
3. Export preset → schedule → **CSV** → Update a Google Sheet
4. Spreadsheet ID + tab name → Save → **Send now**
5. Confirm rows in Sheets + success in Export Activity

Get Google Sheets delivery: [UM Export Pro](https://www.userelements.com/ultimate-member-export)
