Praxis· Applied AI Studio · NYC

PLAYBOOK · 05 · MEETING FOLLOW-THROUGH · BY MARC KLEINMANN

A meeting ends. The follow-through writes itself, and waits for you to approve.

How a recorded meeting writes its own CRM update, Slack recap, and drafted email, while you approve. The four parts, the one guardrail that keeps it safe, and the recap template it all renders from. Written for the operator tired of losing fifteen minutes to follow-up after every call.

Read time ~11 minDifficulty IntermediateStack Claude · a meeting recorder (Fellow, Granola, Fathom, or Fireflies)

01 ·Context

The meeting is the easy part. The follow-through is the fifteen minutes that always slips.

The meeting ends and the follow-through is the part that slips. Someone has to update the CRM, tell the rest of the team what got decided, and email the people who were there with next steps. It is fifteen minutes of work that is easy to skip when the next call starts in three. So it gets skipped, and a week later nobody remembers who owns what.

This is the build that does the follow-through for you. A meeting gets recorded. The transcript is the only input it needs. From that transcript, the system drafts three things: the update to your CRM, a recap for your team's Slack, and an email to the attendees. Then it stops and shows you. You read it, you fix anything wrong, and you approve. Only then does anything save or send.

02 ·Architecture

Four parts and one guardrail.

The build has four parts and one guardrail.

Part 01 · The triggerWhat starts it.

A recorded meeting finishes, and the system picks up the transcript. There are two ways to wire this, covered in Setup below. This is the one real choice you make.

Part 02 · The readWhat it pulls out.

Claude reads the transcript, the actual words, not a machine summary. It pulls out what was decided, who owns what, and any dates that were named.

Part 03 · The draftsThe three outputs.

From that, it composes three outputs: a CRM update (the decisions, owners, and dates written to your CRM or system of record), a Slack recap for the team, and an email to the attendees. The Slack recap and the email both render from one custom template, so they look like you every time.

Part 04 · The approval gateWhere it stops.

It stops here and shows you all three drafts. You approve, edit, or reject each one. Nothing before this point has saved or sent anything.

It keys off the transcript, not the recorder. Whatever tool recorded the meeting, the moment there is a transcript, the follow-through runs the same way. That makes it recorder-agnostic: you are not locked to one vendor, and switching recorders does not change the build.

03 ·Setup

How it starts running, and what you connect once.

How it starts running is the key choice, and there are two ways to do it. Pick one.

Tier 1 · The defaultA scheduled check.

Claude runs on a schedule, a few times a day, and reaches into your meeting recorder to see if a new meeting finished. When it finds one, it pulls the transcript and runs the follow-through. Nothing extra to install, no other software in the loop. This is the portable path, and it is where most people should start. The trade is timing: it runs on its schedule, so the drafts land within a few hours of the meeting, not the same minute.

Tier 2 · OptionalAn instant trigger.

If you want the follow-through the second a meeting ends, you add a small automation that watches for a finished transcript and fires immediately. It is faster, and it is more moving parts. Worth it when speed matters, skippable when a few hours is fine.

Where it runsIn Claude, plus an optional trigger.

In Claude and Cowork, a scheduled task runs the follow-through on a clock and reaches into your recorder for the transcript. That is Tier 1 out of the box. The instant trigger (Tier 2) is a separate small automation you add only if you want same-minute delivery.

What you connect onceYour recorder, then the outputs you use.

Your meeting recorder, so Claude can read the transcript. Then, for the outputs you want: your CRM, your Slack, your email. Connect only the ones you use. One connection gives you one output; the full set gives you all three.

Recorder coverage, honestly: Fellow, Granola, and Fathom are all proven and work today, and Fireflies works by the same method. Zoom and Google Meet need a paid upgrade and do not have a turnkey connection yet. Because the build keys off the transcript, any of the four proven recorders drops in without changing anything downstream.

04 ·Decisions

Three calls you make when you build one.

Decision 01Scheduled, or instant.

Start scheduled (Tier 1). It is simpler, it is portable, and a few hours' delay on a meeting recap is almost never a problem. Move to the instant trigger only when you have a real reason to need the follow-through the same minute the call ends. And whichever you pick, run only one.

Decision 02Draft, or send.

Keep it at draft. The moment the system sends an email or writes a record on its own, you have handed it a judgment call it should not make. A recap that goes out with the wrong owner on a task is worse than no recap. Let it draft, you send.

Decision 03Which outputs.

You do not need all three. Some teams want only the CRM update. Some want only the attendee email. Turn on the outputs you will actually use and leave the rest off. The build is the same either way; you are just choosing which drafts it hands you.

05 ·Runbook

The brief, and the template it renders from.

You do not build this yourself. You hand a builder, or Claude directly, a short brief that says what the job is, what starts it, what it reads, what it drafts, and the hard rule that it never sends. That brief is the spec. Here is the blank, then mine filled in, then the template the recap and email render from.

follow-through brief · blank
THE JOB: Meeting follow-through. After a meeting is recorded, read the
transcript and draft the follow-through.

WHEN IT RUNS: [the trigger. Scheduled: "check for finished meetings a few
times a day." Or instant: "the moment a transcript is ready." Pick ONE.
Never both, or every meeting gets processed twice.]

WHAT IT READS: the meeting transcript. Nothing else is required.

WHAT IT DRAFTS: [the outputs you want. Any of: a CRM update with the
decisions, owners, and dates. A Slack recap for the team. An email to the
attendees. Draft only.]

HOW IT LOOKS: render the Slack recap and the email from my recap template,
so they look the same every time.

THE HARD RULE: draft only. Do not write the record, post the recap, or send
the email on its own. Show me all three drafts and wait. I approve, then it
saves and the email goes to my drafts folder for me to send.

Now the same brief, filled in. This is the actual follow-through I run.

follow-through brief · mine
THE JOB: Meeting follow-through. After a client call is recorded, read the
transcript and draft the follow-through.

WHEN IT RUNS: A scheduled check, a few times a day, that looks for a finished
meeting and pulls its transcript. One trigger, not two.

WHAT IT READS: The meeting transcript, verbatim. Pull out what was decided,
who owns each follow-up, and any dates that were named.

WHAT IT DRAFTS:
- A CRM update: the decisions and the owner-tagged tasks, written to the
  client's record.
- A Slack recap for my team channel: what happened, the key points, who owns
  what next.
- An email to the attendees: a clean recap with the assigned tasks and any
  dated milestones.

HOW IT LOOKS: Render the Slack recap and the email from my recap template
(below), so every recap reads the same.

THE HARD RULE: Draft only. Show me the CRM update, the Slack recap, and the
email. I read all three, fix anything wrong, and approve. Only then does the
record save, the recap post, and the email land in my drafts folder. Nothing
sends on its own.

Hand either brief to whoever builds your skills, or to Claude directly. It is a complete spec.

The steal-it piece is the template your recap and email render from. This is a real, email-safe HTML template: inline styles only, no external files, so it survives every mail client and pastes straight into an email or a Slack message. Fill the bracketed slots from the meeting and it is your recap. Hit Preview to see it rendered with a sample filled in.

recap template · email-safe HTML — steal this
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" border="0" style="background-color:#f4f1eb;margin:0;padding:0;">
  <tr>
    <td align="center" style="padding:28px 12px;">
      <table role="presentation" width="600" cellpadding="0" cellspacing="0" border="0" style="width:600px;max-width:600px;background-color:#ffffff;border:1px solid #d8d2c8;border-radius:10px;">

        <!-- Header -->
        <tr>
          <td style="border-top:4px solid #7A3E2A;border-radius:10px 10px 0 0;padding:30px 34px 22px 34px;font-family:Georgia,'Times New Roman',serif;">
            <div style="font-family:Helvetica,Arial,sans-serif;font-size:11px;font-weight:bold;letter-spacing:1.5px;text-transform:uppercase;color:#7A3E2A;padding-bottom:10px;">📋 Meeting recap</div>
            <div style="font-size:25px;font-weight:bold;color:#1a1714;line-height:1.25;">[MEETING TITLE]</div>
            <div style="font-family:Helvetica,Arial,sans-serif;font-size:13px;color:#6a635a;padding-top:10px;">[DATE] &middot; [ATTENDEES]</div>
          </td>
        </tr>

        <!-- Summary -->
        <tr>
          <td style="padding:22px 34px 4px 34px;font-family:Helvetica,Arial,sans-serif;">
            <div style="font-size:12px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#7A3E2A;padding-bottom:8px;">🎯 Summary</div>
            <p style="font-size:15px;line-height:1.6;color:#1a1714;margin:0 0 6px 0;">[TWO OR THREE SENTENCES ON WHAT HAPPENED AND WHY IT MATTERED]</p>
          </td>
        </tr>

        <!-- Decisions -->
        <tr>
          <td style="padding:16px 34px 4px 34px;font-family:Helvetica,Arial,sans-serif;border-top:1px solid #e6e0d6;">
            <div style="font-size:12px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#7A3E2A;padding:8px 0 10px 0;">🧠 Decisions</div>
            <p style="font-size:15px;line-height:1.55;color:#1a1714;margin:0 0 8px 0;"><span style="color:#7A3E2A;font-weight:bold;">&bull;</span>&nbsp; [WHAT WAS DECIDED]</p>
            <p style="font-size:15px;line-height:1.55;color:#1a1714;margin:0 0 8px 0;"><span style="color:#7A3E2A;font-weight:bold;">&bull;</span>&nbsp; [ANOTHER DECISION]</p>
          </td>
        </tr>

        <!-- Assigned tasks -->
        <tr>
          <td style="padding:16px 34px 4px 34px;font-family:Helvetica,Arial,sans-serif;border-top:1px solid #e6e0d6;">
            <div style="font-size:12px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#7A3E2A;padding:8px 0 10px 0;">✅ Assigned tasks</div>
            <div style="border-left:3px solid #7A3E2A;background:#faf8f4;padding:11px 14px;border-radius:0 6px 6px 0;margin:0 0 9px 0;">
              <span style="font-size:15px;font-weight:bold;color:#1a1714;">[OWNER]</span><span style="font-size:15px;color:#1a1714;">: [the task in one line]</span><span style="font-size:13px;color:#6a635a;"> &middot; due [DATE]</span>
            </div>
            <div style="border-left:3px solid #7A3E2A;background:#faf8f4;padding:11px 14px;border-radius:0 6px 6px 0;margin:0 0 9px 0;">
              <span style="font-size:15px;font-weight:bold;color:#1a1714;">[OWNER]</span><span style="font-size:15px;color:#1a1714;">: [the task in one line]</span><span style="font-size:13px;color:#6a635a;"> &middot; due [DATE]</span>
            </div>
          </td>
        </tr>

        <!-- Milestones -->
        <tr>
          <td style="padding:16px 34px 6px 34px;font-family:Helvetica,Arial,sans-serif;border-top:1px solid #e6e0d6;">
            <div style="font-size:12px;font-weight:bold;letter-spacing:1px;text-transform:uppercase;color:#7A3E2A;padding:8px 0 10px 0;">📅 Milestones</div>
            <div style="margin:0 0 11px 0;">
              <span style="display:inline-block;background:#7A3E2A;color:#ffffff;font-size:11px;font-weight:bold;letter-spacing:0.5px;padding:3px 9px;border-radius:11px;">[DATE]</span>
              <span style="font-size:15px;color:#1a1714;">&nbsp; [the dated deliverable or decision]</span>
            </div>
            <div style="margin:0 0 11px 0;">
              <span style="display:inline-block;background:#7A3E2A;color:#ffffff;font-size:11px;font-weight:bold;letter-spacing:0.5px;padding:3px 9px;border-radius:11px;">[DATE]</span>
              <span style="font-size:15px;color:#1a1714;">&nbsp; [the dated deliverable or decision]</span>
            </div>
          </td>
        </tr>

        <!-- Footer -->
        <tr>
          <td style="padding:18px 34px 26px 34px;border-top:1px solid #e6e0d6;font-family:Helvetica,Arial,sans-serif;font-size:12px;line-height:1.5;color:#6a635a;">
            Drafted from the meeting transcript, reviewed before sending. Reply with any corrections.
          </td>
        </tr>

      </table>
    </td>
  </tr>
</table>

The same template drops into Slack as the recap and into an email as the body, so your team channel and your attendees see the same clean summary. Swap the brand color on the top border and the labels for your own and it is yours.

06 ·Gotchas

The four that catch everyone.

Watch-out 01

Two triggers at once.

The one that bites everyone. If the scheduled check and the instant trigger are both live, every meeting gets processed twice: two CRM writes, two recaps, two draft emails to the same people. Pick one trigger, turn the other off, and check it once when you set up.

Watch-out 02

Letting it act.

The moment the follow-through sends the email or writes the record on its own, you have given away the judgment call. A recap with the wrong owner on a task, sent to the client, is a worse outcome than a recap that waited for you. Keep it at draft.

Watch-out 03

Trusting a recorder you have not tested.

The build keys off the transcript, so a recorder that produces a thin or garbled transcript produces a thin recap. Run it on one real meeting and read the transcript before you rely on it. Zoom and Google Meet in particular need a paid step and do not connect out of the box yet.

Watch-out 04

Scheduling it before it works by hand.

Same rule as any scheduled skill. Run the follow-through manually on a couple of real meetings first. A schedule runs your build every day exactly as it is, flaws and all. Prove it, then set it loose.

07 ·What's next

One meeting's follow-through saves fifteen minutes. The pattern is bigger.

One meeting's follow-through saves you fifteen minutes. The pattern is bigger than that.

Next 01

Event triggers on other things.

The same shape works for anything that produces a transcript or a document: a sales call, an intake form, a support ticket. Read it, draft the follow-through, wait for approval.

Next 02

A workflow.

Chain the follow-through into your wider operation. The recap that updates the CRM can also open the next task, tee up the follow-up meeting, and flag the client who went quiet. One meeting in, a whole next-steps engine out.

Next 03

Start with one.

You do not start there. You start with one recorded meeting and the three drafts, and you approve them. The engine is just what you have after that runs itself for a month.

Want this set up on your team's stack?

Get started