---
updatedAt: 2026-04-15T12:56:49.000Z
---

Fetch the complete documentation index at: https://legacydevhub.incode.com/llms.txt. Use this file to discover all available pages before exploring further.

# Workflows user guide

# Workflows user guide

## Introduction

Workflows are new way of creating onboarding journeys, facilitating conditional branching with great flexibility.

## Requirements:

* **IncdOnboarding SDK 5.21.0 or later**

* **Access to Workflows** via Incode dashboard.

## 1. Initialize IncdOnboarding SDK

Add the following line of code to your `AppDelegate` class:

```

IncdOnboardingManager.shared.initIncdOnboarding(url: url, apiKey: apiKey)

```

`url` and `apiKey` will be provided to you by Incode. To initialize the SDK without an `apiKey`, please follow the section `Using SDK without API key` in [USER\_GUIDE](USER_GUIDE.md).

If you're running the app on a simulator, please set the `testMode` parameter to true.

## 2. Configure the Onboarding session

Each Workflow is distinguished by a unique ID. Workflows should be configured inside the section named "Workflows" on the Incode Dashboard. This ID is provided upon Workflow creation in your Incode Dashboard.

Before running the workflow, you should create an instance of `IncdOnboardingSessionConfiguration` by providing a unique ID of the workflow you want to run:

```

let sessionConfig = IncdOnboardingSessionConfiguration(configurationId: "workflow_id")

```

​

## Starting a Workflow

In the `UIViewController` class where you wish to initiate the onboarding workflow, you should call `startWorkflow` function:

​

```swift

IncdOnboardingManager.shared.presentingViewController = self

IncdOnboardingManager.shared.startWorkflow(sessionConfig: sessionConfig, delegate: self)

```

> If a Workflow fails to initiate, ensure that the SDK has been properly initialized and that the session configuration is configured with a valid `configurationId`.
> ****Example:**** A valid `configurationId` should resemble: "651a2679cf3b4329b524b124".

​

## Implementing Delegates

Delegate that conforms to `IncdOnboardingDelegate` protocol will be notified about updates from `IncdOnboarding` SDK as the user progresses through the flow.

​

```swift

// Called when front Id Scan is completed

func onIdFrontCompleted(_ result: IdScanResult)

​

// Called when back Id Scan is completed

func onIdBackCompleted(_ result: IdScanResult)

​

// Called when process ID step is completed.

func onIdProcessed(_ result: IdProcessResult)

​

// ...

​

// Called when Onboarding flow is finished successfully

func onSuccess()

​

// Called when some unexpected error occurred during Onboarding flow

func onError(_ error: IncdFlowError)

```

## License

Copyright 2023 Incode Technologies. All rights reserved.