Track your users in Transaction Data

AI Tools

This page explains how to track a user’s progress during the Open Banking (OB) journey and how to determine when the journey is completed.

Tracking relies on two concepts:

  • Session state: the status of a single aggregation attempt (one journey run)

  • userJourneyState: the customer’s progress across the overall OB flow

Algoan recommends the following approach for production integrations:

  1. Redirect the user to the OB journey

  2. Wait for the redirect back to your application (see “Handle users after OB”)

  3. Use the session/customer status for monitoring and troubleshooting

Info

Most integrators do not need to continuously poll state while the user is inside the journey.

Session and customer states are primarily useful for monitoring, product analytics, and fallback handling.

state property

A session represents one attempt to complete the OB journey.

You can retrieve a session state using the GET /session-data endpoint :

curl -sS -X GET "https://api.algoan.com/v2/sessions/$SESSION_ID/session-data" \ -H "Authorization: Bearer $ACCESS_TOKEN"

Here are the different state values :

state value

What it means

What you should do

IN_PROGRESS

The user is currently in the OB journey

Wait.

SUCCESS

The user successfully completed the OB journey

Continue your flow. Wait for analysis webhook before fetching data.

EXIT

The user has left the OB journey

Offer a retry to the user or continue with an alternative to OB if you have one.

ERROR

The user has encountered an error

You can check stateErrors object in session-data for additional information on the error. You can offer a retry or continue with an alternative to OB if you have one.

EXPIRED

User has been inactive for more than 30 minutes

Create a new session and restart the journey.

userJourneyState property

userJourneyState describes where the user is in the Open Banking journey, independently of the technical session lifecycle.

It is exposed at two levels:

  • Session level: reflects the progression of a specific aggregation attempt

  • Customer level: reflects the progression of the most advanced session for the customer

Session-level

At session level, userJourneyState indicates how far the user progressed within that specific session.

This is useful when:

  • monitoring a live aggregation attempt

  • debugging a specific session

  • understanding why a session did not complete

curl -sS -X GET "https://api.algoan.com/v2/sessions/$SESSION_ID/session-data" \ -H "Authorization: Bearer $ACCESS_TOKEN"

The response includes both:

  • state (technical session lifecycle)

  • userJourneyState (functional journey progression)

Customer-level

At customer level, userJourneyState represents the most advanced journey state reached by the customer across all sessions.

It is derived from the customer’s sessions and:

  • does not decrease if a later session exits or fails earlier

  • reflects the best progression achieved so far

This is useful when:

  • building global funnels

  • deciding whether a user has already completed the OB journey

  • avoiding regression in user status

curl -sS -X GET "https://api.algoan.com/v2/customers/$CUSTOMER_ID" \ -H "Authorization: Bearer $ACCESS_TOKEN"

How to use UserJourneyState correctly

Use case

Recommended source

Debug a specific attempt

Session-level userJourneyState

Monitor live progression

Session-level userJourneyState

Build conversion funnels

Customer-level userJourneyState

Values of userJourneyState

userJourneyState value

Description

CUSTOMER_CREATED

The customer is created

STARTED

The user has arrived on TD

BANK_SELECTED

The user has selected a bank

QR_CODE_SCANNED

The user has scanned the QR code to continue the process on his mobile

AGGREGATION_STARTED

The user has been redirected to bank website/app

AGGREGATION_FINISHED_SUCCESS

The user has been redirected to TD successfully

AGGREGATION_FINISHED_ERROR

The user has been redirected to TD with error

FINISHED_SUCCESS

The user has been redirected to the defined redirect_uri after at least one successful aggregation.

FINISHED_ERROR

The user has been redirected to the defined redirect_uri without successful aggregation.

ANALYSIS_SUCCESS

The analysis has been created and completed

ANALYSIS_ERROR

The analysis has been created and error

Info

We may add new states in the future, it's important that your implementation takes that into consideration

When is the Open Banking journey complete?

The Open Banking journey is considered complete when the session state is SUCCESS.

However, a successful journey does not mean that the transaction analysis is completed or successful.

It is possible to have:

  • state = SUCCESS

  • userJourneyState = ANALYSIS_ERROR

To know when transaction data is ready, Algoan recommends listening to the analysis_completed webhook.

See the Fetch analysis page for more information.

  Last updated