Nicolas Sitter
Back to Blog
Research NotesOctober 29, 20266 min read

Instinct Behind the ScenesWhat the personal agent’s web app sends to the browser

Instinct is a personal AI agent you text. Its web workspace loads your account through a few GraphQL calls, and those calls list 33 feature flags, 13 kinds of connection and the agent’s own phone numbers and email. Travel and payments take up a large share of the list.

By Nicolas Sitter

  • Travel is wired in. 8 of the 33 flags are about trips: five name Duffel, a travel booking API for flights and hotels, and three name hotels directly.
  • So are payments. 7 flags cover Stripe’s Link wallet and Shopify’s Shop Pay, so the agent can pay at checkout.
  • The connector list is longer in the code than on the page. The page shows 8 connectors. The query behind it asks for 13, including Whoop, Spotify, 1Password and bank accounts.
  • The agent has its own identity. It has a US texting number, a voice and WhatsApp number, and its own address at mail.instinct.com.
  • Seen from a website, it looks like a person. On this site’s test page, its browser was a normal Chrome on Windows, behind French home-broadband IP addresses.

What I looked at

I opened my own account at app.instinct.com on 29 October 2026 with the browser’s developer tools open, and read the responses in the Network tab. Every call is one the page makes by itself when it loads. Nothing was modified, replayed or bypassed.

Three responses carry most of the information: the session (authSession), the list of connections (useWorkspaceConnectionsQuery) and the agent’s contact details (agentContact).

Feature flags are switched on per account and can change at any time. Their names are internal labels, and what each one does is my reading of the name, not something Instinct has documented. A flag being on does not mean the feature works yet.

33 feature flags on one account

The session response includes a list called enabledFeatureFlags. On my account it holds 33 entries. Grouped by what the names point to:

Browser developer tools showing the enabledFeatureFlags list in the Instinct session response
The enabledFeatureFlags list in the session response, as shown in Chrome’s Network tab.
GroupFlagsNames
Travel8
duffel_bookingduffel_flightsduffel_link_bookingduffel_live_bookingduffel_support_linkshotelshotel_bookinghotel_live_booking
Agent runtime8
supervisor_projectionsupervisor_readonly_toolssupervisor_external_readonly_toolssupervisor_subscription_wakesstreaming_executionbrowser_nav_linger_skipexternal_polling_safetyproactive_value_creation
Payments and shopping7
link_paymentslink_payments_web_approvallink_cashpayments_cleanupshop_walletshop_checkoutshopify
Channels6
agent_mailagent_to_agentgroup_chatswhatsapp_channelvoice_shortcutphone_outbox_typing_delay_experiment
Security and sharing3
security_alarmpassword_handoff_linkstrusted_network_join_links
Connectors1
granola

A few names explain themselves. phone_outbox_typing_delay_experiment suggests a test of how long the agent waits before a text arrives, so its replies feel less instant. proactive_value_creation fits reports that Instinct messages users first. The four supervisor_* flags suggest a second model that watches the agent and is limited to read-only tools.

Travel: Duffel for flights, and hotel booking

Duffel is a travel API. It sells flights, and through its Stays product it searches and books hotels. Duffel Links is its hosted booking page. Five flags carry its name, including duffel_link_booking and duffel_support_links.

I found no public announcement of the two working together. Searching Google for “instinct duffel” returns something else: a 45-litre duffel bag from Instinct, a French trail-running brand, which the AI Overview describes compartment by compartment.

Google results in French for 'instinct duffel': a 45-litre Duffel Pack bag from the trail brand Instinct, with an AI Overview describing the bag
Google France, 29 October 2026: “instinct duffel” finds a bag.

Three more flags are about hotels without naming a supplier: hotels, hotel_booking and hotel_live_booking. Both families come in a plain and a live version, which usually separates a test setup from real bookings.

For a hotel, this changes who the guest is talking to. If the agent books through a travel API, it sees the rooms and rates that API carries, not the hotel’s own website. A hotel’s direct rate reaches this guest only if the agent goes and looks for it. Whether Instinct does that is something this view of the app can’t show.

Payments: Stripe Link and Shop Pay

Four flags start with link_ or payments_. Link is Stripe’s saved-payment wallet. link_payments_web_approval suggests the user confirms a payment in a browser page before the agent can complete it. Three more flags cover Shopify: shopify, shop_wallet and shop_checkout. The Connectors page lists Shop Pay with a Beta label.

Connectors: 8 on the page, 13 in the query

Instinct Connectors page listing Google Workspace, Outlook, Linear, Notion, GitHub, Slack, Granola and Shop Pay
The Connectors page on my account. My name and phone number, shown in the sidebar, are cropped out.

The page shows eight connectors: Google Workspace, Outlook, Linear, Notion, GitHub, Slack, Granola and Shop Pay. The query that fills it asks for more:

In the queryOn the pageWhat the query asks for
Google Workspace, Outlook, Linear, Notion, GitHub, Slack, GranolaYesAccount, email, and whether it was revoked
Shop Pay walletYes (Beta)Email, whether it was revoked
Stripe LinkSwitched on in the queryWhether it is connected
WhoopNo, switched offEmail, first and last name
SpotifyNo, switched offAccount label
1PasswordNo (null on my account)Status, whether it can connect
FinanceNo (null on my account)Each bank: name, status, date connected, and each account’s name, last digits and type

The query switches connectors on and off with three variables, sent as {"showWhoop":false,"showStripeLink":true,"showSpotify":false}. So Whoop and Spotify exist in the product and are hidden for my account. The finance field is the most notable: it is built to list connected bank accounts down to the last digits of each account number.

The agent has its own phone and email

The agentContact response is the agent’s own identity, separate from mine. I’ve masked the numbers and the address:

{
  "smsPhoneNumber":             "+1 650 ",
  "voicePhoneNumber":           "+1 650 ",
  "voiceCallsEnabled":          false,
  "whatsAppChannelPhoneNumber": "+1 650 ",
  "email":                      "@mail.instinct.com",
  "agentMailStatus":            "READY",
  "agentPhoneNumber":           null,
  "agentPhoneStatus":           "NOT_AVAILABLE"
}

Three things stand out:

  • US numbers for a French account. All of them are in the 650 area code, around San Francisco, even though my account is on a French mobile number.
  • The WhatsApp and voice numbers are the same. Voice calls are switched off for me.
  • The agent has a working mailbox. agentMailStatus is READY, matching the agent_mail flag. A hotel could receive a booking request or a question from this address, written by the agent.

A separate field, agentPhoneNumber, is empty and marked NOT_AVAILABLE. It looks like a planned feature, perhaps a dedicated line per user.

What a website sees

Earlier this month I gave Instinct a test page on this site, which records how each visitor’s browser presents itself. Between 13 and 25 October it opened the page 43 times. 38 of those visits came from 21 October on, most of them on a schedule about every three hours.

SignalWhat Instinct’s browser showed
BrowserGoogle Chrome 155, not headless, navigator.webdriver false
MachineWindows with an NVIDIA RTX 3060 Ti on 42 of 43 visits; a Linux cloud GPU (NVIDIA L40S) once
NetworkFrench home and mobile broadband: SFR, Bouygues Telecom, Orange, Free and Free Mobile, from 29 different towns
Language and time zoneen-US, Europe/Paris
Screen1280 × 720
Before the browserOn one run, a plain fetch by ExaUser/1.0, Exa’s search crawler, signed with Web Bot Auth

There is no user agent to recognise and no published IP range. For a hotel, a visit from Instinct shows up in analytics as a person in France on a Windows PC, and firewall rules that block headless browsers don’t touch it. The pages loaded normally on every visit.

Instinct is also one of the two companies behind PACT, a protocol that lets a personal agent talk to a business’s own agent. Its agent_to_agent flag is on for my account. This site answers PACT requests at /a2a, and no Instinct request has reached it so far.

Limits

  • One account, on one day. Flags are per account and change. Another user may see a different list.
  • Names, not behaviour. I read what the flags and fields are called. I did not book a flight, a hotel or a purchase through the agent.
  • The test page measures one site. The French IP addresses may follow the account’s country. A user elsewhere may see other networks.

I work at Lighthouse, which owns The Hotels Network and sells software to hotels and hotel groups. This piece uses no Lighthouse data.