Change Document: v2.3.1.0 — Screen Pop URL Diagnostic Telemetry
| Field | Value |
|---|---|
| Version | 2.3.1.0 |
| Date | 2026-03-09 |
| Extension | BC Dialing Application (Cambay Solutions) |
| Severity | Low — diagnostic telemetry only, no behavioral changes |
| Status | Implemented — ready for deployment |
Background
CS agents reported Friday (2026-03-07) that the Nextiva screen pop is still not working — the customer card is not opening when inbound calls arrive. The screen pop URL is generated by the extension and returned to Nextiva's CRM connector, which opens it in the agent's browser. Without visibility into the actual URL being generated, diagnosing the root cause requires either reproducing the issue with a debugger attached (not possible in Production) or adding targeted telemetry.
The existing telemetry (BCDIALER-4000, BCDIALER-4001) logs that a customer was found or created, but does not log the URL itself. The fallback telemetry (BCDIALER-0001) logs when the config-driven Base URL is empty and the hardcoded fallback is used, but does not log the URL value in either case.
This version adds a single new telemetry event (BCDIALER-0010) that logs the complete URL generation chain — the base URL template, the customer number substituted in, and the final URL — on every screen pop request. This enables diagnosis of screen pop failures directly from Application Insights without any code changes or user interaction.
Summary of Changes
| # | Severity | Category | Description |
|---|---|---|---|
| 1 | Low | Added | Screen pop URL telemetry (BCDIALER-0010) on CU-60000, Page 80000, and Page 80003 |
Detailed Changes
1. Screen Pop URL Telemetry — BCDIALER-0010 (Low)
Files modified:
src/Codeunit/CU-60000.PhoneIntegration.al— 2 call sites (existing customer, new customer)src/Page/Pag-80000.ReceivePhoneNumber.al— 2 call sites (existing customer, new customer)src/Page/Pag-80003.ReceiveEmail.al— 2 call sites (existing customer, new customer)
What changed: After each StrSubstNo(BaseURL, CustomerNo) call that generates the screen pop URL, a Session.LogMessage call emits event BCDIALER-0010 at Verbosity::Normal with a Dictionary of [Text, Text] containing four custom dimensions:
| Dimension | Description |
|---|---|
Source | The AL object that generated the URL (CU-60000, Pag-80000, or Pag-80003) |
CustomerNo | The customer number substituted into the URL template |
BaseURL | The URL template — either from NextivaConfig or the hardcoded fallback |
CustomerURL | The final URL after StrSubstNo substitution |
Why Dictionary instead of key-value pairs: The Session.LogMessage key-value overload supports a maximum of 2 custom dimension pairs (4 optional Text arguments). This telemetry requires 4 pairs, so the Dictionary of [Text, Text] overload is used instead.
Data classification: DataClassification::OrganizationIdentifiableInformation — the URL contains the BC tenant ID and company name, which are organization-identifiable. No customer PII (name, phone, email) is included in the URL itself; only the BC customer number is present.
Behavioral impact: None. The telemetry is emitted after the URL is already assigned to the response. It adds no database operations, no HTTP calls, and no branching logic. The Clear(CustomDimensions) call before each Add sequence ensures the dictionary is clean when the same variable is used for both branches (existing vs. new customer) in CU-60000.
Querying the Telemetry
After deployment, query the extension-level Application Insights resource (903e82d8-7601-46be-b49e-ce5c26d64547):
traces
| where timestamp > ago(7d)
| where customDimensions.eventId == "ALBCDIALER-0010"
| project timestamp,
message,
Source = tostring(customDimensions.Source),
CustomerNo = tostring(customDimensions.CustomerNo),
BaseURL = tostring(customDimensions.BaseURL),
CustomerURL = tostring(customDimensions.CustomerURL)
| order by timestamp desc
What to look for:
- BaseURL missing
%1— if the NextivaConfigBC Base URLwas saved without the%1placeholder,StrSubstNoproduces a URL without a customer filter. The screen pop opens the Customer List with no filter instead of a specific customer card. - BaseURL pointing to wrong environment — if the URL contains
Sandboxinstead ofProduction, or the wrong tenant ID, the screen pop will fail or open the wrong environment. - CustomerNo blank — if the customer lookup or creation failed silently, the substituted URL would contain an empty filter value.
- No events at all — if
BCDIALER-0010events are absent butBCDIALER-4000/BCDIALER-4001events are present, the extension version in Production is pre-2.3.1.0.
Object Inventory
No new objects. Modified objects only:
| Object | ID | Type | Status | Description |
|---|---|---|---|---|
| PhoneIntegration | 60000 | Codeunit | Modified | Added BCDIALER-0010 telemetry (2 call sites) |
| ReceivePhoneNumber | 80000 | Page | Modified | Added BCDIALER-0010 telemetry (2 call sites) |
| ReceiveEmail | 80003 | Page | Modified | Added BCDIALER-0010 telemetry (2 call sites) |
Deployment Notes
- No data migration required — telemetry-only change with no schema modifications
- No configuration changes required — no new fields, no new setup pages
- Backwards compatible — the new telemetry events are additive; they do not modify any existing events or behavior
- Deployment sequence: Standard publish — no pre-deployment or post-deployment steps beyond the normal extension update process
- Verification: After deployment, trigger an inbound call or email and confirm
BCDIALER-0010events appear in Application Insights within 5-10 minutes (standard telemetry ingestion delay)
Known Limitations
- Telemetry ingestion delay — Application Insights has a 2-10 minute ingestion delay. Events are not queryable in real time.
- URL length — the
CustomerURLcustom dimension is limited by Application Insights' custom dimension value length (8,192 characters). The BC screen pop URL is well under this limit, but if the Base URL template were unusually long, the value could be truncated.