Javascript SDKs for Hackle
    Preparing search index...

    Release Notes

    Date: September 4, 2026

    • fix(javascript-sdk): collect timezone independently of orientation

    Date: August 25, 2026

    • feature: support asynchronous WebView bridge invocations

    Date: August 5, 2026

    Breaking Changes

    • variation() and variationDetail() no longer accept the third defaultVariation argument.

      // before
      hackleClient.variation(42, user, "B")
      // after
      hackleClient.variation(42, user)

      This is not only a type change. When a variation cannot be decided, the SDK now always returns the control variation "A". Code that relied on a custom fallback will behave differently after it compiles.

    • HackleClient.getExperiment() has been removed.

    • HackleExperiment.variations has been removed, so variationDetail(...).experiment no longer carries the variation list.

    • The defaultVariation removal also applies to the WebView bridge and the HTML in-app message bridge.


    Behavior Changes

    These apply after upgrading, with no code change on your side.

    • In-app message impressions are now recorded only when the message is actually presented. Previously an impression was recorded even when the presentation was skipped or failed, which consumed the frequency cap. Messages that failed to display may now be shown again.
    • Target event day windows (within N days) now exclude the boundary timestamp, so events dated exactly N days ago are no longer counted.
    • A target whose conditions all fail to parse is now ignored instead of matching every user. This affects workspaces that use targeting condition types the SDK does not recognize.

    Added

    • Remote evaluation mode. Set evaluationMode: "remote" in the config to have the server evaluate experiments, feature flags, remote config and in-app messages instead of evaluating on the device.

      const hackleClient = Hackle.createInstance("YOUR_SDK_KEY", {
      evaluationMode: "remote"
      })

      The default is "local", which keeps the existing on-device behavior. Existing integrations are unaffected unless they opt in.

    • The EvaluationMode type is now exported.

    • User Explorer is not available in remote evaluation mode.


    Migration

    See the 12.0.0 migration guide for step-by-step instructions.


    Date: May 18, 2026

    • feat: expose IAM trigger event to HTML in-app message bridge

    Date: April 8, 2026

    • Fix: HttpTransport multibyte UTF-8 characters broken at chunk boundaries

    Date: April 1, 2026

    • Release 11.55.0
    • Fix: InAppMessage OVERRIDDEN eligibility not applied in deliver flow
    • Dev 11.55.1

    Date: March 25, 2026

    • add: automatic version bump GitHub Action on dev branch creation
    • HTML In-App Message

    Date: March 19, 2026

    • feature: add HackleSessionPolicy with persistCondition and custom timeout
    • feature: add opt-out tracking support

    Date: January 30, 2026

    • add autogen api docs & release note
    • add dependency step for typedoc
    • apply oidc on publish action
    • add auto-assign bot
    • trackPageView & automaticRouteTracking
    • add disable monitoring config

    Date: November 17, 2025

    • Added InAppMessage Timetable

    Date: November 5, 2025

    • supports webapp $page_view, $engagement events.

    Date: October 16, 2025

    • fix sessionId frequency not working issue

    Date: September 25, 2025

    • update @hackler/iam-renderer version
    • update @hackler/javascript-sdk version

    Date: September 25, 2025

    • No changes

    Date: September 25, 2025

    • changing inAppMessage size in PC

    Date: September 10, 2025

    • [browser hackleClient] add getDisplayedInAppMessageView method
    • export DefaultBrowserPropertyProvider, #580

    Date: September 8, 2025

    • support inAppMessage delay

    Date: August 29, 2025

    • support browserProperties in web-app integration mode.
    • change api endpoint #571

    Date: July 24, 2025

    • allow setUserId(null) to unset userId
    • web-app-client can send null to app during setUserId

    Date: July 3, 2025

    • support rendering newline in-app-message on [MODAL+TEXT+BUTTON] layout. in PR

    Date: July 1, 2025

    • add hideUserExplorer in webview bridge
    • add crm message subscription

    Date: May 9, 2025

    just version up


    Date: April 29, 2025

    Node.js

    • support http/https compression (gzip, br, deflate)

    Browser

    • refactor in-app message experiment structure

    Date: April 18, 2025

    • New method for controlling user's phone number (This is useful if you use KakaoTalk biz message to send notifications or advertisements to your customers.)
      • setPhoneNumber: sets user's phone number. This value is unique for each UserId.
      • unsetPhoneNumber: resets user's phone number to be an empty value.

    Date: March 27, 2025

    • New operator for targeting: user property's existence

    Date: March 24, 2025

    • Added HackleClient.getExperiment method. This method can be used to retrieve A/B test setting information.

    Date: February 17, 2025

    • add event target evaluation

    Date: January 14, 2025

    • convert string to boolean for matching comparison

    Date: January 12, 2025

    • Supports multiple images in in-app messages

    Date: October 2, 2024

    • Fixed NOT_MATCH operation return false even though the user was not included in any cohort

    Date: September 9, 2024

    • feat: added InAppMessage Listener

    • fix: CloseButton(X_button) will be considered as ActionInteraction > CloseAction not CloseInteraction


    Date: August 9, 2024

    • feat: added new in-app message layout (bottom sheet).

    • fix: prevent in-app-message IMAGE layout modal from getting out of focus while message is open.


    Date: July 15, 2024

    • feat: Supports unexposed control group for in-app message A/B testing

    Date: July 5, 2024

    • Synchronize cohorts only when identifiers are updated
    • Use setInterval when scheduling in node

    Date: June 18, 2024

    • feat: Added User Engagement

    Date: June 18, 2024

    Released with the same build version as @hackler/javascript-sdk@11.33.1. Saved for history


    Date: June 3, 2024

    • Flush events after updateUserProperties()

    Date: May 27, 2024

    • feat: Added WebApp mode (native, web_view_wrapper)

    Date: April 16, 2024

    • fix decodeURI, decodeURIcomponent method's malformed URI error

    Date: April 3, 2024

    • Added RemoteConfigEvent dedup

    Date: March 22, 2024

    • Added z-index to in-app-message banner

    Date: March 19, 2024

    • Fix in-app-message modal margin

    Date: March 18, 2024

    • Added in-app-message new layouts
      • added banner layout
      • added outer buttons modal layout

    Date: February 19, 2024

    • Added experiment field to Decision

    Date: February 16, 2024

    • remove iPhone, iOS values from hackle property osName

    Date: February 15, 2024

    • Supports A/B testing in in-app messages.

    • Added HackleClient.fetch() method. This method can be used to manually synchronize workspace configuration.

    • Handling of page visibility changes .


    Date: February 8, 2024

    • add sdkTime when send beacon

    Date: February 7, 2024

    • Forward campaign query params when split url redirect

    Date: February 6, 2024

    • Fix InAppMessage borderColor issue

    Date: January 25, 2024

    • Add exports field to package.json
    • Always add campaign properties to user properties

    Date: January 17, 2024

    • Use disk cache for WorkspaceConfig

    Date: January 16, 2024

    • flush with beacon when split url determined

    Date: January 8, 2024

    • Unable to add falsy value to PropertiesBuilder

    Date: December 18, 2023

    • Added BrowserInitializeDoneEventDispatcher

    • Changed page view event to always emit


    Date: December 4, 2023

    • Fix Node.js entry file directory typo

    Date: December 1, 2023

    • Removed flush event when split url test redirected

    Date: December 1, 2023

    • New added Split URL test support

    • Fix JavaScript "this binding" issue

    • Support UTF-8 decoding to URL Hackle properties targeting