Cours de Trompette case study
Taking back control • June - July 2026
Augustin Guefif was renting his online presence from two platforms: the website on Brizy, the students and the bookings on GoHighLevel. We gave it back to him in four weeks.
2 → 0
Rented platforms
19,669
4
Weeks of work
what the platform was holding
The repatriation inventory
What we did
Emptying the CRM before closing the door
A subscription you cancel takes its data with it. Before shutting GoHighLevel down, everything had to come out, and not a simple contact export: all of it.
We wrote a dedicated API client, incremental and replayable, which pulled 434 contacts, 424 conversations, 7,801 messages, 317 appointments, 10,445 calendar events, plus notes, tasks, forms, automation workflows, products and transactions. That is 19,669 records with no duplicates, because every item is keyed by its own identifier.
Two traps are worth knowing. The platform firewall bans the default user agent of HTTP libraries and returns an error that looks exactly like an authentication refusal. And across thirteen hundred chained calls, a network hiccup is statistically certain: without automatic retry, a multi-hour export dies minutes before the finish line.
Rebuilding the site, not tracing it
A hosted page builder does not move house. Brizy pages only export as dead HTML, with no reusable structure. So we rebuilt the entire front end in Divi 5, with fresh art direction: home, method, pricing, booking, contact.
The 114 blog posts were recovered and reworked one by one, then filed into thematic silos that actually hold: Instruments, Learning, Culture, Technique and performance, Tips, Health and wellbeing.
Of the 226 images sitting inside those posts, the ones missing alt text or dimensions were completed. Never at file size: at the size actually rendered, measured in the browser. The ratio is locked, layout shift disappears, and the rendering does not move by a single pixel.
A booking that actually produces a Teams link
Four options are live: a free thirty minute trial, then thirty, forty five and sixty minute lessons. FluentBooking runs them Monday to Saturday, eight to six, with a four hour minimum notice and a sixty day booking window.
Every booking produces a Microsoft Teams meeting and drops the event into the teacher's own calendar. The detail sounds trivial. It is not. The organiser written into the invitation is not the account connected to Outlook: it is the email of the WordPress user set as calendar host. As long as that host stayed a technical account, every student received an invitation signed by an agency address, and no Teams link was produced at all, because the destination calendar pointed at Google.
Host corrected, Outlook connector restored: a real meeting link and a real organiser, verified end to end on a test booking created and then cancelled.
Payment on the same page as the slot
Booking and paying are one gesture. Stripe is wired in live mode, through Stripe Connect, under a plain label: pay by card. The student picks a slot, pays, and gets the confirmation without leaving the site.
The trial stays free and card free, deliberately. It is the one step nobody should have to clear before they have heard the teacher play.
The free guide, first step of the funnel
A visitor leaves an email address to receive a PDF guide. From there everything runs on its own: the form delivers the document, tags the contact, and that tag triggers what follows.
Three forms live on the site, contact, guide signup and sequence entry, all notified to the teacher's own address rather than an agency inbox. Seventy six submissions have already gone through them.
Four emails that work while he teaches
The welcome sequence goes out the day after signup, then on day two, three and four. Four emails written to clear four objections in order: the mistake that blocks most trumpet players, the story of the man who picked it up again after ten years, the doubt of the beginner who thinks he is too much of a beginner, and finally the invitation to take the next step.
It used to run at the vendor. It was rebuilt natively inside the site, with the full campaign history: 7,713 sent emails now live in the database, readable without a subscription.
Three automations and fifteen tags
Three workflows run permanently. The first chains the free guide into the nurture sequence. The second pushes towards the trial lesson. The third is the interesting one: it fires when a lesson has actually been taught, not when it was booked, and handles the move from trial to paying student.
Behind them, fifteen tags cut the list into pieces: free guide, newsletter, trial, student on trial, student, former student, lesson booked, waiting, and even the formats tracked separately, thirty minutes, forty five minutes, one hour. Emailing everyone was the only option before. It is not any more.
The sender is the teacher
Email used to leave from a technical subdomain belonging to the vendor. Students read an « on behalf of » line in their inbox, and the teacher was not in control of his own sending.
The site now ships through Augustin's Microsoft account, over an authorised connection, with no password stored in the clear. The sending address is his own, on his own domain, authenticated. Admin notifications reach him directly, instead of the agency address inherited from setup.
What stands up without us
The site is hosted on our own dedicated infrastructure: LiteSpeed server, full page cache, an object cache isolated from the neighbouring sites, automatically renewed certificates, application firewall and login protection.
The support desk is built into the site, twenty six requests have already been handled there, and the tasks and opportunities recovered from the old CRM kept boards of their own.
That is the whole point of this project. The day a platform changes its price, its terms or its mind, there is nothing left to rescue in a hurry.