Skip to content

Quote requests ​

Submissions from the website's "Get My Custom Quote" plan builder (clinic type → team size → features → city → contact details). Open Quote requests in the CRM to work them.

Every submission is also emailed to hello@cliniify.com (reply-to is the visitor), so the sales team gets it the moment it comes in.

In the CRM ​

  1. Open Quote requests.
  2. Search by name, clinic or city; filter by status, clinic type, partner, country or date.
  3. Open the eye icon for the full answers: team size, extra features, the price the visitor saw, and their requirements.
  4. Move the status forward: New → Contacted → Quote Sent → Converted → Closed. A status cannot go backward.
  5. Export downloads the filtered list as CSV.

Website API (public — no token) ​

POST /api/quote-requests/

The partner is picked automatically from the request's Origin header, so the India partner's domain (Partners → India partner) must match the website's host, e.g. cliniify.in. Browsers send Origin on their own; when testing with curl, pass it yourself. Limited to 10 submissions per hour per IP.

Example ​

bash
curl -X POST https://<api-host>/api/quote-requests/ \
  -H "Content-Type: application/json" \
  -H "Origin: https://cliniify.in" \
  -d '{
    "clinic_type": "MULTI_CHAIR",
    "doctors": 3,
    "branches": 2,
    "receptionists": 2,
    "admin_managers": 1,
    "features": ["AI_FACE_RECOGNITION", "ADVANCED_ANALYTICS"],
    "city": "Mumbai",
    "estimated_price": 2999,
    "name": "Dr. Asha Mehta",
    "phone_number": "+91 98765 43210",
    "email": "asha@smile.com",
    "clinic_name": "Smile Dental Clinic",
    "requirements": "We need lab integration"
  }'

Success (201):

json
{
  "success": true,
  "message": "Quote request submitted successfully.",
  "data": { "id": 12, "status": "NEW", "feature_labels": ["AI Face Recognition", "Advanced Analytics Dashboard"], "...": "..." }
}

Validation errors come back as 400 with the field names, e.g. {"clinic_type": ["\"HOSPITAL\" is not a valid choice."]}.

Fields ​

FieldRequiredNotes
clinic_typeyesSOLO (Solo Practitioner), MULTI_CHAIR (Multi-Chair Clinic), CHAIN (Dental Chain / Group), SPECIALTY (Specialty Practice)
doctorsno, default 1Whole number 1–1000 (Dentists / Doctors slider)
branchesno, default 11–1000 (Clinic Branches slider)
receptionistsno, default 11–1000
admin_managersno, default 11–1000 (Admin / Managers slider)
featuresno, default []Only the optional features the visitor ticked (the "Included" ones are in every plan, don't send them). Allowed: AXON_AI_COPILOT, AI_FACE_RECOGNITION, INVENTORY_TRACKING, ADVANCED_ANALYTICS, AI_3D_SCAN, MULTI_LOCATION_COMMAND_CENTRE, DEDICATED_ACCOUNT_MANAGER
cityyesThe tile picked (e.g. Mumbai, Delhi / NCR, Other City) or the typed search text, max 100 chars
estimated_pricenoMonthly price the website showed the visitor, a number. Informational only — it is calculated in the browser, so don't treat it as the final quote
nameyesFull name
phone_numberyesMax 20 chars
emailyesValid email
clinic_nameyes
requirementsnoFree text

India only

Quote requests exist for India only. A request from any other country's partner domain is rejected with 400 ("Quote requests are only available for India."), and the Quote requests menu is shown only to the portal team and India partner teams.

Cliniify CRM user documentation