// specific build playbooksby 5 min read

Pre-Meeting Brief Pipeline: Calendly → n8n → Claude → Slack

Every meeting starts better when you've actually prepped. Most prep gets skipped. Here's the 4-tool pipeline that puts a brief in your Slack 60 minutes before every call.

Every meeting is better when you've prepped. Most prep gets skipped because nobody has 15 minutes to spare 60 minutes before the call.

This pipeline does the prep for you. By the time you sit down for the meeting, the brief is in your Slack DMs.

What you'll need

  • Calendly (or Cal.com — works similarly)
  • n8n (or Make / Zapier)
  • A CRM with notes (HubSpot, Pipedrive, Folk, Attio, Notion DB)
  • Claude or OpenAI API
  • Slack workspace

Total build: an afternoon at most.

The pipeline

Step 1: Trigger before the meeting. Record each booking from Calendly's booking webhook, then run an n8n schedule that picks up meetings starting in the next hour.

Payload includes: invitee email, name, scheduled time, event type.

Step 2: Look up the contact in CRM. n8n HTTP Request node hits your CRM API:

  • Find contact by email
  • Pull recent notes (last 90 days)
  • Pull recent deals or pipeline status
  • Pull tags / segments

If no match, mark as "first meeting" — different brief format.

Step 3: Enrich with public data. Optional but useful. Hit Clearbit, Apollo, or Hunter for company info if not in your CRM:

  • Company size
  • Industry
  • Recent news
  • Likely tech stack

Step 4: Claude generates the brief.

Generate a pre-meeting brief.

Meeting type: {event_type}
Attendee: {name}, {role}, {company}
CRM history: {summary of recent notes, deal status, last conversation}
Company context: {enrichment data, recent news}
My role in this meeting: {seller / advisor / interviewer / etc.}

Return a 5-section brief:
1. Quick context (3 sentences max)
2. What I know about their situation
3. What I'd want to confirm or learn
4. Suggested opening question
5. Risks or watch-outs

Voice: peer-to-peer, direct. No fluff. Aim for under 250 words total.

Step 5: Slack DM. n8n sends the brief as a Slack DM to you. Include the meeting time, Zoom/Meet link, and the brief.

A sample brief

Say the meeting is in 60 minutes with "Sarah Chen, COO at Mason Industries," an invented contact with 3 prior notes in the CRM.

The brief that lands:

Sarah Chen at Mason Industries — call in 60 min

>

Context: Mid-market manufacturing, ~250 employees. We talked twice in March about AI for their quality-control reporting. Sarah is the operational decision-maker; her CFO is the budget gate. Last note mentions she was waiting on a board decision in April.

>

What I know: They have a manual QC reporting process that takes real staff time across plants. They use Power BI for everything, which is the entry point. Sarah likes detail in initial pitches.

>

What I'd want to confirm: Did the board approve the spend? Has the CFO weighed in? Are they still evaluating other vendors?

>

Suggested opening: "Last we talked, you were waiting on the board call in April. What came out of it?"

>

Watch-out: Sarah is busy. Don't oversell. She wants the substance fast.

The brief is in Slack 60 minutes before, it reads in a couple of minutes, and the meeting starts grounded.

What tends to break

The "first meeting" path is generic. With no history, the brief turns into a list of discovery questions. Lean harder on enrichment for first meetings, and use a separate prompt template that emphasizes industry-specific opening questions.

Trigger timing. A scheduled trigger can fire a few minutes off, or twice. Handle it idempotently and pull the latest meeting state on each run.

Slack DM noise. On a heavy meeting day the briefs clutter your DMs. Add a setting that generates briefs only for external meetings, so internal team meetings skip the pipeline.

Extensions worth adding

Once the basic version works, two extensions:

Calendar-aware threading. The brief threads under a daily digest message. Each day's first brief creates a thread. Subsequent briefs reply in the same thread.

Post-meeting recap. A separate pipeline runs 30 min after the meeting, ingesting the transcript (if recorded) and updating the CRM with new notes. Closes the loop.

What this isn't

This is not a substitute for actual relationship work. The brief reminds you of context. The relationship is yours to build.

It's also not a substitute for note-taking. The CRM still needs accurate notes for the pipeline to work. Garbage in, garbage out.

What to build first

If you're starting from scratch:

One, the Calendly → Slack notification (no AI yet). Just so you have a working notification before every meeting.

Two, layer the CRM lookup. Now you have context in the notification.

Three, add Claude for the actual brief generation.

Each step works independently. You don't have to build all three to get value.

The payoff is better meetings and fewer "wait, what did we talk about last time" moments.

calendlyclauden8nmeetingslong-tail
// go deeper

Worked steps, FAQs and resources on this topic.

read the guide
// the_list

Get the next one.

Field notes from real deployments, written the way this one was. No schedule promised and nothing sold to you. Unsubscribe whenever.

// keep reading

Related posts

// ready to ship?

Let's build yours.

Reading is the easy part. We do the work. Tell us what's broken and we'll tell you straight up whether we can help.