The problem behind the booking
VerySoul is a public benefit company that connects clients seeking guidance with mediums around the world, and it describes its services as evidence-based. The platform runs on WordPress.
Booking a session is only the first step on a platform like this. A session has to be accepted, held, paid for and followed up, and the people involved need very different things along the way. A client wants to find the right medium and see their history. A medium wants to manage requests, messages and payments. An administrator needs to see across all of it and step in when something goes wrong.
That called for more than a booking widget. It needed a system that treats each of those three roles as its own experience, on top of a site that had to keep performing while it ran.
What we knew before we built
No before-and-after baseline is published for this project, so this page does not offer an improvement figure. What can be stated is the scale the platform works at, using VerySoul's own public figures.
- 3,500+
- Medium members, as stated on VerySoul's site in November 2026
- 55
- Countries those members come from, by the same source
- 11
- Languages they work in, by the same source
That set three requirements for the work. Each role had to see and do only what belonged to it. Bookings had to stay accurate between WordPress and FlexBooker as they changed. And private material such as session video and chat records had to stay limited to the people it belonged to.
The approach we chose
We used FlexBooker as the external booking engine and built everything specific to VerySoul as a custom WordPress plugin around it. Role-based access controls decide what each person sees:
- Mediums. Accept or reject booking requests, follow session and message status, send emails and view payment history from a custom dashboard.
- Clients. Discover mediums, book appointments, review their session history, save videos, and use live chat and support.
- Administrators. Monitor users and sessions, view analytics on mediums and payments, and use blocking and moderation tools.
A session moves through four stages across those roles:
- Book. A client chooses a medium and books an appointment, which syncs with FlexBooker in both directions.
- Accept. The medium accepts or rejects the request from their dashboard, and notifications go out.
- Hold the session. Client and medium connect through video conferencing and live chat, with session status tracked as it happens.
- Follow up. The session is archived for the people involved, payment records update, and support stays available.
What we built
Our contribution was full-stack development of the plugin: database design, backend logic, interfaces and the integration with FlexBooker.
A data model for three roles
Database schemas and backend logic were designed around the medium, client and administrator roles. MySQL holds session data, user profiles, chat records and payment logs, while PHP8 handles session management, authentication and notification flows.
FlexBooker integration
The FlexBooker API handles creating and changing appointments, with two-way sync into WordPress. We extended the integration to support real-time session tracking, multi-stage payment processing and dynamic messaging.
A dashboard for mediums
Mediums work from a secure, dynamic dashboard where they handle booking requests, update sessions, message clients and review their payment history.
A simpler journey for clients
Clients get interfaces for choosing a medium, managing appointments and communicating around a session. They can review their full session history and save session videos, with live chat and support available.
Analytics and moderation for administrators
Administrators have analytics charts showing medium statistics and payment flows, along with user and session monitoring, and moderation tools including the ability to block users.
Live communication and notifications
JavaScript and AJAX drive live chat, gallery posts and video conferencing in the browser. Email and SMS messages are sent from inside the plugin, so people hear about changes to a booking as they happen.
Three kinds of user share one session, and each should see only the part that belongs to them.
The guardrails around private sessions
Sessions on this platform are personal, and the plugin holds video, chat records and payment logs. Protecting them was part of the design rather than something added afterwards.
- Role-based access. Access controls separate what mediums, clients and administrators can see and do.
- Authenticated archives. Video conferencing and chat archives were built to be accessible only by authenticated clients and mediums.
- Moderation. Administrators have tools to monitor activity and block users, to help maintain site integrity and user safety.
- Data validation. Data passing between WordPress and FlexBooker is validated, which helps keep booking and session records reliable.
- Performance under load. WordPress, PHP8 and MySQL were tuned for high concurrency, so that live updates would not disrupt the wider site.
What was reported
The plugin launched with real-time booking, session management, messaging, payment workflow and support across all three roles. The effects below are what the project team reported; none of them is a measured result:
- Clients. Transparent medium profiles, session history and feedback are intended to build trust.
- Mediums. Session acceptance, payment processing and client communication were reported to be more streamlined.
- Administrators. They gained tools for analytics, user management, payment oversight and session moderation.
- Platform. The project team reported more appointments and positive user retention. Neither figure is published here.
What stays hard
Six challenges shaped this work, and any team building a multi-role booking platform should plan for them.
- Live updates on WordPress. Bringing live booking updates and session management into WordPress without disrupting site performance takes careful work.
- Going beyond the booking API. FlexBooker handles appointments. Real-time session tracking, multi-stage payments and dynamic messaging all had to be built around it.
- Private archives. Video conferencing and chat archives must be secure and open only to the authenticated client and medium.
- Dashboards at scale. Admin dashboards and analytics charts were built with hundreds of simultaneous sessions in mind, which puts real pressure on queries and page load.
- Moderation. Administrators need tools strong enough to protect site integrity and user safety without getting in the way of ordinary use.
- Timely messages. Email and SMS sent from inside a plugin have to arrive on time to be useful as real-time updates.