A product manager wants to track a specific business event in a Copilot Studio agent: whenever a user successfully submits a vacation request through the agent (completing an entire multi-step topic), the event should be logged with the employee's department, the number of days requested, and whether it was flagged for manager approval. Copilot Studio's built-in analytics do not capture this level of business-context detail. Which approach correctly implements this custom event tracking using Azure Application Insights?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Application Insights has a Data Collector REST API (the Track endpoint) that accepts custom JSON payloads — it's like dropping a postcard in a very fast global mailbox with any properties you want on it. A Power Automate HTTP action at the end of the topic POSTs the event name and your custom business properties, and they appear immediately in Application Insights' customEvents table for KQL querying and dashboards.
Full explanation below image
Full Explanation
Azure Application Insights supports custom event tracking through its Data Collector API (also called the Track endpoint or ingestion endpoint), which accepts HTTP POST requests with a JSON payload describing the telemetry item. This is the most direct and flexible approach for logging business-context events from Power Platform.
Option A is correct because it uses the right mechanism for the right purpose. At the end of the vacation request topic (after the submission is confirmed), a Power Automate cloud flow action makes an HTTP POST to the Application Insights Data Collector API endpoint (https://dc.services.visualstudio.com/v2/track). The JSON payload includes: name: 'VacationRequestSubmitted', time: utcNow(), iKey: [Instrumentation Key], and a data object containing the custom properties (department, daysRequested, requiresApproval). These events appear in Application Insights' customEvents table and can be queried with KQL, used in dashboards, and configured for alerting. The custom properties are indexed and filterable.
Option B is incorrect. Application Insights availability tests are designed for uptime monitoring — they probe a URL at regular intervals to verify that a service responds correctly. They are not a mechanism for tracking business events that occur during real user interactions. Running synthetic vacation requests is not equivalent to logging actual user submissions and would generate false data mixed with real usage.
Option C is incorrect. The built-in Copilot Studio diagnostic telemetry connection to Application Insights logs system-level events like session start, turn completion, and topic trigger — it does not log business-specific event payloads with custom properties like department or days requested. Parsing free-text message content with KQL (searching for 'vacation request submitted' in conversation text) is brittle, depends on exact wording, and cannot extract structured business properties like department and approval flag from conversation text reliably.
Option D describes an unnecessarily complex event routing architecture. Direct Line → Event Hub → Stream Analytics → Application Insights involves three intermediate services and significant infrastructure cost and latency for what is essentially a simple HTTP POST requirement. This architecture might be justified for high-volume telemetry scenarios, but for event tracking at the end of a conversational topic, the direct Data Collector API call is far simpler and sufficient.
Exam tip: For Application Insights custom event questions on AB-620, know the Data Collector API endpoint, the required JSON payload structure (iKey, name, time, data with properties), and that custom events land in the customEvents table in Application Insights. Know that customDimensions holds the custom property key-value pairs and customMeasurements holds numeric values. The Instrumentation Key (iKey) or Connection String is the authentication mechanism for the Data Collector API.