Skip to main content

Angular SDK migration guide

Upgrading to the new SDK libraries

The Angular SDK node packages have been updated to support Workspaces, introduced in FlowX.AI v5.1.0. All container apps that want to use the new SDKs should update to the latest package versions and implement the required workspace configuration.
1

Remove old packages and install new FlowX.AI v5.1.0 packages

  • Remove old FlowX.AI SDK libraries (if upgrading from earlier versions):
  • Install new FlowX.AI v5.1.0 packages:
Replace <version> with the correct version corresponding to your FlowX.AI v5.1.0 platform version. Check: Release Notes → v5.1.0 → Deployment guidelines → Component versions.
2

Verify Angular dependencies

  • Ensure your Angular version is compatible:
  • Verify system requirements:
    • Node.js: v20.9.0 or higher
    • npm: v10.1.0 or higher
    • Angular: ~19
3

Update flx-process-renderer configuration

SDK API changes

In the Angular SDK, the <flx-process-renderer> component has a new mandatory parameter: workspaceId. Add the definition for this property in your component:
Use this parameter as input for the <flx-process-renderer> component:

Task management component changes

The task management component now also requires workspace context:

React SDK migration guide

Upgrading to the new SDK libraries

The React SDK node packages have been updated to support Workspaces, introduced in FlowX.AI v5.1.0. All container apps that want to use the new SDKs should update to the latest package versions and implement the required workspace configuration.
1

Remove old packages and install new FlowX.AI v5.1.0 packages

  • Remove old FlowX.AI SDK libraries:
  • Install new FlowX.AI v5.1.0 packages:
Replace <version> with the correct version corresponding to your FlowX.AI v5.1.0 platform version. Check: Release Notes → v5.1.0 → Deployment guidelines → Component versions.
2

Update React dependencies (if needed)

  • Ensure your React version is compatible:
  • Verify Node.js version compatibility:
    • Node.js: v18.16.9 or higher
    • npm: v10.8.0 or higher
3

Update FlxProcessRenderer configuration

New SDK API changes

In the React SDK, the <FlxProcessRenderer> component has a new mandatory parameter: workspaceId. Add the definition for this property in your component:
Use this parameter as input for the <FlxProcessRenderer> component:

Task management component changes

The task management component now also requires workspace context:

Android SDK migration guide

System requirements

System requirements:
  • minSdk = 26
  • compileSdk = 35
The SDK library was build using:

Library dependencies

Impactful dependencies: Other dependencies:
  • Koin dependency has been removed
  • Gson dependency has been removed
Some dependencies were removed, others got updated.
It is highly recommended that the container projects to be aligned with these versions to avoid any compatibility issues.

New SDK Migration Guide

To successfully build and run your project with the updated SDK, please follow these sequential steps within your container project:
1

Update dependency coordinates

[rootProject]/app/build.gradle.kts
2

Increase the `compileSdk` version to `35`

[rootProject]/app/build.gradle.kts
3

Recommendation: Upgrade JVM compatibility to Java 17

[rootProject]/app/build.gradle.kts
4

Update the `Android Gradle plugin` version to at least `8.10.0`

[rootProject]/build.gradle.kts
5

Update `Gradle` version to at least `8.11.1`

[root-project]/gradle/wrapper/gradle-wrapper.properties
6

Update `Kotlin` version to at least `2.2.0`

[rootProject]/build.gradle.kts
7

Apply the `Compose Compiler Gradle plugin`

[rootProject]/build.gradle.kts
[rootProject]/app/build.gradle.kts
[rootProject]/app/build.gradle.kts
It is recommended to use the same version as the one configured for the Kotlin plugin
8

Enable core library desugaring

[rootProject]/app/build.gradle.kts
9

Ensure your `android.app.Application` extending class implements the `FlowxOwner` interface

[rootProject]/app/src/main/[java|kotlin]/com/example/MyApp.kt
10

Rename `FlowxSdkApi` class to `Flowx` and update imports accordingly

As a result of this change, all calls to FlowxSdkApi.getInstance() must be replaced with Flowx.getInstance().
11

Update the `Flowx.getInstance().init()` method parameters

Detailed step-by-step changes

1

Rename the `SdkConfig` class to `Config` and update imports accordingly

The config parameter is no longer a data class. It is now an interface.
When passing custom validators as a configuration parameter, the linter might show errors related to inferring the type of the validators property. To fix, use Map<String, (String) -> Boolean>? as a type.
2

The `enableLog` flag from the configuration parameters has been replaced by the `logEnabled` flag

3

Remove the `accessTokenProvider` parameter from the initialization parameters (if previously used)

Authentication will now be managed by calling the Flowx.getInstance().setAccessToken(accessToken: String?) method with the appropriate argument

Refer to the following steps for detailed information about the authentication process migration
4

Update main imports for `Custom` provided UI components (if used explicitly)

5

Update `Analytics` related imports

6

Update `NewProcessStartedHandler` related imports (if used explicitly)

Summary of changes:
diff v4.0.25..v9.0.2
12

Update the method for providing access tokens

The setAccessTokenProvider method on the SDK instance has been replaced with setAccessToken.
Consequently, all calls to setAccessTokenProvider must be replaced with calls to setAccessToken:
13

`closeModalFunc` is now scoped to the `CloseModalProcessScope`

To be able to query for substitution tags or media library items to display them in the CloseModalProcessConfirmAlert, the closeModalFunc lambda passed as a parameter when starting (i.e. Flowx.getInstance.startProcess(...)) or continuing (i.e. Flowx.getInstance.continueProcess(...)) is now scoped to the CloseModalProcessScope interface, which allows that.
This restricts the usage of previously unrestricted exposed functions to only within the context of the CloseModalProcessScope receiver (i.e. they can now be called only from inside a @Composable running in this scope).
Methods within the CloseModalProcessScope are now called through the actual scope itself, rather than relying on Flowx.getInstance(), since they are no longer visible on the SDK instance.
When using it, an approach could be this:
ProcessActivity.kt
14

Update custom components implementation

Update the related imports:
The new class hierarchy structure is as follows:
v4.0.25
v9.0.2
The structural changes include:
  • The CustomComposable class has been renamed to CustomComponent.
  • All deprecated properties, methods, and interfaces have been removed. Support for the Android classical View system has been completely discontinued.
  • The provideCustomComposableComponent() method within CustomComponentsProvider has been replaced with fun provideCustomComponent(): CustomComponent?.
  • The CustomComposableComponent class has been removed.
  • The provided @Composable function passed to the composable property of the CustomComponent interface can now only exist and be called within the context of a CustomComponentScope receiver.
This restricts the usage of previously unrestricted exposed functions to only within the context of the CustomComponentScope receiver (i.e., they can now be called only from within a custom component implementation).
Methods within the CustomComponentScope are now called through the actual scope itself, rather than relying on Flowx.getInstance(), since they are no longer visible on the SDK instance.
Consequently, the following changes should be made to access the scope within the custom component ViewModel:
MyCustomComponentViewModel.kt
MyCustomComponent.kt
  • The CustomComponentAction is no longer a data class as before. It is now an interface.
    The exposed data has been reduced to the maximum required for executing the action:
v4.0.25
v9.0.2
  • When querying for an enumeration by calling the CustomComponentScope.getEnumeration(...) method, the returned type has changed from List<FxEnumerationItem> to FxEnumeration
v4.0.25
v9.0.2
These changes are reflected in an actual implementation as shown below:
v4.0.25
v9.0.2
15

Update custom stepper header implementation

Update the related imports:
The new class hierarchy structure is as follows:
v4.0.25
v9.0.2
The structural changes include:
  • The ComposableStepperHeader class has been renamed to CustomStepperHeader.
  • The CustomStepperHeaderData class has been moved under the CustomStepperHeader and renamed to Data.
  • The provideCustomComposableStepperHeader() method within CustomStepperProvider has been replaced with fun provideCustomStepperHeader(): CustomStepperHeader?.
  • The CustomComposableStepperHeader class has been removed.
These changes are reflected in an actual implementation as shown below:
diff v4.0.25..v9.0.2
16

Remove usage of the undocumented `updateConfig(config: SdkConfig)` function

For runtime environment changes, use the changeEnvironment method available on the SDK instance.
Do not change the environment while displaying a running process
When changing the environment, ensure the access token is updated properly
17

Update the start process API call, which now requires an extra `workspaceId` parameter

diff v4.0.25..v9.0.2
The workspaceId is the identifier of the workspace that contains the project and process to be started
18

Update the theme setup API call, which now requires an extra `workspaceId` parameter

diff v4.0.25..v9.0.2
The workspaceId is the identifier of the workspace that contains the theme to be loaded

ProGuard / R8

The SDK now ships with its own consumer-rules.pro file containing the required keep rules for correct functionality.
These rules are automatically merged into the container app’s ProGuard/R8 configuration and applied during code shrinking and obfuscation.
The container app may add additional rules if its specific logic requires them.

iOS SDK migration guide

SDK API changes

Start process

The start process API require a workspaceId.

Setup theme

The setup theme API requires a workspaceId.
Last modified on July 16, 2026