A July test of 200 Amsterdam restaurants showed that current AI assistants can’t finish a table reservation because the booking widget is hidden inside an iframe.
Mengapa iframe menghalangi agen
Sebagian besar alat reservasi online disajikan sebagai iframe yang tertanam (embedded). Pengunjung mengklik tombol “Reserve”, kalender muncul, dan pengguna memilih slot waktu. Bagi manusia, proses ini berjalan lancar; bagi agen AI, proses ini terhenti.
- Agen membedah (parse) halaman HTML utama.
- Tombol pemesanan mengarah ke URL di domain yang berbeda.
- Browser memuat URL tersebut di dalam iframe, mengisolasinya dari halaman induk (parent page).
Karena kebijakan same-origin (same-origin policy) memblokir skrip di halaman induk untuk membaca DOM iframe atau mencegat panggilan jaringannya, agen AI yang membaca konten halaman dan mengirimkan permintaan HTTP hanya akan melihat tombol tersebut. Agen tersebut tidak akan pernah melihat kalender, slot waktu, atau alur konfirmasi. Bahkan jika ia mengklik tombol tersebut, ia tetap harus menyelesaikan captcha, beradaptasi dengan perubahan tata letak, atau menghindari pertahanan anti-otomatisasi yang diterapkan oleh banyak layanan pemesanan.
Hilangnya tautan yang dapat dibaca mesin
Sebuah audit terpisah terhadap 163 situs restoran yang berfungsi menemukan hanya sembilan situs yang mengekspos data pemesanan yang dapat dibaca mesin. Kesembilan situs tersebut mencantumkan informasi dasar—nama dan alamat—menggunakan markup schema.org, tetapi tidak ada yang menyertakan tindakan reservasi (reservation actions) yang dapat dipanggil oleh agen. Schema.org mendefinisikan tipe seperti ReserveAction untuk tujuan ini, namun sebagian besar situs hanya memublikasikan metadata deskriptif, bukan instruksi yang dapat ditindaklanjuti (actionable instructions).
Dalam praktiknya, seorang asisten mencari data terstruktur yang memberi tahu bagaimana cara melakukan suatu tugas, bukan sekadar apa tugas tersebut. Tanpa ReserveAction atau endpoint yang sebanding, agen akan beralih ke metode meniru klik manusia, yang, seperti dijelaskan di atas, tidak dapat diandalkan.
Solusi praktis tanpa merombak UI
- Publikasikan API pemesanan – Buat endpoint HTTP ringan yang menerima permintaan JSON untuk kueri ketersediaan dan pembuatan reservasi. API tersebut mengembalikan bidang seperti tanggal, waktu, jumlah orang, dan kode konfirmasi. Agen apa pun dapat mengonsumsinya tanpa perlu merender halaman.
- Buat API dapat ditemukan – Tempatkan penunjuk di lokasi yang umum diketahui, seperti
/.well-known/booking, atau sematkan entriReserveActiondalam markup schema.org di halaman tersebut. Ini memberi tahu agen bahwa “ada cara terprogram untuk memesan di sini” tanpa memerlukan scraping. - Adopsi Model Context Protocol (MCP) – MCP memungkinkan asisten untuk memanggil alat eksternal secara langsung, mengirimkan input, dan menerima output terstruktur. Penyedia AI utama sudah mendukung MCP, sehingga restoran yang menerapkan endpoint kompatibel dengan MCP dapat dipanggil oleh agen seolah-olah itu adalah fungsi bawaan.
Langkah-langkah ini memungkinkan iframe visual tetap ada untuk pengguna manusia, sekaligus memberikan jalur yang bersih dan andal bagi agen ke data reservasi yang sama.
Kesimpulan
Menyematkan kalender di dalam iframe melindungi alur visual bagi manusia, tetapi membuat asisten AI menjadi buta. Menambahkan API pemesanan yang sederhana dan terdokumentasi dengan baik, serta mengiklankannya melalui metadata standar atau MCP, membuka saluran reservasi baru tanpa harus merombak situs web. Upaya ini meningkatkan visibilitas terhadap generasi asisten digital berikutnya, dan risikonya dapat dikelola dengan kontrol keamanan yang sama dengan yang sudah digunakan pada UI yang ada.
