Capture the demo lead before the booking step

FeatureMediaService
Shipped
August 5, 2026 at 5:40 PM UTC
Author
Kamo
Commit
6854a2d

The marketing site's demo form collected name, email, company, company size, industry and a message, then advanced to scheduling without telling anyone. Lead creation lived only inside **************** so every visitor who did not complete a booking — including every visitor at all while no availability is published — was discarded after handing over their details. - POST **************** writes the lead on its own. Owning org comes from the X-Public-Chat-Org-Id header APIService stamps from the validated key, never from the body. - findOrCreatePublicLead is now the single lead-writing path for all three public surfaces (demo form, schedule, join), so one visitor produces one lead however many steps they complete. It stamps the org's "KamoCRM" / "Demo Request" vendor product and takes the market from that vendor, and it routes through LeadService.createLead instead of saving the entity directly — the old inline save produced no history row and no LEAD_CREATED event, so those leads never appeared in an already-open grid. - Company size, industry and the visitor's message are kept as a lead history entry; Lead has no column for any of them and they are the part a salesperson actually reads. - GET /api/public/webinar/types lets a public page discover the type id rather than carry a hardcoded copy, and slots/available now also returns availableTimes — the same availability resolved against the owning org's timezone into instants that can be posted back as a scheduledStartTime.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing