PROJECT

Service booking software for existing CRMs

Custom software development, CRM booking module, Appointment scheduling software, Booking management, REST API integrations, Role-based access, Responsive web interfaces

  • Industry: Professional services
  • Czech Republic Location: Czech Republic
  • Delivery time: 16 weeks
  • Technologies: PHP, JavaScript / TypeScript (Node.js)
4+ months

This service management company spends time coordinating customer appointments, staff assignments, and booking statuses inside an existing CRM. Service booking software adds these functions to the CRM without replacing it. It takes appointment and customer data into one booking flow, then gives administrators, users, and staff responsive panels for managing bookings and notifications. The solution is made to reduce manual coordination across the client’s booking operations.

Summary

Problem

The client manages bookings and appointments inside an existing CRM.

Solution

The solution became a service booking module integrated with the existing CRM, roles, permissions, and APIs.

Result

The module is made to keep booking operations inside the existing CRM.

Client story

The client is a service management company from the Czech Republic. It coordinates customers, staff, technicians, and service requests through an existing CRM.

The client manages pending appointments and assigned staff in the CRM. Customer details, resources, and order statuses are part of the same work.

The request was simple: add booking and scheduling workflows without replacing the CRM, changing current permissions, or disrupting existing data and integrations.

The solution was shaped as separate panels for administrators, users, and staff. It connected booking management with invoices and resource reservation.

Notifications and API integrations remained part of the CRM structure.

The client asked for

  1. Handle bookings, cases, tasks, sales, invoices, and service requests.
  2. Connect internal systems, third-party services, and external platforms.
  3. Give users role-based access with separate interfaces.
  4. Work responsively on desktop, tablet, and mobile devices.

Why ready-made software did not fit

A custom module fit the existing CRM codebase, roles, permissions, and panels. It also connected booking management with invoicing and resource reservation.

Project overview

The solution was designed around the existing CRM rather than as a separate booking platform. Laravel 11, MySQL, and Nwidart Modules kept the booking functions within the current application structure.

To handle the main operational flow, a booking dashboard was provided for pending appointments, customer records, and assigned staff. It also includes booking statuses and order status updates.

Separate administrator, user, and staff panels preserve existing roles and permissions. Staff see assigned bookings and booking notifications, while administrators manage module settings and optional CRM functions.

Special attention was paid to invoicing, resource reservation, and WebSockets. REST APIs connect the module with internal systems and external services.

The main challenge was adding new operational functions without changing the client's current infrastructure. As a result, invoice tracking and modification history could be added as separate modules.

Custom CRM modules and API integrations could also be added later.

Key features delivered

  • Booking dashboard with pending appointments
  • Client appointment management
  • Booking status controls
  • Assigned staff and resource selection
  • Responsive appointment forms
  • Role-based administrator, user, and staff panels
  • Real-time booking notifications
  • Invoice and modification history options
  • REST API and webhook integrations

Can be added

+ Invoice tracking + Modification history tracking + Custom CRM modules + API integrations

Who else can use this solution

Other professional service businesses with a similar booking task can adapt the same solution to their own CRM and operating rules.

A field-operations business

Task It coordinates customers, technicians, assignments, appointments, and service requests.
How the solution helps The solution keeps bookings, staff panels, statuses, and notifications connected to the existing CRM.

A case-management business

Task It manages requests, staff work, appointments, and customer records through operational processes.
How the solution helps The solution adds role-based booking management without replacing the current CRM.

Technology stack

PHP

CRM application development

PHP supports the existing CRM application and its integrations.

JavaScript / TypeScript (Node.js)

CRM module support

JavaScript and TypeScript support CRM modules and connected services.

Python

Service utility support

Python supports utilities used around the CRM services.

Laravel 11

CRM module framework

Laravel 11 provides the application structure for the booking module.

MySQL

CRM data storage

MySQL stores bookings, appointments, customers, assignments, statuses, and configuration.

Nwidart Modules

Modular CRM structure

Nwidart Modules keeps booking and optional CRM functions organized as modules.

WebSockets

Booking event notifications

WebSockets provide real-time notifications for booking events.

REST APIs

System connections

REST APIs connect booking functions with internal systems and external services.

JSON

API data exchange

JSON carries data between the module and connected services.

PDF

Requirement document handling

PDF supports requirements used by the CRM workflow.

Integrations

Existing CRM

Bookings, customers, staff assignments, order statuses, roles, and permissions remain connected to the existing CRM.

REST APIs and webhooks

Booking and CRM data can pass between internal systems, third-party services, webhooks, and external platforms.

Invoicing

Booking management can connect appointment and service records with invoice tracking.

WebSockets

Booking events pass through WebSockets as real-time notifications for staff and other CRM users.

The result

Pending bookings stay visible to the service manager

The booking dashboard brings pending appointments, customer details, and assigned staff into one CRM panel. Status controls also support updates to an existing order.

This gives the service manager a clear view of booking work alongside customer and staff records.

How it works

  1. The booking list shows service bookings and pending appointments.
  2. Status filters organize bookings by their current state.
  3. Customer records, staff assignments, appointment times, and order statuses appear with the booking.
  • Manage pending bookings
  • Update order status
  • Review client appointments
Booking dashboard with pending appointments

Booking dashboard with pending appointments

Functions on this screen
Manage pending bookings Booking Management System Update Order Status Manage client appointments

Users manage appointments through the CRM flow

The appointment form keeps service selection, customer details, and appointment dates in the CRM booking process. It also includes resource selection and confirmation.

Its responsive layout supports desktop, tablet, and mobile screens.

How it works

  1. The form presents service information, appointment details, and customer data.
  2. Resource selection connects the appointment with reserved resources.
  3. The booking record includes its confirmation and status.
  • Modify the booking process
  • Manage client appointments
  • Reserve resources
Tip: The responsive form keeps appointment scheduling available across desktop, tablet, and mobile devices.
Appointment form for users

Appointment form for users

Functions on this screen
Modify booking process Booking Management System Manage client appointments

Staff receive assigned booking updates

The staff panel focuses on assigned service bookings, appointment details, and current statuses. A notification panel brings booking events into the same operational view.

How it works

  1. The assigned booking list shows service bookings allocated to the staff member.
  2. Appointment details and booking statuses appear in the staff panel.
  3. WebSockets provide notifications for booking events.
  • Review assigned bookings
  • Follow appointment statuses
  • Receive booking notifications
Staff panel with booking notifications

Staff panel with booking notifications

Functions on this screen
Manage pending bookings Allocate workers by location

Administrators control the module and its connections

The administrator panel brings roles and permissions, booking configuration, and optional invoice tracking together. It also includes modification history and API settings.

It preserves the existing access model while leaving room for additional CRM functions.

How it works

  1. The panel shows existing roles and permissions with booking configuration.
  2. Invoice statuses and order modification timestamps support optional CRM functions.
  3. API connection data stores the settings used for connected systems and services.
  • Customize CRM modules
  • Track invoices
  • Track modification history
  • Develop API integrations
Note: Optional modules extend booking management with invoices, history, custom CRM functions, and API connections.
Administrator module settings

Administrator module settings

Functions on this screen
Customize CRM modules Invoice Tracking Modification History Tracking Develop API Integrations

What the solution gives

With this solution, the service management company can:

  • Manage pending bookings and client appointments in the existing CRM.
  • Assign staff and reserve resources within the booking flow.
  • Give administrators, users, and staff separate role-based panels.
  • Send booking event notifications through WebSockets.
  • Connect booking functions with invoices and external services.
  • Use the CRM booking interface across desktop, tablet, and mobile devices.

In the end

In the end, the solution was made to keep service bookings inside the client's existing CRM.

FAQ

Thinking about building a similar system? Read the answers below to see how a CRM-based service booking module can be structured.