# How to turn meeting notes into a table

> For anyone who keeps copying facts out of meeting notes into a spreadsheet: how to turn the notes of Google Meet and Microsoft Teams calls into a table, by hand or automatically. Deciding what one row stands for, writing columns that say what belongs in them, keeping a source for every value, and setting up a TrackHeros tracker that fills the table after each meeting.

Canonical: https://trackheros.com/blog/turn-meeting-notes-into-a-table/  
Author: Sami Kanafani  
Updated: 2026-11-04

**In short:** To turn meeting notes into a table, decide what one row stands for, give each column a type and a one-line rule for what belongs in it, and record the meeting each value came from. TrackHeros does this for Google Meet and Microsoft Teams calls: a tracker reads each meeting in scope and proposes rows and values, each citing its transcript line, for you to review.

Meeting notes are good at recording a meeting and poor at answering the question you actually have, which is usually "where does this stand now?". This guide is for freelancers, consultants and project leads who keep copying facts out of the notes of Google Meet and Microsoft Teams calls into a spreadsheet. It covers deciding what a row is, writing the columns, keeping the table honest by hand, and having a TrackHeros tracker fill it for you.

## Why turn meeting notes into a table?

Because a table answers "what is the current value?" at a glance, and notes do not. Notes are organised by meeting; the facts you look up, such as a deadline, a cost or a candidate's salary expectation, are spread across many of them.

A table turns twelve sets of notes into one row per thing you care about, with the latest value in each cell. It is also the only format you can sort, filter and compare: which requests are still pending, which candidates are at the final stage, which items nobody has mentioned in a month.

## What should one row stand for?

One thing you keep asking about, or one meeting. Pick the noun before the columns: a change request, a candidate, a feature, a deal, a decision, a risk. If you cannot name it in two words, the table is trying to be two tables.

If the meeting itself is the record, as with a standup or a one-to-one, make one row per meeting instead. The difference matters more than any column choice, and it has a guide of its own: [one row per meeting, or one table that updates](/blog/one-row-per-meeting-or-one-table-that-updates/).

## How do you write the columns?

Give each column a name, a type and one sentence that says what belongs in it and what does not. The sentence is what stops two people, or a person and a model, filling the same column differently.

Here are the columns for a table of change requests, one row per request:

| Column            | Type                 | What belongs in it                                                                 |
| ----------------- | -------------------- | ---------------------------------------------------------------------------------- |
| Request           | Text (names the row) | A change or addition the client asks for, by a short name; not bugs in agreed work |
| Requested by      | Person               | Who asked for it                                                                   |
| Date requested    | Date, keep the first | The meeting where it was first asked for; later mentions do not move it            |
| In original scope | Yes / no / unclear   | Unclear unless someone says which                                                  |
| Estimated effort  | Text                 | The estimate as said: "two days", "a sprint"                                       |
| Cost impact       | Money                | Extra cost quoted, with its currency                                               |
| Decision          | Status               | Pending, approved, rejected or deferred                                            |

Notice the "not" clauses. "Not bugs in agreed work" keeps defects out of the change log, and "unclear unless someone says which" stops a hopeful guess about scope. More on wording in [design the columns of a meeting tracker](/blog/design-the-columns-of-a-meeting-tracker/).

## How do you turn meeting notes into a table by hand?

Open the notes after each meeting, find every mention of a row's subject, and update the table with the value and where it came from. Five habits keep it usable:

1. **One table per client.** Never one sheet with every client's rows in it.
2. **A source on every value.** The meeting and roughly when: "Weekly call, 12 March, 00:14". Without it, nobody can check a cell.
3. **Do not overwrite.** When a value changes, move the old one to a history tab with its date. The change is often the most useful fact.
4. **Leave a cell empty if nothing was said.** A blank is a question for the next meeting; a guess is an error with your name on it.
5. **Update the same day.** A table a week behind is a table nobody trusts.

## Why do hand-kept tables drift?

Because every habit above costs time after every meeting, and the time runs out first on a busy week. The table falls behind, someone overwrites a date without keeping the old one, and the source column fills with "weekly call" because the timestamp took too long to find.

The usual result is a table that looks authoritative and is three meetings stale. That is worse than no table, because people quote it. The other common failure is the shared sheet: two clients' rows in one file, one filter away from being pasted into the wrong client's status report, which is why [keeping client notes separate](/blog/keep-client-meeting-notes-separate/) applies to tables too.

## How does TrackHeros turn meeting notes into a table automatically?

With a tracker: a table that fills itself from your meetings. TrackHeros is an AI meeting notetaker that connects every Google and Microsoft calendar you hold, recognises close to 100 spoken languages on its own, writes the notes in nine of them, and keeps every client's notes in a sealed workspace of its own. After each Google Meet or Microsoft Teams meeting in scope is summarised, it reads the meeting and proposes new rows and changed values, each pointing at the transcript lines it came from.

1. **Start it.** Pick one of six templates (Change requests is one), describe what you want in a sentence and edit the draft, or start blank. [Tracker templates for freelancers](/blog/tracker-templates-for-freelancers/) lists them.
2. **Preview it** on one recent meeting before saving, to see what it would have taken.
3. **Choose the meetings**: all your clients, one client, chosen recurring meetings, specific meetings picked before they happen, or only meetings you send it by hand.
4. **Fill in the past.** When you create it, you can have it read your recent past meetings in scope, oldest first.
5. **Review.** New and changed values wait in a review queue by default. Accept, edit then accept, reject, or accept all from one meeting.

The five habits are built in. Each tracker belongs to one client's workspace, every value records its meeting, speaker, moment and words, old values stay in the cell's history, a value with no transcript line behind it is dropped, and every meeting in scope is read without anyone having to remember.

The meeting's language does not change the columns. A call held in Spanish and one held in Hindi are read from the same kind of transcript as an English one, and text values are written in the meeting's notes language; the [languages page](/languages/) lists what is recognised.

## What does the table look like after a few meetings?

Like the one you would have kept by hand, with a history behind every cell. Here is a fintech client's change requests after four weekly calls on Thursdays in March 2026:

| Request                  | Requested by | Date requested | In original scope | Estimated effort | Cost impact | Decision |
| ------------------------ | ------------ | -------------- | ----------------- | ---------------- | ----------- | -------- |
| CSV export of statements | Maria        | 5 March        | No                | Three days       | 1,800 EUR   | Approved |
| Second currency          | Maria        | 12 March       | Unclear           | A sprint         |             | Pending  |
| Audit log for admins     | Tom          | 19 March       | Yes               |                  |             | Approved |

The empty cells are deliberate: nobody quoted effort for the audit log, and nobody priced the second currency. When the call on 26 March mentions the CSV export again, it updates the same row; it does not add a second one. Open the Decision cell and you see when it went from pending to approved, who said so, and the words used.

## Can the table go into Excel or Google Sheets?

Yes, as a download. The current table and its full history export as CSV, which opens in Excel or Google Sheets; export is not on every plan, and [pricing](/pricing/) says which. The download is a copy, not a live link, so the spreadsheet does not update itself afterwards.

[Meeting notes to a spreadsheet, automatically](/blog/meeting-notes-to-spreadsheet-automatically/) covers the export in more detail, and the [trackers page](/features/trackers/) describes the rest of the feature.

## Frequently asked

**Should I use one table for all my clients?**

Not one table with every client's rows mixed together. Keep one table per client, or in TrackHeros give one tracker all your clients as its scope: it keeps a separate table for each client and shows them together with a client label on every row, never merging two clients' rows.

**What if the notes say nothing about a column?**

Leave the cell empty. An empty cell is a question you can ask at the next meeting; a guessed value is a wrong answer nobody questions. TrackHeros trackers fill only what the meeting actually says.

**Can I add rows the meetings never mentioned?**

Yes. In a TrackHeros tracker you can add a row yourself and edit any cell. An edited cell is protected: a later change a meeting proposes for it waits for your review.

---

TrackHeros is in early access: https://trackheros.com/#early-access
