Using Adobe CJA derived fields: Seven hacks to bypass the data engineering queue and accelerate insights
Ojus Narawane
Senior Analytics Architect

How many times has a brilliant analytical question been stopped dead in its tracks by the data engineering backlog? You have the insight, but the data isn't quite in the right format. Transforming it requires a ticket for data engineers, a sprint and a whole lot of waiting. For analytics leaders and practitioners, this delay is the enemy of agility.
The good news is that Adobe Customer Journey Analytics (CJA) provides a powerful escape hatch: derived fields. Essentially, derived fields are new, custom columns you build on the fly, directly on top of your existing data. They act as a personal data prep canvas, allowing you to reclassify messy values, parse strings into new dimensions or calculate new metrics — all without permanently altering the source data.
This tool lets you move beyond simple data cleanup and start performing tasks traditionally reserved for data engineers — fundamentally changing your workflow. By empowering your team to answer complex questions in minutes, not weeks, you free up your data engineering partners for bigger challenges and, ultimately, drive business growth.
Here are seven advanced techniques using derived fields that TELUS Digital teams use to offload data engineering work and deliver deeper insights more quickly.
1. Instantly demystify marketing codes using the "Get Query String Parameter" template
The analyst's problem
"Our marketing team uses a dozen unique tracking codes in URLs, like ‘cid=’ for campaigns or ‘affid=’ for affiliates. These are critical for analysis, but they're all buried in the URL string. I need engineers to parse them out for me."
The derived field solution
This common engineering request can now be solved in seconds. The Get Query String Parameter template enables you to extract the value of a specific key from a URL and turn it into a clean dimension.
- Template used: Get Query String Parameter
- Configuration: Simply select the template, specify the URL field to read and enter the query key you want to extract (e.g., "cid"). CJA handles the rest.

Impact and engineering offload
This action provides immediate, granular insight into campaign performance by turning URL noise into clean, reportable dimensions. This completely replaces the need for engineers to write, deploy and maintain custom URL parsing scripts in the data pipeline, saving significant development time on a common marketing request.
2. Unlock micro-level pathing analysis using the "Next or Previous" function
The analyst's problem
"I know which page users convert on, but I need to know the exact page they saw immediately before converting. Building a full fallout report is too slow for this kind of quick, exploratory question."
The derived field solution
The Next or Previous function is a powerful tool for analyzing user sequences. Ordering by timestamp allows you to create a new field that shows the value from the preceding or subsequent event for that user.
- Function used: Next or Previous
Example logic: Create a new dimension called, "Previous Page Name.” Configure the function to return the “pageName” value from the Previous Page Name event, ordered by timestamp. The “Index” setting allows you to specify how many steps forward (or backward) you want to go in the event stream to retrieve the value.

Impact and engineering offload
This action unlocks powerful, micro-level journey analysis, allowing you to see the precise sequence of events around any key moment. This reveals critical user friction points and successful paths that are invisible in standard reports. It also eliminates the need for data engineers to write complex SQL window functions (LAG/LEAD), which are computationally expensive and typically require data to be exported to a separate data warehouse for analysis.
3. Build smart content groups from messy URLs using the "Regex Replace" and "Case When" functions
The analyst's problem
"Our URL structure is inconsistent. We have ‘/blog/article-name,’ ‘/articles/news/story’ and ‘/resources/blog/post.’ I need a single 'Blog' content group, but getting engineers to write and maintain the classification rules takes forever."
The derived field solution
This two-step combo is a data engineer's bread and butter, now in your hands. First, use “Regex Replace” to standardize URL variations. Then, feed that cleaned URL into a “Case When” statement to build your logical groups.
- Functions used: Regex Replace, Case When
- Example logic:


Impact and engineering offload
This action transforms messy, inconsistent URLs into a clean, reliable content hierarchy, allowing for trustworthy, high-level reporting on content performance. You are single-handedly building a classification rules engine, saving engineers from the tedious task of creating and maintaining complex regex logic within the ETL/ELT process — a task that often involves multiple back-and-forth updates.
4. Simplify first-touch attribution using the "Get First Value in Delimited List" template
The analyst's problem
"We have a field that captures the user's entire journey as a comma-separated list, like “social,organic_search,paid_search.” I need to attribute the conversion to the first touchpoint, but that requires custom scripting."
The derived field solution
This template is tailor-made for this scenario. It can parse a field containing a delimited list and extract just the first (or last) item.
- Template used: Get First Value in Delimited List
Configuration: Point the template to your journey-path field, specify the delimiter (e.g., a comma), and it will create a new field containing only the first channel in the list.

Impact and engineering offload
This action instantly enables simple first-touch attribution modeling, allowing you to quickly assess the performance of initial touchpoints in a user's journey. This eliminates the need for custom scripting (in Python or SQL) to parse delimited strings, a common data preparation task that is now handled with a simple, no-code template, saving both analysts and engineers time.
5. Create a custom user engagement score using the "Math" and "Case When" functions
The analyst's problem
"Metrics like 'Sessions' or 'Page Views' don't tell the whole story. I need a single metric that scores users based on the actions we find valuable, like a video view being worth more than a simple click."
The derived field solution
Build your own weighted engagement score. Use a Case When statement to assign a point value to each important event. Then, use the Math function within a session- or person-scoped metric to calculate the total score.
- Functions used: Math, Case When, Summarize (for scoping)
- Example logic:
- Create a hit-level field "Event Score"
- Then, create a person-scoped metric "Total Engagement Score" that is a SUM of the Event Score field.



Impact and engineering offload
This action empowers you to create custom, weighted KPIs that measure what truly matters to your business, moving beyond generic metrics to a nuanced understanding of user quality. This is a classic ‘feature engineering” task, allowing you to build a custom data model on the fly — a process that would normally require an engineer to modify, test and deploy data transformation jobs.
6. Auto-deconstruct URLs for deeper analysis using the "URL Parse" function
The analyst's problem
"I need to analyze traffic based on which subdomain it came from (“shop” vs.” blog”) or see which query parameters are most common, but it's all locked in a single long URL field."
The derived field solution
The Url Parse function is a powerful tool that automatically deconstructs any URL into its standard components.
- Function used: Url Parse
Usage: When you apply this function to a URL field, it gives you the option to create new dimensions derived from its parts, such as “Hostname,” “Path” or “Query”. Simply select the one you need, like hostname.

Impact and engineering offload
This action instantly creates fundamental web analytics dimensions like Hostname and Path, enabling critical analyses such as comparing subdomain performance or understanding traffic flow. This directly replaces the need for engineers to pre-process and parse URL components during data ingestion, which saves pipeline complexity and ensures these dimensions are always available without a development cycle.
7. Recreate a classic web metric instantly using the "Bounce" template
The analyst's problem
"My team is used to Adobe Analytics and Google Analytics. They keep asking for 'Bounce Rate.’ How can I quickly isolate single-interaction sessions in CJA to answer their questions?"
The derived field solution
Use the Bounces template. It automatically applies the logic to identify sessions that contain only a single event or "hit.”
- Template used: Bounces
Configuration: This is a one-click solution. Select the template, and CJA creates a boolean dimension (true or false) that flags any session that qualifies as a bounce.

Impact and engineering offload
This action provides a classic, easily understood metric that helps bridge the gap for teams transitioning from session-based tools, allowing for quick identification of low-engagement entry points. Fulfill this frequent business request instantly and avoid a typical back-and-forth — where an engineer explains why the metric isn't available or spends time building a complex segment to replicate it.
The end of the waiting game
The data engineering backlog will always exist, but it no longer has to be a roadblock for your most pressing questions. These techniques are your escape hatches from the waiting game, giving you the power to create the data you need when you need it. You design the last-mile analytical models for immediate insights, while they build the foundational data superhighways.
It’s a fundamental shift in perspective, evolving the data analyst, who works with the data they're given, to a data architect, who designs the data they need.
Don't let another great question die in a ticket queue. Dive in, get your hands dirty and don't just answer the question — architect the solution.



