> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ada.cx/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ada.cx/_mcp/server.

# Messaging SDKs start a new session only when the end user engages

The Messaging SDKs now wait for engagement before creating a new conversation session. A hidden, zero-sized, or transparent native view no longer creates a session or sends the automatic greeting at app launch. A native view also waits while the app runs in the background. An existing session still restores at once.

On native views with visibility reporting, `isOpen()` and `getInfo().isChatOpen` follow view visibility and return `false` before the first visibility report.

* iOS 1.6.2 and Android 1.6.1: a view creates a new session when native visibility checks pass or a call needs a session. See the [iOS](/messaging/ios/sdk-api-reference#session-start) and [Android](/messaging/android/sdk-api-reference#session-start) references.
* React Native 1.5.3: pass the new [`visible`](/messaging/react-native/sdk-api-reference#visible) prop to get the same behavior. Without the prop, the view starts the session when it mounts.
* Headless hosts on every platform: a new session starts on the first call that needs one, such as `sendMessage`. To show the opening message before the end user types, call `triggerGreeting()` after start. See the [web](/messaging/web/sdk-api-reference#headless) reference.