[{"data":1,"prerenderedAt":86},["ShallowReactive",2],{"work-call-data-center":3},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":7,"client":9,"year":10,"role":11,"summary":12,"result":13,"tech":14,"featured":6,"order":20,"cover":21,"body":22,"_type":80,"_id":81,"_source":82,"_file":83,"_stem":84,"_extension":85},"\u002Fwork\u002Fcall-data-center","work",false,"","The phone desk that books the same inventory as the website","Call Data Center",2024,"Call-center ops","Agents were taking airport transfers on the phone and typing them into a tool that didn’t match the public booking. We built the operator console on the same cars, drivers, and fares.","Phone bookings on the live fleet",[15,16,17,18,19],"Vue 2","Vuetify","Node.js","MySQL","Socket.io",6,"call",{"type":23,"children":24,"toc":73},"root",[25,34,40,46,51,57,62,68],{"type":26,"tag":27,"props":28,"children":30},"element","h2",{"id":29},"the-problem",[31],{"type":32,"value":33},"text","The problem",{"type":26,"tag":35,"props":36,"children":37},"p",{},[38],{"type":32,"value":39},"The website could book a sedan. The phone could not — not without a side channel. Agents worked from a different list of cars, guessed surges, and assigned drivers the public site didn’t know about. By the afternoon, two versions of “what’s on the road” existed.",{"type":26,"tag":27,"props":41,"children":43},{"id":42},"the-approach",[44],{"type":32,"value":45},"The approach",{"type":26,"tag":35,"props":47,"children":48},{},[49],{"type":32,"value":50},"We didn’t build a CRM with a notes field. We put the agent on the same reservation object the customer uses: search, filter, draft, assign, collect payment type. The console is dense on purpose — a headset shift is not a marketing page.",{"type":26,"tag":27,"props":52,"children":54},{"id":53},"the-solution",[55],{"type":32,"value":56},"The solution",{"type":26,"tag":35,"props":58,"children":59},{},[60],{"type":32,"value":61},"A Vue 2 operator app: reservation queue with status, payment type, customer and transaction IDs, assigned drivers. Side filters instead of a pretty dashboard. CRUD for cars, add-ons, discount codes, affiliates, and surges so the person on the call isn’t waiting on an admin in another building. Live updates when a trip changes while they’re still on the line.",{"type":26,"tag":27,"props":63,"children":65},{"id":64},"the-result",[66],{"type":32,"value":67},"The result",{"type":26,"tag":35,"props":69,"children":70},{},[71],{"type":32,"value":72},"A booking taken at the desk is a real reservation on the fleet — same cars, same drivers, same fare rules. The agent isn’t the integration layer. The inventory is.",{"title":7,"searchDepth":74,"depth":74,"links":75},2,[76,77,78,79],{"id":29,"depth":74,"text":33},{"id":42,"depth":74,"text":45},{"id":53,"depth":74,"text":56},{"id":64,"depth":74,"text":67},"markdown","content:work:call-data-center.md","content","work\u002Fcall-data-center.md","work\u002Fcall-data-center","md",1789258141857]