Back to all work Corporate banking

Customer-journey analytics for a trade finance portal

Corporate clients use this portal to apply for and approve trade finance products. The business needed to see where those journeys succeed and where they stall, and the existing tracking couldn't tell them.

Role
Developer, Technology Analyst
Worked with
Engineers, BAs, QA and an analytics agency
Timeline
2026, ongoing
Stack
React, JavaScript, Adobe Launch, Adobe Analytics

The client, system names and internal details are withheld.

The problem

An audit and validation report found the tracking was incomplete or wrong. Device type came through empty, login status never updated, completed applications weren't recorded, link text was blank and naming was inconsistent.

Tracking was also wired for only one product, so most of the portal's journeys were invisible to the business.

What I did

  • Turned the specification, audit and validation report into a prioritised list of defects and gaps, and agreed naming conventions with the technical lead.
  • Mapped how tagging works in the codebase, from data layer set-up to the rule that fires each tag, and documented it so others can extend it.
  • Built tags for the header, login, dashboard and the full application lifecycle: start, form progress, drafts, completion, submission, review and approval.
  • Replaced a single-product check repeated in eight helper functions with lookup tables. Five journeys are now tracked, and adding a product takes one line per table.
  • Proposed a rule for recording application completion when back-end events can't be tagged: one front-end event per product, at the last moment the journey can be observed.
  • Assessed adding a customer identifier before writing any code, and flagged the risks: exposing the session token, personal data in debug logs, and values sent on every hit.

Problems I solved

Tags that failed without an error

Tags silently did nothing when an ID was undefined, a recipe was missing or a mapping key didn't match. I traced each cause, documented the rules that prevent them, and wrote a script that finds tag IDs without recipes anywhere in the codebase.

Form completion that never fired

An earlier refactor had inverted a condition. I found it, fixed it and confirmed the event on all four products.

A login flag nobody read

Login status was being written to a data layer field that nothing read. Comparing the set-up script with the helper exposed the mismatch.

A tangled branch

I rebuilt a mixed commit history into four clean commits, one per area, and cherry-picked them onto a diverged target branch without losing or duplicating work.

Testing and handover

  • Built a test matrix per product and checked every tag in the console, the data layer and the network tool.
  • Found and escalated environment blockers to the platform team, including certificate errors and failing preview deployments.
  • Resolved feedback from the lead engineer and an automated code review.
  • Wrote and versioned a 23-page developer handover: file map, how-to guide, a status register for every tag, known issues and decisions.

Where it stands

  • Tags verified firing in the console and data layer across four product lines in local testing.
  • Pull request reviewed by the lead engineer, with one minor comment outstanding.
  • Handover document delivered and kept up to date across several versions.
  • End-to-end confirmation in Adobe is waiting on a working preview environment.
  • Completion points for two products are waiting on business sign-off.