Changelog
Follow up on the latest improvements and updates.
RSS
Funnel Validation Improvements
We have added stricter funnel validation to help prevent broken funnels from being saved.
Active routing-type nodes now require at least one outgoing connection before a funnel can be saved.
This applies to nodes such as:
- Rotators
- Conditions
- Action Proxies
- AI nodes
- Visitor Tags
If one of these active nodes has no outgoing connection, the backend will reject the save. This applies whether the funnel is saved through the UI or through the API.
This change helps prevent funnels with broken routing paths from being saved and later causing redirect or routing issues.
We also fixed an issue with duplicated funnels using V2 Conditions, where saving could be blocked after deleting the V2 Condition node.
API Documentation Updates
We have rolled out a new API documentation portal.
You can find it from the API Access page, or access it directly here: https://api-docs.funnelflux.pro/
If you use the FunnelFlux API, please use this new portal as the canonical reference for API documentation going forward.
We will also send a separate API update email with more details about the new documentation and some minor API changes.
We have rolled out a significant improvement to the UI and UX of Condition Nodes.
New Condition UI

Now it's much easier to manage multiple routes and create/manage the rules.
You can drag to reorder priorities of routes and can filter them. You can also copy the entire route, rule groups, and individual rules.
The route list shows what kind of operator you're using and the number of groups and rules.
Upgrading Existing Conditions

All new conditions created within the Funnel Builder will use the new User Interface. However old ones can be transformed to use the new format by clicking the upgrade button.
Upgrading needs to change the condition and the funnel data so the upgrade is only persisted when you save the funnel.
Conditions were rather fragile before and prone to bugs. This improves this significantly. However please make sure to re-test any links after upgrading conditions, to make double-sure it's still behaving exactly as you expect.
Note it's not possible to upload
global conditions
because these are used across multiple funnels. The funnel data needs to change to complete the upgrade. It's not possible to trigger updates across all of the related funnels New Condition Attributes
We have added UTC offset as a new attribute you can route by. The current timezone attribute uses a large unhelpful list -- the UTC offsets help you match a broader set of users more easily. We plan to deprecate the old timezone attribute later.
We have updated the IP address attribute to allow specifying ranges as well as specifying wildcards to match.
For example,
123.123.X.X
will now match all IPs matching this format. This is only possible for the C and D range. Needing to match greater ranges is unlikely in practice. Also the IP range option will limit you to similar ranges to prevent destructive rules. API Updates
We consolidated our category APIs to a single canonical endpoint rather than a category path under every asset.
The new V2 conditions specify a route ID alongside route names as well as a priority key, which sets the ordering that they're processed by the edge.
For route ID we suggest using our ID generator and creating IDs like
route_{id}
. However you can also give them semantic names. They are limited to 64 characters. Funnel data now refers to these route IDs explicitly for which connections map where.
We have updated our API docs accordingly.
Please review them if you are creating funnels via API. Note the old format will still work but we would highly recommend moving to V2 conditions, as they are less brittle and easier to manage.
Improved Category Management
We've made categories more consistent across the app.
Categories now use a single shared API system across assets, which helps reduce inconsistencies between traffic sources, offer sources, offers, landers, conditions, visitor tags, and related areas.
Deleting a category is also clearer now. When a category is deleted, assigned assets are moved to
Uncategorized
before the category is removed.Fixed Category Updates In Tables
We fixed several issues where category name changes did not immediately appear in tables.
When you rename or update a category, related tables should now update more reliably without needing a manual refresh. This also fixes cases where old category names, duplicate-looking rows, or mismatched drilldowns could appear after editing categories.
Improved Asset Editing
Editing assets should now feel smoother and more reliable.
We improved how asset names, categories, and parent groups update after saving. This includes fixes for funnels, funnel groups, traffic sources, offer sources, offers, and landers.
We also fixed cases where moving or duplicating funnels did not immediately show the correct result in the table.
Better Validation For Asset Names
We improved validation when saving assets.
Names are now checked more consistently, including duplicate funnel names and invalid formatting. When a save fails, the app now shows clearer error messages so it is easier to understand what needs fixing.
Improved Uncategorized Handling
We cleaned up how
Uncategorized
is handled across category lists, reports, and asset selectors.This should reduce confusing category rows and make reporting drilldowns more consistent, especially when assets have no category assigned.
Performance And Reliability Improvements
We improved loading behavior for edit sidebars and reduced unnecessary refreshes in several places.
Opening and reopening edit panels should now make fewer repeated requests, while still keeping data up to date after changes.
Reporting Fixes
We fixed several reporting edge cases around empty traffic, uncategorized assets, unknown values, and category drilldowns.
Reports should now better match the underlying data and avoid showing misleading rows.
Funnel Builder
The node palette has been updated so that you can better see the category/source of pages when searching and adding them. You can also filter to a specific category to refine your search.

Long names are handled better with two lines + truncation and a tooltip of the full name on hover. Canvas nodes have similar new tooltips.
In page groups, the add page drop-down is now a more detailed selector that lets you quickly add multiple pages matching your search:

The page list inside of page groups has been revamped to better show the full names, the page category, and offer source if it's an offer:

This page settings area also has a new sort drop-down which lets you conveniently sort the entire list by name, category, or rotation weight.
We also recently rolled out a new "big nodes" toggle that allows showing longer names on nodes.
General UI Improvements
We noticed for users with very long asset names, there were multiple places where it got annoying.
So have rolled out a number of tweaks:
- Asset names in some lists were getting truncated to 100 characters. We have expanded this to 256 chars and set stricter validation on the frontend and backend to clamp asset names to this limit
- In many assets, we have changed the name fields to expand to multple lines rather than scroll left to right, so that you can always see the full name.
- Have done the same for base URLs
- We also updated the duplication flow When duplicating an asset, we now disable tabs and state clearly what data can be changed -- this avoids cloning something then finding some changes were not saved
- Notifications now have their width clamped
- Some new validation to stop accidentally saving conditions with empty groups. These still functioned on our backend but would always evaluate to "no match".
Performance
- We made significant performance optimisations to the funnel canvas. Especially if you have quite large funnels, you should find panning and dragging has become a lot smoother.
New Support System
- We are moving to a new support system. You will see the in-app chat interface changes and past conversations are not present.
- There will be a bit of a transition period, apologies in advance for any confusion. If you encounter issues, you can always email our support directly at support@funnelflux.pro.
Tag Nodes are Coming
We are working on implementing tag nodes and are in the final testing stages. We have added them to the UI but disabled them for now.
They will be a free feature for all users.
We have rolled out a number of important improvements to reporting, particularly around drilling down into lander/offers, as well as a new UI for analysing specific hits and visitor sessions.
New UI - Hit Explorer

This new UI is primarily to help with critical debugging of hits and session flows.
For visitor IDs, you can see a timeline of hit events. You can click these blocks to jump between inspecting a specific hit, and can click visitor ID again to go back to the visitor ID analysis.

Additionally, we have added an "inspect" button to the raw event and postback pages, allowing you to jump to this inspector.
Improvements to Raw Events
On the raw events page, we have made the following quality of life improvements:
- Now limited to 20 columns max (up from 15)
- Timestamp, event type, hit ID are all pinned columns on the left now and are removed from column selection
- Asset names and ID are extended -- you can now get page ID, page name, offer source ID, name etc.
- You can now click an inline inspect icon to jump to the hit inspector

Improvements to Posback Logs
We have added page name, page category and offer source as columns
Have also updated to make timestamp, event, hit ID permanent pinned columns
Also added an inspector button to jump to see full details of a specific hit
Filtering Updates
We discovered a new user-agent that was responsible for a lot of bot traffic -- 'hertz', specifically associated with a TikTok ISP and Singapore-based.
We now filter it and will be removing it from historic data to clean up reporting.
Reporting Improvements
We have rolled out changes to improve the cost and conversion attribution data, especially when drilling down into lander/offer type attributes.
This will mainly affect the data you see when opening quickstats for an offer or lander, or doing drilldowns in the report builder that group by a page attribute, followed by others.
For example: Funnel > Offer > Traffic Source > Country
These are inherently complex, because it groups by viewing a specific page that is deep inside a funnel somewhere, then expands further.
In general you can't simply filter to that page, because you lose context of the overall funnel visits, the cost it truly took to get people to that page, and in the case of landers you need to consider the downstream offer conversions that attribute back up the journey.
This is one of the most complex parts of our system because of how FunnelFlux lets you make any sort of funnel, with steps in any order.
I am somewhat jealous of most other trackers that have really simple traffic > lander > offer flows only (often with the offer destinations pre-ordained in advance)... must be much easier to deal with the query logic!
Otherwise, we've also tweaked caching, so swapping between pages and quickstat reports is smoother and faster than ever before.
Within FunnelFlux we have separate lander and offer metrics.
This is accurate but can be a little confusing and inefficient when you just want to see "page metrics".
So, we have rolled out new page metrics that represent lander and offer activity (i.e. pages) in one column. It's the sum of lander and offer metrics added together.
These are now available on all reports. We have also updated the common metrics tab to include these and improved the set here to have all the most popular columns:

You can update to try these new metrics by clicking column settings on any page.
Journey Improvements
We found a logic issue where repeated clicks from pages were making longer and longer journey paths, rather than forking.
This was resulting in excessively long and complex trees, especially in listicle situations and those where multiple clicks originate from the same page.
The end result is lander reports becoming extremely slow in some cases, due to the sheer number of unique paths involved (something which is used behind the scenes to show downstream conversions on landers).
We have made updates to this, so journey complexity and lander reporting speed should improve for impacted users.
Miscellaneous Fixes
- We fixed the footer summary row caching when reloading pages (was disappearing, now is maintained)
- More optimisations to backend queries, making all lander/offer reporting faster
- Fixed an issue with ROI highlighting always turning on, instead of toggling correctly
- Fixed compact table mode, which had regressed and was not styling properly
Lots of performance improvements and fixes with our new rollouts, as below.
Reporting
- Dramatically faster reports— Offer, lander, and category reports are now up to 55x faster. Time-based drilldowns (Hour of Day, Day of Week, etc.) are roughly 2x faster.
- Cost now visible on offer reports— Offer, Offer Group, Offer Category, and Offer Source reports previously showed $0 cost. Cost is now distributed proportionally based on node views.
- Accurate category groupings— Reports grouped by Funnel Group, Lander Category, Offer Category, or Offer Source now reflect your current asset organization, not outdated groupings from when events were recorded. This is part of our major backend assets DB changes.
- URL Tracking Field drill-down chains fixed— Multi-level drilldowns through traffic → lander → traffic patterns now expand correctly.
- Drilldown filtering fixed— Tracking field value filters now apply correctly when expanding drilldown rows.
- Postback logs— Improved default sorting.
- Raw events— Column widths now size correctly on load.
UI Performance
- New Improved Caching— we have added improved caching across the board so that reports do not reload unnecessarily. Navigating the app between pages should feel much faster, and the report builder + others now save the previous report data rather than refreshing on each load.
- Faster navigation— Dashboard charts and QuickStats are now cached, so switching between pages no longer reloads data unnecessarily.
- Improved chart tooltips— Timestamps are now formatted for easier reading.
Funnel Builder
- Smoother canvas panning— Significantly improved panning performance, especially on larger funnels.
- Heatmap overlay fixes— Cards now display at the correct size, and long node names truncate cleanly instead of breaking layout.
- Rotator weights update instantly— Edge percentage labels now reflect saved rotator weights immediately, without needing a full funnel save.
- Auto-naming respects manual edits— Node auto-naming only applies to new unsaved nodes; your manual names are no longer overwritten.
- Linked Funnels removed— This feature has been retired and removed from Advanced Funnel Settings.
Data Management
- Improved cost upload— Column mapping is now auto-detected from your uploaded file, and template download is separated from the upload flow for a cleaner experience.
- Reset data fix— The campaign filter in the reset data form was sending incorrect selections; now resolved.
Bug Fixes & Stability
- Fixed redirect type overrides (301/307) not being applied correctly in some cases
- Fixed table row reshuffling when navigating between reports.
- Fixed form tabs resetting unsaved values when switching between them.
- Resolved 78+ tracked error reports — various edge-case crashes and UI glitches across the application.
- Duplicate "Uncategorized" rows fixed — Category drilldowns no longer show two separate "Uncategorized" header rows.
- Advanced settings toggles fixed — Cost modifier, revenue modifier, and postback throttling toggles now initialize correctly from your saved values.
- Zero values preserved — Toggling advanced settings off and on no longer resets a saved value of 0 back to the default.
New Feature: Campaign Cost Updates
From the Campaign Analysis page, you can now do a rapid scoped update of cost for a campaign row, as below:


This will apply the total cost to whatever the current date range is, for that campaign ID and traffic source, making it easy to do quick cost updates and corrections.
Improvements
- All reporting should be faster, particularly anything involving traffic source
- Updated dropdowns for pages to handle large lists. Now if there are >500 items, it will use a searchable list and only load the first 200 to prevent UI lag
- Updated to new, cleaner change-parent and duplicate APIs for assets - faster and reduces the risk of data issues
Bug fixes
- Fixed numerous issues with V2 reporting on lander/offer related attributes
- Fixed issue with duplicating a newly created node
- Fixed a bug where if node IDs were set to the same IDs used in assets, it would fail to map names correctly
- Fixed an issue with the order of attributes in API requests impacting the results returned
We have now completed migration of our reporting and ledger (assets system) to version 2 services.
For the most part this should have no direct impact for typical users, but is a significant refactor on our side that helps with our development velocity.
We have also rolled out a bit of UI/UX polish.
Here's the quick list of changes/impact:
- We tightened up app design a bit -- menu nav, table icons, colours etc.
- When moving entities to new parents (e.g. funnel groups or categories), you should no longer have issues where the asset data appears in old and new locations at the same time
- All assets now have bulk actions when archiving/deleting parents, so you can e.g. delete a category and choose to delete all children at the same time. Same with archiving.
- Page groups and conditions have moved to a new "Global Nodes" section. Page Groups here now show analytics data and are split into lander/offer tabs.
- Made the column selector UI nicer to use
- Improved page list UI in page groups -- sliders now are much smoother, moving items up and down in list is likewise nicer.
- Overall, you should hopefully see no major changes or disruptions, other than a bit of UX polish.
Reporting in general should have fewer issues -- but again, please report any scenarios where you get unexpected data, as this helps us polish every little edge case and complex grouping.
We have rolled out two new feature changes -- to rotators, and conditions.
Rotator Stickiness Settings
We've had a few requests in the past for "smart" rotation where you can make sure the same user always gets rotated to the same page -- or the opposite, where a user is always routed to a new destination if they visit the same rotator multiple times.
This affinity and anti-affinity logic is now available in rotator node settings:

Note this data is at the session level, so is limited by the session persistence. A user coming back after seven days will no longer have session data (even if we recover the session ID from cookies). So this functionality is aimed at repeat visitors within a short timeframe, e.g. in a 24 hour window.
Condition Node Updates
- Tracking field and referrer properties can now use the IS EMPTYandIS NOT EMPTYoperators
- This will allow you to more easily redirect users based on URL parameters being present or not, or having no value. Likewise with direct visits that have no referrer value

Domain API Updates
- Domains can now be managed via API directly, rather than only via the frontend.
- For users who need programmatic domain control this is likely very helpful news!
- Now, our backend domain API handles all the management of adding to our assets, Cloudflare, and updating billing. It will be relatively high latency when adding domains since it has to do all these processes behind the scenes (e.g. 5-10 seconds).
- We have updated our API docs here to reflect all our recent API changes
Billing systems improvements
- The billing page now shows better breakdowns of charges and estimates upcoming billing
- You can now trial addons for 14 days. As we roll out new addons this will become more important, allowing you to test functionality
- Cancelled and paused subscriptions should now show a reactivate button to resume normal billing
- Fixed an issue where overage were counting from 1 M instead of the included 2 M.
Upcoming Migrations
Just mentioning this now, and will mention again soon, but we are in the middle of migrating our entire assets database system and rolling out a new backend service for this.
Likewise, reporting V2, and soon will be migrating to a new auth system. These all enable us to move faster with development, improve performance, and remove some annoying historic issues.
We expect no downtime or issues, but like with all things, migrations can be complex and small bugs can appear, so we'll announce in advance and appreciate your patience with any things that pop up.
Load More
→