Changelog
Follow up on the latest improvements and updates.
RSS
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.
We've rolled out a few quality of life changes.
New PII data passthrough, dedupe IDs and logs
- We have added passthrough of PII email, phone, zip code data to all our tracking endpoints, which will pass data automatically to our integrations like Facebook, TikTok etc.
- Added new dedupe_event_id-- this will pass through event IDs for deduplication with APIs from Facebook and similar, so you can match with JS tracking. We recommend using hit_transaction ID for this
- Phone numbers passed now get stripped/normalised so that integrations can always pass the correct formats (for non-hashed data)
Postback log page changes
- The postback logs reporting now has columns for PII and event dedupe ID data, to show if values were passed onwards
- The column selector is now more convenient
Bug fixes
- Improved validation in condition nodes for various properties that were not allowing spaces, IPv6 etc.
- Campaign ID filtering in reporting now properly allows multiple entries
Want to track extra data with your conversions?
Event data is here!
Previously, you could only use transaction ID with conversions to track conversion-specific info.
Now, we have introduced two new "event data" attributes that are passable in postbacks, JS and API uploads.
You can find them in the tracking codes section:

You can also show them in the report builder, and as columns in raw events:


These fields will allow you to send cusotm data about conversions AND custom events. They do not impact deduplication like transaction IDs do.
The fields support up to 1024 characters, so you can also send multiple bits of data with some separators, or some JSON that you can digest and use later with API-based queries.
Use listicles or complex pages with a lot of actions?
Then you'll appreciate this new node type: the Action Proxy, now available in the funnel builder.
How does it work?
The action proxy will take any incoming action and bounce out to the same action. It's a passthrough node.
How is this useful?
Imagine you have a listicle with 20 buttons each going to a different offer. You have to make connections from your lander to each destination offer individually.
So far so good.
But now what if you have half a dozen landers you want to test, and you want them to be separate nodes?
It starts to get messy, with each lander needing to make 20 separate connections to the offers, causing a criss-crossing mess.
This is where the action proxy simplifies things:

Here, I connect all my landers to the action proxy and use our multiple actions feature -- you can edit an action and have many different numbers go down the same path. Above I have 5 actions on the first page, three on the second, all going to the middle action proxy node.
Then, I can connect each action number to it's intended destination. Whatever action I click on from the lander, it goes down that path after the action proxy node.
Now I can add more listicles as nodes (if I don't want them inside an existing lander group node), make a single new connection, and have it all route fine.
And if I want to split test offers, it's much easier to add new items, or throw a rotator into the mix to split things even further -- without as much visual clutter.
We've rolled out some other updates too but we will announce their details early next week.
Raw Event Improvements
We have updated our Raw Events page to now have better sorting and filtering.
- You can now sort by timestamp and others, and it will now sort properly (before, the row limit would cut off the results and not give you the latest data expected).
- You can now filter by a specific visitor or hit ID to find all it's data. Check the filters menu.

- Column settings are now easier to use and show you the 15 column limit more intuitively:

Other Fixes
- Fixed a bug on tables that caused duplication not to immediately show the new row in the table
Hi all,
We're excited to release a major reporting update: Action Data.
A lot of people have asked in the past about seeing exactly which action users clicked and the conversions that came from those.
We have now added this to journey reporting and heatmaps, along with some new attributes.
Within the report builder you can now see a few more journey attributes that have "w/ actions" in them.
Using these you can add action steps to the breakdown:

You can now see the breakdown of clicks and CTRs for each action, as well as the downstream conversions, conversion rates, and ROI.
This leans into the power of having a visual funnel builder and flexible flows. Now you can easily break down the performance of different CTAs and paths at the action level.
We have also added a new "Pages > Action Number" attribute that provides a simpler breakdown:

These are all under the "Journey Mapping" category in the attributes list.
Additionally, you can now see analytics data on actions in the funnel builder's heatmap:

Here, we have added data on the action connections when available, to show clicks, CTR, and other data depending on the report selected.
Note that unfortunately this data is only available from now, after our update -- not for past data. Be aware of this when using these reports across a wider time range.
As this stems from journey data, it's important you group by funnel first in the report builder, then these types of attributes, to avoid confusing data.
We have rolled out some backend UI updates to improve tracking and the ease of accessing and understanding tracking codes.
UI updates
On the tracking codes page, our JS and links are now better presented alongside all their parameters.
You no longer need to search through help docs.
There's a lot of attributes you can use in postbacks/JS that you may not know about, and now you can see them all in the tracking codes section.

Fingerprinting
For "black box" scenarios like Shopify checkouts or clients that can only place conversion tracking JS + don't allow much tracking, we have added a new fingerprint solution.
The use case for this is creating a fingerprint on the page just before the "black box" -> user then clicks through -> in later conversion code, the same fingerprint can be used to connect the dots with the previous session.
This allows for tracking conversions or continuing a session after some bridge that may have completely blocked tracking continuity.
You can find more info in the tracking codes section. Note this should only be used in those cases, it should not be used for normal tracking that is working fine -- will generally slow things down and provide no benefit there.
Session robustness
One challenge with sessions (our vid) is that they are temporary, and the expiry is not completely controlled (it will be say 72 hours but will be limited by the storage capacity of our edge session servers).
To improve this and reduce the occurrence of "organic traffic" or failed clickthroughs, we have added a new session recovery cookie mechanism.
When someone loads a redirect/direct link, we drop a new cookie that can be used later to recover initial session data, allowing reconstruction of the original data -- like traffic source, URL parameters, etc.
If you have a lot of repeat visitors or people who come back after many days, this will help maintain tracking and reduce organic traffic, which can't send events back to an original traffic source.
Billing section changes
In case you missed it, the billing section is now revamped and allows you to pick addons, and shows the upcoming addons we are working on.

Other small fixes:
- Updated our domains page to use a new consolidated API. This gives more reliable redirect checks, and API users will now be able to add/remove domains programmatically. Documentation to come
- Updated our Reddit API integration to use their new V3 API
- Improved table loading and sorting as you navigate between pages
- Updated the navigation menu to open to where you are, when reloading pages (before it always collapsed and didn't highlight your current page)
- Fixed conversion_time overrides that were not working correctly in postbacks
Lots more updates on the way!
Enhanced Filtering System
- Flexible Filter Selection: Funnels and Traffic Sources are now optional filters that can be toggled on/off as needed, rather than being required fields
- Show All Assets: Added toggle to include archived and deleted assets in your filter selections, making it easier to clean up old data
- Validation: System now requires at least one filter (beyond time range) to be set before data deletion, preventing accidental bulk deletions
Improved Input Options
- Bulk Campaign IDs: Campaign ID field now accepts multiple values - simply enter one ID per line
- Smart URL Field Selection:
- When filtering by a single traffic source, you'll see the actual field names configured for that source
- When filtering by multiple traffic sources, you'll see generic fields (c1-c20) for consistent filtering
In case you missed it, we launched Argosync.

If you're looking for cost syncing and automation, head over there now! Please provide feedback to help us grow the product.
We also recently rolled out significant changes to our funnel builder.

You can see an intro video here: https://www.loom.com/share/88433446f5e34794a7fa6bee3e8eed03
The main changes were:
- Removing the context menu and focus on clear hover + single click actions (double-click edits nodes)
- Creating clearer connections and enabling tracing to highlight connections
- Improving the drag and drop to create connections
- Making it faster and easier to delete connections
- Adding auto-organise functions
We also added visualisation of AI node routing data, both on connections and in a list when opening the AI node.


We have rolled out lots of other frontend small fixes and major backend refactoring, but this is boring stuff that you don't see -- just steps to make our momentum faster in the coming weeks/months.
Oh, and we also added revenue share support via postbacks -- you can see https://help.funnelflux.pro/en/article/167-using-revenue-share-payouts-with-offers
Simply add the
rev_share=50
parameter to your postbacks to make it calculate payout dynamically (change the number to whatever percentage).We will add this as a feature to offers directly in the future -- for now this is a simple and easy way to achieve the same thing.
Dashboard Improvements
We have added a settings icon to the dashboard that lets you pick which metrics you'd like to show and in what order. You can access from this icon:

We have also changeds the graphs to use 1 hour, 3 hour and daily precision depending on the time range.
We plan to add 30/15 min blocks in the future to make them more detailed at shorter ranges.
Bugfixes and Improvements
- Improvements to condition node route handling which was causing odd behaviour when duplicating nodes + changing routes and rules
- Fixed an issue with form caching causing your landers, offers etc. to look like they had not updated
- Fixed issues with archive/delete funnel dialogs
- Fixed issues with archived funnels/groups not displaying correctly on the funnels page
- Fixed summary row calculations with custom events
- Some fixes to save/duplicate flows and general UI quirks
Backend Stuff
- Major improvements to action link handling and fallback strategies to reduce the chance of an action not finding a destination
- Updated our JS to return funnel ID in default response the append this to URLs. Our edge now uses this as context on clickthrough to further enhance action accuracy and fallback session creation if a session is not found in our edge databases (e.g. it has expired)
- Will shortly be rolling out an update to fix lander data passing not always adding correctly on redirect
Load More
→