I can clearly see the day when we’ll be able to summon ChatGPT, Claude, or Gemini on our phones, say something like “Hey ChatGPT, book a table for two at Outback Steakhouse tonight at 8,” and ChatGPT will simply take care of it. But that day isn’t today.
All of the big AI providers are busy unveiling integrations for everyday services ranging from Spotify and DoorDash to AllTrails and the dinner reservation app Resy, with varying degrees of success. Anthropic’s Claude is the latest example.
Aside from Resy, Claude’s other new “connectors” include lifestyle-oriented tools like Audible, Booking.com, Instacart, Intuit TurboTax, Spotify, and Taskrabbit. ChatGPT has its own set of app integrations, including Expedia, Door Dash, Zillow, and Canva, while Gemini’s list of “extensions” includes Google Maps, YouTube Music, and Spotify.
All these various integrations allow ChatGPT, Claude, and Gemini to integrate directly with these services using “tool calls”—that is, structured requests (like “get_weather” or “query_database”) that allows the AI model to get out of its chatbox and actually do something in the real world.
So when an AI provider like ChatGPT or Claude announces an integration or “connection” for Spotify or Resy, it means the companies have teamed up to develop specific tool calls for the app in question.
ChatGPT’s Spotify tool calls, for example, include functions like “add_to_library,” “get_auth_token,” “fetch_tracks,” “get_currently_playing,” and “remove_from_library,” along with instructions for the model on when and how to use the tool call (“only invoke this tool when the user explicitly asks what is currently playing.” You can see the details for yourself when browsing a specific integration in ChatGPT’s Settings > Apps menu.
These kinds of tool call-based integrations for ChatGPT, Claude, and Gemini are common because they’re reasonably safe and easy to control, exposing the AI to only those app functions that are explicitly defined by the app developers. But depending on the service in question, they can also be clunky, cumbersome, and harder to interact with than simply firing up the app yourself, and that’s certainly the case with Resy.
I went ahead and connected Resy to my Claude account (just go to Customize > Connectors and add the Resy integration), and then had a pleasant chat with Claude about where to eat near my Midtown Manhattan apartment (table for three, maybe around 6:30 pm), and Claude made a pretty solid pick (The Smith on Second Avenue; I’ve been there, and yum).
“OK, Claude, book me a table,” I asked. “The Smith is on Resy,” Claude replied. “Let me pull up tonight’s availability for 3!”
The next thing I knew, there was a big chunk of JSON (basically computer code) in the chatbox, with the heading “Claude wants to use display_resy_restaurant_availabilites_app from Resy” and big “Always allow” and “Deny” buttons. (Those buttons will be familiar to regular users of Claude Code, allowing you to approve or block pending commands before Claude executes them.) The bare JSON code isn’t an error, but from an everyday user experience, it’s pretty clunky.
Ben Patterson/Foundry
I went ahead and clicked Always Allow, and got a grid that showed all the open time slots for the day.
“Can you book a table at 7:15 pm,” I asked? “I’m not able to complete the booking on your behalf,” Claude replied. “You’ll need to tap the 7:15 p.m. slot in the Resy widget above and finish the reservation there (it’ll just take a few seconds through your Resy account). Enjoy dinner tonight!”
I did tap the 7:15 pm button, and a pop-up notified me that I was leaving Claude to go to the Resy website, where I had to tap the 7:15 pm button again to complete the reservation—at which point, I wondered, why am I bothering with all this? The Resy app on my iPhone is way faster.
To be clear, I don’t mean to single out Claude when it comes to clunky app integrations like Resy. The same tool calls and limitations that both help and hinder Claude’s Resy connector apply to similar AI integrations. Ask ChatGPT or Gemini to book a dinner reservation, and they’ll get you 90 percent there, but by the time you’ve done the other 10 percent, you’ll be wondering why you didn’t just use an app.
Of course, the real magic would be having an AI agent go out and get that dinner reservation for you, doing all the scrolling and clicking on your behalf. You can actually go ahead and try it using ChatGPT’s Agent mode, which boasts its own browser that lets it visit web pages and click on links.
So I went to ChatGPT, activated Agent mode (click the “+” button in the chatbox and select Agent), and gave it a prompt: “Book me a table at Rosa Mexicano in Turtle Bay NYC, party of three, tonight, around 6:30 pm.”
A second or two later, a browser window opened in the chatbox, and I watched as ChatGPT navigated to OpenTable and began clicking and scrolling.
Now, ChatGPT (or more specifically, OpenAI’s Codex app) may be a genius when it comes to debugging complex code bases, but it was comically inept at dealing with the relatively basic OpenTable web interface, struggling with such elementary tasks as the drop-down menu for party size (“It seems I may have mistakenly selected ‘2 people’ instead of ‘3 people,’ I’ll open the dropdown again and make sure to choose the correct option”).
Oh boy.
Ben Patterson/Foundry
(Again, I don’t mean to pick on ChatGPT here; watching Gemini poking around the web can be just as aggravating.)
Anyway, after about five minutes of agonizingly slow clicking, ChatGPT’s agent was done—sort of.
“Your table is currently being held,” ChatGPT said. “Next, the site needs your personal diner details before the reservation can be finalized. Please take over to enter those details and let me know when you’re done.”
Sigh. I’ll just go to OpenTable myself next time.
So yes, I have no doubt that eventually, our personal AI assistants will be seamlessly placing dinner reservations, ordering groceries, and booking travel plans for us. But today, it’s way easier to skip AI and just use the app.



