Summary
The wrapper targets the legacy v1 CDN bundle (EOL 2026-08-01) and exposes only a fraction of the v2 Messenger API — missing maximize/minimize, sendMessage, setAvatar, requestRating, switchOperator, getState, JWT/HMAC contact verification, and every event subscription.
Gaps found
Missing API surface
Events not bridged
Config options not exposed
Auth modes
Deprecations in our current code
Intentionally out of scope
- CRM / dashboard REST APIs (contacts, conversations, operators) — not part of the widget wrapper surface.
- Custom Channel v1/v2 server-to-server APIs.
- Message Center operator UI configuration.
Sources
Summary
The wrapper targets the legacy v1 CDN bundle (EOL 2026-08-01) and exposes only a fraction of the v2 Messenger API — missing maximize/minimize, sendMessage, setAvatar, requestRating, switchOperator, getState, JWT/HMAC contact verification, and every event subscription.
Gaps found
Missing API surface
api.maximize()/api.minimize()— full window state control (todayshow()only doessetVisibility({button:true}) + open(); there is no programmatic minimize beyondclose()) — https://docs.lime-connect.com/developers/api/website-messenger-apiapi.getState()returninghidden | minimized | maximized— used by callers to decide when to maximize; not exposed — https://docs.lime-connect.com/developers/api/website-messenger-apiapi.getVisibility()— read current{main, button, notifications}flags — https://docs.lime-connect.com/developers/api/website-messenger-apiapi.sendMessage(text)— programmatic message send (e.g. proactive support); no equivalent today — https://docs.lime-connect.com/developers/api/website-messenger-apiapi.setAvatar(url)— contact avatar; not bridged fromidentify()— https://docs.lime-connect.com/developers/api/website-messenger-apiapi.requestRating()— trigger CSAT prompt — https://docs.lime-connect.com/developers/api/website-messenger-apiapi.switchOperator(...)— reassign conversation — https://docs.lime-connect.com/developers/api/website-messenger-apiapi.logout()— clear authenticated contact session; currentshutdown()only callsclose(), leaving the session — https://docs.lime-connect.com/developers/api/website-messenger-apisetContactInfoextended fields:phone_number,mobile_number,company,external_customer_id— we only forwardname/email/phone— https://docs.lime-connect.com/developers/api/website-messenger-apiEvents not bridged
messenger.state$observable /onMaximize/onMinimize— no listener API for visibility changes — https://docs.lime-connect.com/developers/api/website-messenger-apionMessageSent/onMessageReceived— no message event hooks — https://docs.lime-connect.com/developers/api/website-messenger-apionUnreadCountChange— most other ahize providers expose this; userlike does not — https://docs.lime-connect.com/developers/api/website-messenger-apionOperatorAssigned— operator handoff event — https://docs.lime-connect.com/developers/api/website-messenger-apionSessionStart/onSessionEnd— session lifecycle events — https://docs.lime-connect.com/developers/api/website-messenger-apiConfig options not exposed
createMessenger({ version: 2, widgetKey, nonce })—UserlikeLoadOptionsonly takesmessengerId; no way to pin v2 or passwidgetKey— https://github.com/userlike/messengerapi.mount({ externalToken, nonce })— currentmount()is called with no arguments, blocking JWT auth and per-mount nonce — https://github.com/userlike/messengerAuth modes
{sub, iat, exp}) passed throughmount({ externalToken: { getToken, onError } })— wrapper exposes noverification/identityTokenoption, so authenticated identify is impossible — https://docs.lime-connect.com/developers/api/website-messenger-apiDeprecations in our current code
userlike-cdn-widgets.s3-eu-west-1.amazonaws.com/${messengerId}.js) — v1 deprecation 2025-08-01, EOL 2026-08-01 (~3.5 months from today). Migrate to@userlike/messengerv2 viacreateMessenger({ version: 2, widgetKey })— https://github.com/userlike/messenger/blob/master/MIGRATION.mduserlike.com/apireturns 404,docs.userlike.com301-redirects todocs.lime-connect.com. Update doc links / source comments — https://docs.lime-connect.com/developers/api/website-messenger-apitrack()repurposessetCustomData({[event]: metadata})— collides withidentify()attributes (which also writes viasetCustomData), each call overwrites the other's keys at the top level — https://docs.lime-connect.com/developers/api/website-messenger-apimount()is awaited but itsResult<ok,err>is neverunwrapped, so a failed mount silently transitions lifecycle toready— https://github.com/userlike/messengerIntentionally out of scope
Sources