Guide
How to track what the client promised: access, assets and sign-off dates
For freelancers, consultants and agencies whose projects wait on the client: how to keep every access grant, file and sign-off the client promised on Google Meet or Microsoft Teams as one row each, with an owner, a due date and a status that TrackHeros updates after each meeting, the history of every slipped date with the words used, and how to use the table before the weekly call.
By Sami Kanafani · Updated 4 November 2026 · 6 min read
Client projects rarely stall on the work. They stall on the staging access that was coming on Friday, the logo files someone was going to send, and the sign-off that needed one more person. This guide is for freelancers, consultants and agencies who meet their clients on Google Meet or Microsoft Teams and want every promise the client made kept as a row, with an owner, a due date and a status that update themselves after each call.
Why do client commitments stall projects so quietly?
Because nobody owns chasing them. The client promises access in passing, you say thanks, the call moves on, and the promise lives only in that meeting's notes. A week later it is "nearly sorted", and the date moves without anyone writing the new one down.
Each slip is small and friendly. Together they are why the go-live moved, and when the client asks what happened, the answer is scattered across five sets of minutes.
Why not just use the action items?
Action items are listed meeting by meeting. TrackHeros already writes them after every call, with the owner as heard and the due date as said, and the Action items page can show what clients owe you as well as what you owe them. That is the right list for "what came out of Tuesday's call".
A promise is different: it is made once and then discussed again and again. Repeated a week later with a new date, it can turn up as a second action item, and nothing connects the two. A tracker keeps one row per promise and updates it, so the current date sits in the table and every earlier one sits in its history. Tracker or action items sets the two side by side.
What columns does a client-commitments table need?
Six are enough. 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. A tracker is a table that fills itself from those meetings, and each column has a type and a one-line description that TrackHeros reads to decide what goes in it.
| Column | Type | Description written for TrackHeros |
|---|---|---|
| Commitment | Text, names the row | Something the client's side said they would give us: access, files, content, data, a sign-off or a decision. Not work we promised them |
| Owner | Person | The person on the client's side said to be providing it. Empty if nobody was named |
| Due | Date | The date it was promised for, when a date is stated. Not durations |
| Status | Status | Waiting, Partly received, Received or No longer needed; the last two marked final |
| Holds up | Text | What on our side is waiting for it, as said |
| Last discussed | Automatic | The last meeting that mentioned the row |
The "not work we promised them" clause in the first description matters most. Without it, your own commitments can end up in the table beside the client's.
How do you start the table?
Describe it in a sentence, such as "track what the client promised to give us: access, files and sign-offs, who is providing each and by when", and TrackHeros drafts the columns for you to edit. You can also start blank and add them yourself. A table you design yourself, rather than one of the six templates, is a plan feature; pricing says which plans include it.
Before saving, preview the definition on one recent meeting to see what it would record. When you create it, you can have it read your recent past meetings in scope, oldest first, so promises made before today are already in the table with their history.
What does the table look like after a few weeks?
One row per promise, each showing where it stands now. Here is a retail client's table in mid-February:
| Commitment | Owner | Due | Status | Holds up |
|---|---|---|---|---|
| Staging access | Priya | Monday 16 February 2026 | Waiting | Deploying the checkout |
| Logo files and fonts | Marc | Received | Design review | |
| Sign-off on the checkout design | Priya | Friday 20 February 2026 | Waiting | Front-end build |
| Test card numbers | Waiting | End-to-end tests |
Empty cells are deliberate. Nobody said who would send the test card numbers or when, so the row says so, and that gap is exactly what to raise at the next call. A value is kept only when it points at a transcript line, and the model is told to fill only what the meeting actually says.
What happens when the client's date slips?
The new date becomes current and the old one moves into the cell's history. Every value records the meeting it came from, who said it, when in the meeting, and the words they used:
| Meeting | Due | Words used |
|---|---|---|
| Weekly call, Monday 2 February 2026 | Friday 6 February 2026 | Priya: "You'll have staging access by Friday." |
| Weekly call, Monday 9 February 2026 | Monday 16 February 2026 | Priya: "IT needs one more approval, so Monday the sixteenth." |
A link opens the transcript at that moment, and the recording jumps there. The quote is rebuilt from the stored transcript, never written by the model. If a later call repeats the same date, it is recorded as a confirmation, not a change. If an older meeting is read after a newer one, its date lands in the history, labelled as older, and the table keeps the newer date.
By default, every new or changed value waits for you in a review queue first: accept, edit then accept, or reject.
How do you use the table before the weekly call?
Open it five minutes before. Filter to rows that changed recently and rows still waiting, and read the open ones in order of what they hold up. Each one gives you a specific, fair question: "On the 9th you mentioned staging access by Monday the 16th. Is that still the plan?"
Quoting the client's own words with the date is not an accusation; it is a reminder that both sides heard the same thing. The weekly client status meeting guide has a "blockers and risks" slot, "what is waiting on whom, and since when", that this table answers. You can also ask the assistant in that client's chat, "what is the client still meant to send us?", and the answer comes from the table, with the meeting each value came from.
Which meetings should feed it?
Every meeting of that client, usually. Promises are made in whichever call needs them, and meetings plainly unrelated to the tracker's subject are skipped. For a project about to start, you can attach the tracker to the kickoff before it happens, since a kickoff is where many promises are first made. Any finished meeting can also be sent to the tracker by hand.
The table fills after each meeting's notes are ready, not during the call. A weekly call held in French fills it the same way; trackers read meetings in any of the close to 100 spoken languages TrackHeros recognises, and text values are written in the notes' language. The languages page lists them.
Can the client see the table?
No. A tracker is private to the person who made it, and to admins on a company account, until they share it, and it can be shared only with colleagues already assigned to that client. It belongs to that client's sealed workspace, and deleting the client deletes it with every value and quote. To show the client where things stand, paste the open rows into your recap or download the table as CSV; pricing says which plans include export. More on the feature itself is on Trackers.
Questions
Frequently asked
Is this different from the Action items page?
Yes. Action items are listed meeting by meeting, so a promise made on Monday and repeated a week later with a new date is two items. A tracker keeps one row per promise and updates it, with the earlier dates in its history.
Can I send the table to the client?
Not from inside TrackHeros. A tracker is private to you, and to admins on a company account, until you share it with colleagues already assigned to that client, and the client is not one of them. You can download the table as CSV, on the plans that include export, or paste the open rows into your recap.
What if the client promised something by email?
Trackers read meetings only. Add the commitment as a row yourself; it sits in the table with the rest, and later meetings that mention it update it like any other row.
Related
Keep reading
- FeaturesTables that fill themselves from your meetingsTrackHeros turns Google Meet and Teams calls into tables that update themselves: candidates, features, requests, each value cited to its meeting.
- AnswersDo I need a meeting tracker if I already get action items?Action items list one meeting's commitments; a tracker is a table many Google Meet and Teams meetings keep current. When each fits, and how they combine.
- FeaturesAction items from every client meeting, with an owner and a dateTrackHeros lists action items from Google Meet and Teams calls with an owner and a due date, flags owners who were not there, and tracks them per client.
- GuidesHow to run a weekly client status meeting that does not driftA weekly status meeting agenda for client projects: a 30-minute format with timings, the written update to send first, and how to stop the call drifting.
Early access
Get in early.
We’re onboarding a small group at a time so we can get it right. Join the list and we’ll reach out.