Dealko
The first Slovenian AI assistant for comparing telecom packages — intelligent conversation, lead qualification, and a GDPR-compliant embeddable widget that drops into partner sites in minutes.
Overview
Most telecom comparison tools in Slovenia are static tables. Dealko is the first to let a user actually talk about what they need — “three lines, 80 GB shared, streaming included” — and get a qualified recommendation back, along with a GDPR-compliant path to become a warm lead for the matching operator.
I built the system end-to-end: a React widget that drops into any partner site with a single <script> tag, a PHP backend that brokers conversations and enforces GDPR consent, and an OpenAI layer with tool-calling for plan lookup, port-eligibility checks, and lead handoff.
The interesting engineering isn’t the LLM — it’s the GDPR consent flow, the idempotent lead-handoff to the operator’s backoffice, and the widget architecture that keeps conversation state even when the user reloads the page.
Architecture
Reading the diagram: The widget embedded on partner sites and the operator console both speak only to the PHP broker — never directly to OpenAI. The broker enforces budget, GDPR consent, content safety, and idempotent lead handoff. Leads reach the operator CRM only after explicit consent has been recorded.
Six things shipped,
three hard ones solved.
Key contributions
- Built the React widget with shadow-DOM isolation so it can't leak styles into partner sites.
- PHP broker enforcing budget, consent, content safety, and tool-call routing.
- OpenAI integration with function-calling for plan lookup, port-eligibility, and lead handoff.
- GDPR-first lead flow — explicit consent capture, deletion-on-request, conversation retention policy.
- Operator admin console for partners to watch live conversations and debug edge cases.
Challenges solved
- Being first in market — no reference design to copy from, UX patterns invented from scratch.
- GDPR-compliant conversation logging without losing the context needed to debug AI behavior.
- Idempotent lead handoff so a network retry never creates a duplicate lead in the CRM.
The interesting engineering isn't the LLM — it's the GDPR consent flow, the idempotent hand-off to the operator's CRM, and the widget architecture that survives a page reload mid-conversation.
What's under the hood.
Pripravljeni popraviti, zgraditi
ali skalirati?
30 minut, z mano osebno. Preberem vaš sistem kot dnevniško datoteko in povem, kaj bi naredil najprej. Brez prezentacij, brez prodajnega lijaka.
— Davor Majc, ustanovitelj, Numen