---
id: object/codeunit/8703
type: object
title: Codeunit 8703 "Feature Telemetry"
summary: Codeunit 8703 "Feature Telemetry" in System Application (System.Telemetry). 11 public procedures. Present since at least BC23, still in BC30, changed in BC24-25.
tier: official
language: en
tags:
  - codeunit
  - system application
versions:
  introduced: null
  last_changed: "25"
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 666589f9302cac4fc337c3aaadf7c9f36b494421196a2586ebba505a5005bdb0
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/Telemetry/src/Feature%20Telemetry/FeatureTelemetry.Codeunit.al
    title: src/System Application/App/Telemetry/src/Feature Telemetry/FeatureTelemetry.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
object_type: codeunit
object_id: 8703
name: Feature Telemetry
namespace: System.Telemetry
app: System Application
extends: null
first_version: "23"
last_version: "30"
present_in:
  - "23"
  - "24"
  - "25"
  - "26"
  - "27"
  - "28"
  - "29"
  - "30"
changed_in:
  - "24"
  - "25"
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 11
  events: 0
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 1
  called_by: 298
  implements: 0
---

# Codeunit 8703 "Feature Telemetry"

> Codeunit 8703 "Feature Telemetry" in System Application (System.Telemetry). 11 public procedures. Present since at least BC23, still in BC30, changed in BC24-25.

System Application · System.Telemetry · BC23-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/System%20Application/App/Telemetry/src/Feature%20Telemetry/FeatureTelemetry.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Access | Public |

## Procedures

- `LogUsage(EventId: Text; FeatureName: Text; EventName: Text)`: Sends telemetry about feature usage.
- `LogUsage(EventId: Text; FeatureName: Text; EventName: Text; CustomDimensions: Dictionary of [Text, Text])`: Sends telemetry about feature usage.
- `LogUsage(EventId: Text; FeatureName: Text; EventName: Text; ALTelemetryScope: Enum "AL Telemetry Scope"; CustomDimensions: Dictionary of [Text, Text])` (internal): Sends telemetry about feature usage (with the capability to send to ISVs).
- `LogError(EventId: Text; FeatureName: Text; EventName: Text; ErrorText: Text)`: Sends telemetry about errors happening during feature usage.
- `LogError(EventId: Text; FeatureName: Text; EventName: Text; ErrorText: Text; ErrorCallStack: Text)`: Sends telemetry about errors happening during feature usage.
- `LogError(EventId: Text; FeatureName: Text; EventName: Text; ErrorText: Text; ErrorCallStack: Text; CustomDimensions: Dictionary of [Text, Text])`: Sends telemetry about errors happening during feature usage.
- `LogError(EventId: Text; FeatureName: Text; EventName: Text; ErrorText: Text; ErrorCallStack: Text; ALTelemetryScope: Enum "AL Telemetry Scope"; CustomDimensions: Dictionary of [Text, Text])` (internal): Sends telemetry about errors happening during feature usage (with the capability to send to ISVs).
- `LogUptake(EventId: Text; FeatureName: Text; FeatureUptakeStatus: Enum "Feature Uptake Status")`: Sends telemetry about feature uptake.
- `LogUptake(EventId: Text; FeatureName: Text; FeatureUptakeStatus: Enum "Feature Uptake Status"; CustomDimensions: Dictionary of [Text, Text])`: Sends telemetry about feature uptake.
- `LogUptake(EventId: Text; FeatureName: Text; FeatureUptakeStatus: Enum "Feature Uptake Status"; IsPerUser: Boolean)`: Sends telemetry about feature uptake.
- `LogUptake(EventId: Text; FeatureName: Text; FeatureUptakeStatus: Enum "Feature Uptake Status"; IsPerUser: Boolean; CustomDimensions: Dictionary of [Text, Text])`: Sends telemetry about feature uptake.

## Calls

From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an `Object::"Name"` argument. Interface dispatch and calls through events are not counted, so the list is not complete.

- [Codeunit 8704 "Feature Telemetry Impl."](../codeunit/8704.md) (3 calls: `LogError → LogError`, `LogUptake → LogUptake`, `LogUsage → LogUsage`)

## Called by

- [Codeunit 427 "ICInboxOutboxMgt"](../codeunit/427.md) (52 calls: `CreateHandledInbox → LogUptake`, `CreateHandledInbox → LogUsage`, `CreateJournalLines → LogUptake`, …)
- [Codeunit 6941 "EA Http Client"](../codeunit/6941.md) (13 calls: `GetExpenseAgentBaseUrl → LogError`, `SendErpConfigRequest → LogError`, `SendErpConfigRequest → LogUsage`, …)
- [Codeunit 4399 "SOA Annotation"](../codeunit/4399.md) (12 calls: `AddAgentTaskFailureAnnotation → LogError`, `AddAgentTaskFailureAnnotation → LogUsage`, `AddAgentTaskSendRepliesFailureAnnotation → LogError`, …)
- [Codeunit 8754 "DA Feature Telemetry"](../codeunit/8754.md) (11 calls: `LogAutoSync → LogUsage`, `LogCompanyMigration → LogUsage`, `LogFeatureDisabled → LogUptake`, …)
- [Codeunit 1151 "COHUB Core"](../codeunit/1151.md) (10 calls: `GoToCompany → LogUptake`, `GoToCompany → LogUsage`, `ImportEnviroments → LogUptake`, …)
- [Codeunit 2627 "Stat. Acc. Telemetry"](../codeunit/2627.md) (8 calls: `LogAnalysisViewsUsage → LogUptake`, `LogAnalysisViewsUsage → LogUsage`, `LogDiscovered → LogUptake`, …)
- [Codeunit 2676 "Alloc. Acc. Telemetry"](../codeunit/2676.md) (8 calls: `LogDefinedOverride → LogUptake`, `LogDefinedOverride → LogUsage`, `LogGeneralJournalPostingUsage → LogUptake`, …)
- [Codeunit 4001 "Hybrid Cloud Management"](../codeunit/4001.md) (8 calls: `CompleteCloudMigration → LogUptake`, `CompleteCloudMigration → LogUsage`, `FinishCloudMigrationSetup → LogUptake`, …)
- [Codeunit 428 "IC Mapping"](../codeunit/428.md) (8 calls: `MapCompanyAccounts → LogUptake`, `MapCompanyDimensions → LogUptake`, `MapCompanyDimensionValues → LogUptake`, …)
- [Codeunit 4582 "SOA Retrieve Emails"](../codeunit/4582.md) (8 calls: `AddEmailAttachmentToTaskMessage → LogError`, `AddEmailAttachmentToTaskMessage → LogUsage`, `AddEmailToAgentTask → LogUsage`, …)
- [Codeunit 6938 "EA Agent Dispatcher"](../codeunit/6938.md) (8 calls: `RunEAAgent → LogError`, `RunEAAgent → LogUsage`, `SendOpenReportReminders → LogError`, …)
- [Codeunit 9822 "Plan Configuration Impl."](../codeunit/9822.md) (8 calls: `AssignCustomPermissionsToUser → LogUptake`, `AssignCustomPermissionsToUser → LogUsage`, `LogFeatureTelemetryPlanConfigurationCard → LogUptake`, …)
- [Codeunit 389 "No. Series Copilot Telemetry"](../codeunit/389.md) (7 calls: `LogApply → LogUptake`, `LogCreateNewNumberSeriesToolUsage → LogUsage`, `LogFeatureDiscovery → LogUptake`, …)
- [Codeunit 5826 "Matched Order Line Mgmt."](../codeunit/5826.md) (7 calls: `GetOrderLinesForPurchaseInvoice → LogUsage`, `GetPurchaseOrderLines → LogUsage`, `GetPurchaseReceiptLines → LogUsage`, …)
- [Codeunit 1351 "Telemetry Subscribers"](../codeunit/1351.md) (6 calls: `LogAccScheduleNameTelemetry → LogUsage`, `LogColumnLayoutNameTelemetry → LogUsage`, `LogFeatureTelemetryOnAftereModifyFeatureKey → LogUsage`, …)
- [Codeunit 8888 "Email Dispatcher"](../codeunit/8888.md) (6 calls: `OnRun → LogUptake`, `RescheduleEmail → LogUsage`, `RetrySendEmail → LogError`, …)
- [Codeunit 4587 "SOA Impl"](../codeunit/4587.md) (5 calls: `RemoveScheduledTask → LogUsage`, `RemoveScheduledTasksIfAgentNotActive → LogError`, `RemoveScheduledTasksIfAgentNotActive → LogUsage`, …)
- [Codeunit 7017 "Price List Management"](../codeunit/7017.md) (5 calls: `CreateDefaultPriceList → LogUptake`, `CreateDefaultPriceList → LogUsage`, `DefineDefaultPriceList → LogUptake`, …)
- [Codeunit 7772 "Azure OpenAI Impl"](../codeunit/7772.md) (5 calls: `GenerateEmbeddings → LogError`, `GenerateEmbeddings → LogUsage`, `GetFastPrompt → LogError`, …)
- [Codeunit 9079 "Background Error Handling Mgt."](../codeunit/9079.md) (5 calls: `AfterValidateGLSetupEnableDataCheck → LogUptake`, `AfterValidateMyNotificationsDataCheck → LogUptake`, `FeatureTelemetryLogUptakeUsed → LogUptake`, …)
- [Codeunit 9863 "Permission Set Copy Impl."](../codeunit/9863.md) (5 calls: `CopyPermissionSetByClone → LogUptake`, `CopyPermissionSetByClone → LogUsage`, `CopyPermissionSetByFlatten → LogUsage`, …)
- [Codeunit 99000783 "Prod. Document Attachment Mgt."](../codeunit/99000783.md) (5 calls: `DeleteAttachedDocumentsOnAfterDeleteProdOrderLine → LogUptake`, `DeleteAttachedDocumentsOnAfterDeleteProductionBOM → LogUptake`, `DeleteAttachedDocumentsOnAfterDeleteProductionOrder → LogUptake`, …)
- [Codeunit 9988 "Word Template Impl."](../codeunit/9988.md) (5 calls: `ExecuteMerge → LogError`, `ExecuteMerge → LogUptake`, `ExecuteMerge → LogUsage`, …)
- [Codeunit 431 "IC Outbox Export"](../codeunit/431.md) (4 calls: `OnRun → LogUptake`, `OnRun → LogUsage`, `RunOutboxTransactions → LogUptake`, …)
- [Codeunit 4581 "SOA Send Replies"](../codeunit/4581.md) (4 calls: `GiveUpOnDelivery → LogError`, `GiveUpOnDelivery → LogUsage`, `SendEmailReply → LogError`, …)
- [Codeunit 6212 "Sustainability Post Mgt"](../codeunit/6212.md) (4 calls: `InsertLedgerEntry → LogUptake`, `InsertLedgerEntry → LogUsage`, `InsertValueEntry → LogUptake`, …)
- [Codeunit 6940 "EA Retrieve Emails"](../codeunit/6940.md) (4 calls: `AddEmailToAgentTask → LogError`, `AddEmailToNewAgentTask → LogError`, `OnAfterEmailProcessed → LogError`, …)
- [Codeunit 6954 "EA KPI Track"](../codeunit/6954.md) (4 calls: `UpdateAttachmentKPIs → LogUptake`, `UpdateAttachmentKPIs → LogUsage`, `UpdateEntry → LogUptake`, …)
- [Codeunit 7001 "Price Calculation Mgt."](../codeunit/7001.md) (4 calls: `AfterValidateUseCustomizedLookup → LogUptake`, `FeatureCustomizedLookupDiscovered → LogUptake`, `FeatureCustomizedLookupUsage → LogUptake`, …)
- [Codeunit 7233 "Master Data Management"](../codeunit/7233.md) (4 calls: `EnqueueFullSyncJob → LogUptake`, `EnqueueSyncJob → LogUptake`, `LogSynchronizationUsage → LogUptake`, …)
- [Codeunit 7275 "Sales Lines Suggestions Impl."](../codeunit/7275.md) (4 calls: `AICall → LogError`, `AICall → LogUsage`, `GetLinesSuggestions → LogError`, …)
- [Codeunit 7330 "Item Subst. Suggestion Impl."](../codeunit/7330.md) (4 calls: `AICall → LogError`, `AICall → LogUsage`, `GetItemSubstitutionSuggestion → LogError`, …)
- [Codeunit 7779 "Azure DI Impl."](../codeunit/7779.md) (4 calls: `AnalyzeInvoice → LogError`, `AnalyzeInvoice → LogUsage`, `AnalyzeReceipt → LogError`, …)
- [Page 40021 "Cloud Migration Status API"](../page/40021.md) (4 calls: `CompleteCloudMigration → LogUsage`, `DisableReplication → LogUsage`, `RunDataUpgrade → LogUsage`, …)
- [Page 7250 "Bank Acc. Rec. AI Proposal"](../page/7250.md) (4 calls: `ApplyToProposedLedgerEntries → LogUsage`, `GenerateCopilotMatchProposals → LogUsage`, `ImportTransactionsIntoBankAccountReconciliation → LogUptake`, …)
- [Table 413 "IC Partner"](../table/413.md) (4 calls: `PropagateCustomerICPartner → LogUptake`, `PropagateCustomerICPartner → LogUsage`, `PropagateVendorICPartner → LogUptake`, …)
- [Codeunit 20458 "Qlty. Mgmt. Feature Telemetry"](../codeunit/20458.md) (3 calls: `LogFeatureUptakeDiscovered → LogUptake`, `LogFeatureUptakeSetup → LogUptake`, `LogFeatureUsage → LogUsage`)
- [Codeunit 4305 "SOA Filters Impl."](../codeunit/4305.md) (3 calls: `GetContactsInvolvedInTask → LogError`, `GetSecurityFiltersForCustomers → LogUsage`, `LogContactLinkChoice → LogUsage`)
- [Codeunit 4586 "SOA Dispatcher"](../codeunit/4586.md) (3 calls: `CanRunTask → LogError`, `RunSOAgent → LogError`, `RunSOAgent → LogUsage`)
- [Codeunit 534 "IC Read Notification JR"](../codeunit/534.md) (3 calls: `CleanupNotifications → LogUsage`, `LogError → LogError`, `ReadNotification → LogUsage`)
- [Codeunit 5579 "Digital Voucher Impl."](../codeunit/5579.md) (3 calls: `AttachIncomingEDocument → LogError`, `AttachPurchaseEDocument → LogError`, `ExtractXMLFromPDF → LogError`)
- [Codeunit 5821 "Cost Adjustment Subscribers"](../codeunit/5821.md) (3 calls: `FlushTraceLog → LogUsage`, `RegisterFailureBucketRun → LogUsage`, `RegisterSuccessBucketRun → LogUsage`)
- [Codeunit 6905 "Import Expense User"](../codeunit/6905.md) (3 calls: `GetEmployeesCountFromGraph → LogError`, `GetEmployeesResponseFromGraph → LogUsage`, `ProcessBatch → LogError`)
- [Codeunit 6935 "EA Agent Scheduler"](../codeunit/6935.md) (3 calls: `RemoveAgentTask → LogUsage`, `ScheduleAgent → LogError`, `ScheduleAgent → LogUsage`)
- [Codeunit 8900 "Email Impl"](../codeunit/8900.md) (3 calls: `EmitSetupTelemetry → LogUptake`, `EmitUsedTelemetry → LogUptake`, `EmitUsedTelemetry → LogUsage`)
- [Codeunit 9871 "Security Group Impl."](../codeunit/9871.md) (3 calls: `Create → LogUptake`, `GetMembers → LogUptake`, `GetMembers → LogUsage`)
- [Page 24 "Performance Profiler"](../page/24.md) (3 calls: `OnOpenPage → LogUptake`, `UpdateData → LogUptake`, `UpdateData → LogUsage`)
- [Page 5580 "Digital Voucher Guide"](../page/5580.md) (3 calls: `FinishAction → LogUptake`, `OnOpenPage → LogUptake`, `OnQueryClosePage → LogUptake`)
- [Codeunit 104000 "Upgrade - BaseApp"](../codeunit/104000.md) (2 calls: `SendCloudMigrationUsageTelemetry → LogUptake`, `SendCloudMigrationUsageTelemetry → LogUsage`)
- [Codeunit 107 "Import and Consolidate"](../codeunit/107.md) (2 calls: `ImportAndConsolidate → LogUptake`, `ImportAndConsolidate → LogUsage`)
- and 248 more: data/code/graph/29/calls.json

## Across versions

- Present in: BC23-30
- Changed (declaration) in: BC24-25

Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).

## Ask your agent

Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: `bcatlas_resolve_node(object_type: "codeunit", object_name: "Feature Telemetry")`, then `bcatlas_get_procedure_body` or `bcatlas_get_neighbors` on the returned id.
