tl;dr: brevo removes url parameters when UTM tracking is enabled. That behaviour is undesired.
The better behaviour would be to add the UTM parameters to exising parameters.
Each of my contacts have a link as atrribute. For example https://my-website.com/a/b/c?user=$user
where $user is different for each contact.
We add these unique links to some of our campaigns
if i set UTM tracking on → brevo removes the ?user=$user part and replaces it by ?_sc=...&utm_campaign=...&utm_id=......
That behaviour breaks the link. It should do is add the UTM params, without removing the existing params.
The desired result is: https://my-website.com/a/b/c?user=$user&_sc=...&utm_campaign=...&utm_id=......
For a message like this, you should contact support directly, either from your personal dashboard in the Help menu (?) or via email at contact@brevo.com.
This will allow you to receive a response more quickly, and the information will be forwarded to the development team so that, if this is indeed an unintended behavior, it can be fixed promptly.
For whoever finds this in the future; I got in touch with contact@brevo.com, this was the relevant part their response:
We’re flagging this internally, as the same URL construction behavior has surfaced in prior escalations and the underlying issue with pre-existing query params in personalized URLs hasn’t been fully resolved at platform level.