Bronjoy
Guides

Client Management

Manage your client base — profiles, notes, history, and communication.

Overview

Clients are the end customers who book appointments. Bronjoy maintains a client base per organization — the same person may be a client in multiple organizations with separate profiles.

Creating Clients

Clients are created automatically when they book their first appointment. You can also create them manually:

POST /api/org/clients
Authorization: Bearer your-token
Content-Type: application/json
{
  "name": "Maria Garcia",
  "phone": "+998901234567",
  "email": "[email protected]",
  "notes": "New client, referred by Alex"
}

Listing Clients

GET /api/org/clients
Authorization: Bearer your-token

Search and filter:

GET /api/org/clients?search=maria&sort=last_appointment_at&direction=desc

Client Profile

GET /api/org/clients/{client}

The client profile includes:

  • Contact information
  • Appointment statistics (total, completed, cancelled, no-show)
  • Last appointment date
  • Notes

Appointment History

View a client's full appointment history with your organization:

GET /api/org/clients/{client}/history

Use this when:

  • A client calls to ask about a past appointment
  • You're checking a client's cancellation/no-show pattern
  • You want to understand a client's preferences

Client Notes

Internal notes are visible only to staff — clients never see them. Use notes to record:

  • Preferences and sensitivities ("prefers morning appointments")
  • Medical considerations ("allergic to latex")
  • Communication notes ("always call, never texts back")
# Add a note
POST /api/org/clients/{client}/notes
Content-Type: application/json
{ "note": "Prefers stylist Alex. Very particular about fringe length." }
# View notes
GET /api/org/clients/{client}/notes

Updating a Client

PUT /api/org/clients/{client}
Content-Type: application/json
{
  "phone": "+998909876543",
  "email": "[email protected]"
}

Batch Operations

POST /api/org/clients/batch-update
Content-Type: application/json
{
  "ids": [10, 11, 12],
  "data": { "is_vip": true }
}

Reviews

Clients leave a review after a completed appointment:

GET /api/client/reviews/reviewable
Authorization: Bearer client-token
POST /api/client/reviews
Authorization: Bearer client-token
Content-Type: application/json
{
  "appointment_id": 101,
  "rating": 5,
  "comment": "Great service, will book again!"
}

View and respond to client reviews (staff side):

GET /api/org/reviews
GET /api/org/reviews/stats
GET /api/org/reviews/trend

Respond to a review:

POST /api/org/reviews/{review}/reply
Content-Type: application/json
{
  "reply": "Thank you for your feedback! We're so glad you enjoyed the experience."
}

Tips:

  • Respond to all reviews, especially negative ones — it shows professionalism
  • Keep responses short and personal
  • Don't argue with negative reviews; acknowledge and offer a remedy offline

Best Practices

  • Never delete clients — deactivate them if needed. Deletion removes appointment history.
  • Keep notes up to date — stale notes are misleading. If something changes, update the note.
  • Merge duplicates manually — if a client books with different contact info, you may get duplicates. Identify them by name and consolidate via the update endpoint.
  • Review the no-show list — clients with repeated no-shows can be flagged. Consider requiring prepayment for known no-shows.
Copyright © 2026