01 · The challenge
What needed solving
A cargo call-center team was handling complex inbound enquiries — rate quotes, shipment tracking, claims, pickup bookings — with PDF scripts and tribal knowledge. New agents took 4–6 weeks to ramp, disposition data was scattered across spreadsheets, and supervisors had no way to spot where calls were going wrong.
02 · Our approach
How we framed the work
We started with a discovery sprint to map the user journey, business goals and real constraints. From there we wrote a fixed-scope plan: clear milestones, weekly review gates on a staging URL, and a written exit criterion for every phase. The web development space rewards teams that ship — not teams that plan — so we biased the engagement towards working software from week two onward.
03 · The solution
What we built
We built a Laravel platform with two surfaces. An admin authoring tool models the call as Service → Flow → Step → Option → Ending — admins drop in the line to read to the customer, the question to ask, required fields to capture, internal-only agent notes, and escalation instructions per step. An agent runtime walks the script step-by-step at /agent/sessions/{session}/step/{step}, persisting every answer into a JSON data payload on CallSession with start, end, current step and final ending. Role-based middleware (role:admin) gates the authoring side; agents only see the runtime. Built on Laravel + Blade + Tailwind + Vite, with PHPUnit coverage for the flow-traversal logic.
04 · The results
What changed for the client.
New-agent ramp time shortened from 4–6 weeks to under 2 weeks — the script teaches the call
Every call session captured with structured data — supervisors can replay any path end-to-end
Non-technical ops leads ship new call flows in hours without engineering involvement
Tech stack
Want a similar outcome for your business? We'd love to hear about it.