A company builds a customer-facing mobile app using React Native. They want to embed their Copilot Studio agent directly inside the mobile app so users can chat without leaving the app. The mobile app team cannot use an iframe (not supported in React Native). The agent must maintain session state and support rich responses including adaptive cards. Which deployment approach supports this requirement?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Direct Line is the universal adapter for custom-built apps — it turns any app into a bot channel by letting you send and receive messages as raw JSON. The React Native team builds the chat UI themselves and uses Direct Line as the messaging backbone, with session tokens keeping the conversation alive.
Full explanation below image
Full Explanation
When an application cannot use an iframe-based web chat (which is the case for native and React Native mobile apps), the correct integration mechanism is the Direct Line channel. Direct Line is a REST API and WebSocket-based protocol that allows any custom application to communicate with a Copilot Studio agent as if it were a bot framework channel.
In practice, the React Native app uses the Direct Line REST API or the Bot Framework Direct Line JavaScript SDK to: (1) create a conversation (receiving a conversation ID and token for session management), (2) send user messages as activities, (3) receive agent responses (including adaptive card payloads) via polling or WebSocket, and (4) render the responses using native React Native UI components. Adaptive cards are delivered as JSON payloads that the app can render using a React Native adaptive card library.
Sessions are maintained through the conversation token issued at the start of each Direct Line conversation. The token can be refreshed to keep long sessions alive.
Option A is incorrect because routing users through the Teams mobile app creates friction — users must switch apps, have a Microsoft 365 account, and interact within Teams' UI constraints. This defeats the purpose of embedding the agent in the company's own app.
Option B is almost correct in naming Direct Line, but it omits the critical implementation detail of the SDK or REST API and does not address adaptive card rendering. The full answer (D) is more complete and accurate.
Option C is technically possible (React Native has WebView components) but is considered a poor practice. WebView-embedded web chat inherits all the limitations of a web page, cannot leverage native UI capabilities, has worse performance and accessibility, and behaves differently across iOS and Android. For a production mobile app, native Direct Line integration is the recommended architecture.
Exam tip: Direct Line = custom app integration (mobile apps, desktop apps, kiosk terminals, anything non-standard). Remember that the agent still runs in Copilot Studio — Direct Line is just the channel connecting the custom app to it.