How to Auto-Send Meeting Summaries to Slack Using Webhooks
Use Gregnote webhooks and the Slack API to automatically post an AI-generated meeting summary to a Slack channel after every meeting ends.
Gregnote Team
16 August 2026
The idea
Every time a meeting ends, Gregnote fires a meeting.completed webhook with the full transcript. We'll catch that, summarise it with an LLM, and post the summary to a Slack channel automatically. No manual notes. No copy-pasting.
What you need
- A Gregnote API key
- A Slack app with a webhook URL (incoming webhook)
- An LLM API key (OpenAI, Anthropic, or any provider)
- A Node.js or Python server to receive webhooks
Step 1 — Receive the webhook
app.post("/hooks/gregnote", express.raw({ type: "*/*" }), async (req, res) => {
// Verify HMAC signature first (always)
if (!verifySignature(req)) return res.sendStatus(401);const payload = JSON.parse(req.body.toString()); if (payload.event !== "meeting.completed") return res.sendStatus(200);
const transcript = payload.transcript.segments
.map(s => ${s.speaker}: ${s.text})
.join("\n");
const summary = await summarise(transcript); await postToSlack(summary, payload.transcript.speakers); res.sendStatus(200); }); ```
Step 2 — Summarise with an LLM
async function summarise(transcript) {
const response = await openai.chat.completions.create({
model: "gpt-4o-mini",
messages: [
{ role: "system", content: "Summarise this meeting transcript in 3-5 bullet points. Focus on decisions made and action items." },
{ role: "user", content: transcript },
],
});
return response.choices[0].message.content;
}Step 3 — Post to Slack
async function postToSlack(summary, speakers) {
const names = speakers.filter(s => !s.is_bot).map(s => s.display_name).join(", ");
await fetch(process.env.SLACK_WEBHOOK_URL, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
text: `*Meeting Summary* — ${names}\n${summary}`,
}),
});
}Result
Every meeting your bot attends now produces a Slack message with a concise summary within a minute of the meeting ending. Your team reads it in the channel they're already watching.
Try it yourself
API key in 30 seconds. Free credit on sign-up. No card required.