Setup builder

Fill this in, copy one snippet

No hand-edited JSON. Everything you change appears in the live preview on the right, and the snippet at the bottom is what you paste into your site.

Your company

The phone number is the fallback shown if a request ever fails to send.

Look

Only these two settings affect appearance — the rest is isolated from your theme on purpose.

Pricing

List the places you drive to, then price only the pairs that matter. Anything unpriced becomes an enquiry instead of a guess.

Vehicles

The multiplier scales every zone price. 1.45 means this vehicle costs 45% more than your base price.

Where requests go

Use the PHP handler from the download on shared hosting, or a Cloudflare Worker URL. Leave this wrong and no booking ever reaches you.

Live preview

Your embed code

<div id="chauffeur-quote"></div>
<script>
window.chauffeurQuoteConfig = {
  "business": {
    "name": "Halden Black Car",
    "phone": "+1 555 0164",
    "email": "bookings@example.com",
    "leadTimeHours": 3
  },
  "theme": {
    "accent": "#1F5F4B",
    "radius": "6px",
    "display": "inline",
    "maxWidth": "620px"
  },
  "vehicles": [
    {
      "id": "sedan",
      "name": "Executive sedan",
      "pax": 3,
      "bags": 2,
      "note": "Mercedes E-Class",
      "multiplier": 1
    },
    {
      "id": "suv",
      "name": "Luxury SUV",
      "pax": 6,
      "bags": 5,
      "note": "Cadillac Escalade",
      "multiplier": 1.45
    }
  ],
  "pricing": {
    "mode": "zones",
    "symbol": "$",
    "places": [
      "Logan Airport",
      "Boston",
      "Cambridge",
      "Brookline",
      "Newton"
    ],
    "matrix": {
      "Logan Airport|Boston": 89,
      "Logan Airport|Cambridge": 95,
      "Boston|Cambridge": 55
    },
    "hourlyRate": 85,
    "minHours": 3,
    "returnDiscount": 0.1,
    "note": "Prices include tolls, parking and gratuity. Routes we don't list are quoted by return."
  },
  "submit": {
    "mode": "webhook",
    "url": "/quote-handler.php"
  }
};
</script>
<script src="/chauffeur-quote.js" defer></script>

Paste it into a Custom HTML block. Then run ChauffeurQuote.selftest() in the browser console on the live page before you send any traffic.