You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Web Widget (Classic) is restricted to Zendesk accounts created before 2023-06-05 and the underlying Chat Web SDK / Chat Conversation APIs entered active removal on 2025-04-30; the wrapper should warn loudly and close gaps (logout, setLocale, toggle, events, chat/help-center commands) while it is still maintained.
track() overwrites contactForm.tags to Object.keys(metadata) on every call — destructive (replaces, not merges) and uses keys instead of values; should use array values or merge — https://developer.zendesk.com/api-reference/widget/core/
Summary
Web Widget (Classic) is restricted to Zendesk accounts created before 2023-06-05 and the underlying Chat Web SDK / Chat Conversation APIs entered active removal on 2025-04-30; the wrapper should warn loudly and close gaps (logout, setLocale, toggle, events, chat/help-center commands) while it is still maintained.
Gaps found
Missing API surface
zE('webWidget', 'open')/zE('webWidget', 'close')— not exposed as independent methods (ourshow()conflatesshow+open, noclose()) — https://developer.zendesk.com/api-reference/widget/core/zE('webWidget', 'toggle')— not exposed — https://developer.zendesk.com/api-reference/widget/core/zE('webWidget', 'setLocale', locale)—pageView({ locale })ignores locale entirely — https://developer.zendesk.com/api-reference/widget/core/zE('webWidget', 'identify', data)— Chat-dashboard identify is different fromprefill; today we only callprefill— https://developer.zendesk.com/api-reference/widget/core/zE('webWidget', 'clear')— not exposed — https://developer.zendesk.com/api-reference/widget/core/zE('webWidget', 'reset')— not exposed — https://developer.zendesk.com/api-reference/widget/core/zE('webWidget', 'helpCenter:setSuggestions', {...})— not exposed — https://developer.zendesk.com/api-reference/widget/core/zE('webWidget', 'chat:end')/chat:reauthenticate— not exposed — https://developer.zendesk.com/api-reference/widget/core/Events not bridged
zE('webWidget:on', 'open', cb)— not bridged — https://developer.zendesk.com/api-reference/widget/core/zE('webWidget:on', 'close', cb)— not bridged — https://developer.zendesk.com/api-reference/widget/core/zE('webWidget:on', 'userEvent', cb)— not bridged (cross-channel user interaction telemetry) — https://developer.zendesk.com/api-reference/widget/core/zE('webWidget:on', 'chat:unreadMessages', cb)— not bridged; wrapper has noonUnreadCountChangefor Classic — https://developer.zendesk.com/api-reference/widget/core/Config options not exposed
zE('webWidget', 'updateSettings', { webWidget: { ... } })— onlycontactForm.tagsis written today; color, position, launcher, chat, helpCenter, answerBot, talk, contactForm, contactOptions are all unreachable — https://developer.zendesk.com/api-reference/widget/core/window.zESettingspre-init config object — the wrapper never seeds it before the snippet injects — https://developer.zendesk.com/documentation/classic-web-widget-sdks/web-widget/Auth modes
zE('webWidget', 'updateSettings', { webWidget: { authenticate: { chat: { jwtFn } } } })— wrapper declares "Auth: None" but vendor supports JWT; should model this — https://developer.zendesk.com/api-reference/widget/core/Deprecations in our current code
shutdown()callszE('webWidget', 'logout')— verify signature and consider also callingclear— https://developer.zendesk.com/api-reference/widget/core/show()issues bothshowandopen— vendor treats them independently; conflating breaks launcher-only mount — https://developer.zendesk.com/api-reference/widget/core/track()overwritescontactForm.tagstoObject.keys(metadata)on every call — destructive (replaces, not merges) and uses keys instead of values; should use array values or merge — https://developer.zendesk.com/api-reference/widget/core/pageView()callsupdatePathwith no args — vendor signature isupdatePath({ url, title }); no-arg call is a no-op for many account types — https://developer.zendesk.com/api-reference/widget/core/Vendor product status
load()and in the package README — https://support.zendesk.com/hc/en-us/articles/4429429087002-Comparing-the-Zendesk-Web-Widgetsze-snippetURL, server-side conversion). Recommend thatahize/zendesk-classicemit aconsole.warnonload()pointing users toahize/zendesk— https://support.zendesk.com/hc/en-us/articles/4408832031898-Setting-up-Web-Widget-for-messaging-when-using-live-chat-and-Web-Widget-Classicdeprecatedin npm metadata once a concrete Zendesk-announced Classic EOL date is published.Intentionally out of scope
updateSettingssub-object (color, position, contactOptions, etc.) — offer an escape hatch instead.ahize/zendesk— too much surface drift between the two.Sources