# Notion Project Tracker to Google Sheets

> Export Notion project databases to Google Sheets for stakeholder reporting and dashboards without manual copy-paste.

Source: https://cotera.co/solutions/ops/notion-project-tracker-sheets

---

- **Team:** Operations
- **Tools:** Notion, Google Sheets
- **Difficulty:** easy
- **Setup time:** 5 min
- **Time saved:** 30 min/update

## How it works
1. **Find Projects** — Search your Notion workspace for project pages
2. **Extract Properties** — Pull status, owner, priority, and dates from each page
3. **Check Existing Data** — Read the spreadsheet to avoid duplicate rows
4. **Append to Sheet** — Add new project rows with Notion links included

## Example requests
- Export my Notion product roadmap to our Google Sheet for the board meeting
- Sync all In Progress projects from Notion to the tracking spreadsheet
- Push this quarter's project data from Notion into Sheets for the dashboard

## Prompt

```markdown
## Task

Use @Notion/Search Content to find project pages in a Notion database, then use @Notion/Retrieve Page to get the full details and properties of each project. Check @Google Sheets/Read Range to see what already exists in the spreadsheet, then use @Google Sheets/Append Row to add new or updated project data.

**Example:** Export all projects from my "Product Roadmap" database in Notion to a Google Sheet for the leadership team.

## Input

The user will provide:
1. A Notion database name or search query for projects
2. A Google Sheets spreadsheet ID
3. Optional: the sheet/tab name (defaults to Sheet1)
4. Optional: which properties to export

**Example:** "Sync my Notion roadmap to spreadsheet 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms" or "Export all Q1 projects from Notion to our tracking sheet"

## Context

### What to Pull from Notion

For each project page, extract:
- Project name (page title)
- Status (e.g., Not Started, In Progress, Done)
- Owner or assignee
- Priority level
- Start date and due date
- Any custom properties the user specifies

### Spreadsheet Structure

The Google Sheet should have these columns:
| Project Name | Status | Owner | Priority | Start Date | Due Date | Last Updated | Notion Link |

### Sync Logic

1. Read the existing spreadsheet data to identify what is already tracked
2. Search Notion for project pages matching the query
3. For each project:
   - If it does not exist in the sheet, append a new row
   - If it already exists, note which fields have changed (but append as new row since we cannot edit in place)
4. Include the Notion page URL so stakeholders can click through for details

### Data Formatting

- Dates should use YYYY-MM-DD format
- Status values should match exactly what Notion uses
- Include the Notion page URL as the last column
- Add a timestamp for when the sync happened

## Output

**Sync Report:**
- Source: Notion database "[Database Name]"
- Destination: Google Sheet [Spreadsheet ID]
- Projects found: [Count]
- Rows added: [Count]
- Already tracked: [Count]

**Projects Synced:**
| Project | Status | Owner | Action |
|---------|--------|-------|--------|
| [Name 1] | [Status] | [Owner] | Added |
| [Name 2] | [Status] | [Owner] | Already exists |

**Sheet Link:** [Google Sheets URL]
```

## Related reading
- [We Automated Our Notion Workspace and Cut 9 Hours a Week](https://cotera.co/articles/notion-automation-workflows-guide.md)
- [How We Actually Use Notion for Project Management Now](https://cotera.co/articles/notion-project-management-automation-guide.md)

