Webinar Follow-Up by Attendance With an AI Agent and n8n
By Joris van Huët
Enterprise Interim CMO & Marketing Leader · 15+ years · 50+ orgs
Published
2026-10-26
The short answer: if your follow-up is one replay email to everyone, a pricing question and an empty seat get the same message. For two webinars a month with 150 to 300 registrants each, a morning-after workflow fixes that: rules sort people by attendance and questions, an agent drafts, a person sends. The layer costs $24 a month on n8n Starter billed monthly (n8n pricing) plus $9 for Brevo Starter's 5,000 emails (Brevo pricing), both checked on 26 October 2026. For example, if 20 people asked questions and a reply takes 12 minutes to write but 3 to check as a draft, the host's morning goes from 20 x 12 = 240 minutes to 20 x 3 = 60.
Disclosure: I may earn a commission through some links on this site. It does not change what this page says.
The job: the day after the session, a question gets an answer from the host, staying to the end earns the next step, leaving early gets the missed part, and a no-show gets the replay. Single-tool screens are in how to use Livestorm, Demio and n8n; clipping the recording is a separate job.
Before you build:
- The execution count, worked out. Each webhook delivery is one n8n execution, and so is each daily run (executions). For example, two webinars with 250 registrants each send 2 x 250 = 500 deliveries, plus 31 morning runs: 531 of Starter's 2,500. Livestorm opens its API on request; the token needs webhooks set to write and events set to read (token guide).
- The consent box your form already carries. A Livestorm custom consent gets a fixed slug (custom consents), and Livestorm advises that separate box whenever registrants will hear from sales or marketing (GDPR article). Demio returns custom registration fields with each participant (Demio API). That field decides who may receive an offer. The agent never does.
- Two places to send from. The host's Gmail for personal replies; a Brevo account with a verified sender and one list per segment for the group emails.
- A baseline from the last three webinars. Replies to the follow-up and meetings booked within 14 days, split by attended and missed.
Session end to morning drafts, step by step
- Collect as the session ends. Subscribe two webhooks with
POST /webhooks,people.attendedandpeople.not_attended, which fire for each registrant once a session is over (create a webhook, webhooks). Each payload carriesattended,attendance_rate,questions_countand every registration field with its value, consent included. A subscription covers all sessions in the workspace, so an If node keeps the events you follow up (If node), and a Data Table node inserts one row per person (Data Table node). Data tables are open to everyone in the n8n project (data tables), so give this one a project of its own and delete rows once the follow-up has gone. - Trigger at 08:00 the next morning, in your time zone. A Schedule Trigger starts a second workflow (Schedule Trigger); set its time zone, because a self-hosted instance falls back to America/New York. It reads yesterday's rows and calls
GET /sessions/{id}/questions?include=asker, which returns each question, its asker, and the writtenresponseor aresponse_orallyflag (questions endpoint). No rows, no further steps. - Sort with rules, not with the model. A second If node flags everyone without the consent slug as "no offer" (If node). A Switch node in Rules mode sends each person to one output: asked a question; attended at 80 or more; attended below 80; did not attend (Switch node). My rule of thumb puts the line at 80: below it, assume they left before the closing offer. A rule sorts the same way every week.
- The agent drafts. An AI Agent node gets the session title, your notes on what was presented, the questions with written answers, and segment sizes (AI Agent node). Its system message: one email per segment with the replay link and one next step; per asker, a reply from the host's written answer, or a pointer to the replay if it was spoken; nothing absent from the notes; no offer to anyone flagged. A Structured Output Parser returns segment emails as subject and body (Tools Agent).
- One tool, and it only writes drafts. The agent needs at least one tool. Give it the Gmail node, Resource Draft, Operation Create, signed in as the host, with To, Subject and Message filled by
$fromAI()(Gmail draft operations, $fromAI). Each question becomes a draft in the host's mailbox, addressed to its asker. - Group emails reach Brevo through fixed nodes, not through the model.
POST /v3/contactswithlistIdsandupdateEnabledputs each consenting registrant on their segment's list (create a contact).POST /v3/emailCampaignscreates one campaign per segment from the agent's subject and body, that list as recipients and noscheduledAt; Brevo creates campaigns in draft status by default (create a campaign). Registrants without consent stay off these lists and get the platform's replay email. - A person reads, then sends. Before 10:00 the owner opens Gmail Drafts and Brevo's campaigns. Each reply: the host's answer, the right name, a line the host would sign. Each campaign: claims against the notes, the replay link opened, a test to yourself, recipients matched to step 3's counts. Then send. Brevo appends an unsubscribe footer to any campaign that lacks one (unsubscribe article).
On Demio, the morning run does the collecting: the built-in Demio node's Report, Get, filtered by status, replaces step 1 (Demio node). Its API defines completed as stayed to the end and left early as showed up without staying, which replaces the 80 rule (Demio API). Questions are not in the API; Demio emails them as a ZIP export (data export), so a person adds that file before the agent runs.
Doing it without the agent
For one webinar a month, the platform's emails and an hour of typing carry most of this. Livestorm sends two follow-ups five minutes after the end, at a fixed time, from templates set before the event starts that can read {{ registrant.attended }} and {{ registrant.attendance_rate }} (emails article). Editing needs a paid plan; the Free plan also stops events at 30 minutes and 30 attendee credits a year (free plan).
Demio's Replay Follow Up goes to one audience you choose: all registrants, no-shows or attendees (event notifications). Custom Automations put Attendees and No Shows on separate lists in a connected email tool (custom automations).
The rest is a spreadsheet. Export the people list with all columns (Livestorm export), sort by attendance and questions, write the replies yourself, and send group emails from Brevo's free plan, up to 300 a day (Brevo pricing). n8n's Community Edition runs self-hosted at no charge when you want the schedule (n8n pricing).
The paid route adds a run nobody has to remember, segments finer than attended or missed, and replies that quote the question.
The monthly bill
| Tool | Without paying | Paid, as listed | Where it says so |
|---|---|---|---|
| Livestorm | Free plan: 30 attendee credits a year, 30-minute events | Pro: €2.50 per attendee credit at the 400-credit yearly pack; API on request | Pricing |
| Demio | 14-day trial on Growth features, 20 attendees, 1-hour sessions | Starter: $63 paid monthly or $45 paid yearly, one host, 50-person room | Pricing |
| n8n | Community Edition, self-hosted | Starter: $24 billed monthly, 2,500 executions | Pricing |
| Brevo | Up to 300 emails a day | Starter: $9 billed monthly, 5,000 emails, 500 contacts | Pricing |
| Chat model | Not needed by hand | Billed by your model provider | AI Agent node |
All prices checked on 26 October 2026. A Schedule Trigger counts one execution each time it fires, whatever it finds (executions), so the daily run uses at most 31 a month. On Brevo, watch contacts more than emails: Starter includes 500 (Brevo pricing), and every webinar adds registrants.
The meter behind the replay link
Livestorm gives replay access to everyone who registered unless you change it (replay article), and a no-show who then watches uses an attendee credit, the unit Livestorm invoices (pricing). The easiest follow-up, the replay to every no-show, is also the one that draws down the pack. For example, 60 of 180 no-shows watching is 60 x €2.50 = €150 of credits. No reason to hide the replay; a reason to count its views, so the pack size follows a decision, not a default.
Did the follow-up work?
The measure is meetings booked within 14 days, per segment, against the three-webinar baseline, plus replay views by no-shows, which Livestorm marks per person as has_viewed_replay (people endpoint).
Then a holdout on the group emails. Brevo campaigns accept exclusionListIds (create a campaign), so in each segment, put a random fifth of the consenting registrants on a holdout list the campaign excludes; they get only the platform's own follow-up. After four webinars, compare meetings booked per hundred people. Keep the question segment out of it: a question deserves its answer, and withholding one would measure manners, not the workflow.
Watch the drafts too: an edit that corrects a fact means the notes are thin; one that rewrites tone means the system message is.
The build itself, with the holdout wired in and a written handover for whoever runs the webinars next, is the kind of job the agentic marketing work covers.
What the law asks of the follow-up
Article 13(1) of the ePrivacy Directive allows email for direct marketing only to people who gave prior consent. Article 13(2) makes one exception: a business that obtained an address from its customer in the context of the sale of a product or a service may market its own similar products or services, if the customer can object, free and easily, when the address is collected and in every message (consolidated text, CELEX 02002L0058-20091219). Article 13(5) applies paragraphs 1 and 3 to natural persons and leaves other subscribers to each member state's law. A B2B list holds both kinds of address.
The registration form is the evidence: offers go only to people who ticked your box; everyone else gets the replay and an answer. Ask counsel four things: does registering for a free webinar count as a sale under the exception; how does your country treat work addresses under 13(5); is the replay email a service message; does a reply that answers a question and mentions a demo count as marketing.
FAQ
Can the agent send an email on its own?
No. Its one tool creates Gmail drafts, and the Brevo campaigns come from a fixed node that sets no send time, so they stay drafts (create a campaign). Sending is a click in Gmail or Brevo.
Why not put the segments into Livestorm's own follow-ups?
They are set before the session starts and leave five minutes after it ends (emails article), so they cannot answer a question nobody had asked yet. Keep them for the replay link; the morning run sends the specific second touch.
What about no-shows who watch the replay days later?
The people endpoint marks them with has_viewed_replay (people endpoint). A second run a week later finds them and drafts a shorter note without the replay link they already used.
ABOUT THE AUTHOR
I am Joris van Huët, an enterprise interim CMO. 15+ years, 50+ organizations, including ING, P&G, Nestlé, BNP Paribas, WeTransfer and Vinted. I take on innovation projects (venture building, design sprints), agentic marketing (setting up and running AI agents) and hands-on multi-channel work. See the track record.
I wrote and published this with AI assistance, and I answer for it. Claims about my own experience are limited to the track record above, and a statistic links to its source or is labelled as an example. I sell interim and fractional CMO work, which is why this site exists. How this site is written.
The agents in this article, built into your workflows and handed over to your team: the first one within two weeks.