Allow only unselecting segments on preference center - subscriptions per segments

Your software
My Mautic version is: 3.2.4
My PHP version is: docker php:7.3-apache
My Database type and version is: MariaDB

Your problem
Is there an option to show only selected segments on preference page to disallow selecting new segments? I see the description of “Show contact segment preferences” in email configuration is “This option will allow the contact to unselect their segments”, however it shows all segments that are set to public instead, both selected and not. I am planning to use segments as subscription lists but I do not want contact to be able to “subscribe” to a segment on preference page.

I see someone asked already about this but got not reply on the issue:

My goal is to create many separate subscriptions(where segment holds a subscription list), each of them have own form to opt-in(sometimes with additional data) so beign able to see a checkbox for a segment the contact is not a part of on preference center page means that contact can skip the form entirely to “opt-in”.
Unfortunately default unsubscribe method uses a global “do not contact” flag and I want unsubscribe links to be connected with segments. I see that there’s an option to create a campaign decision for link click and handle that as unsubscribe but I want to use Segment Emails, I do not want to create a new campaign every time I want to send segment mail.

Could anyone help, please? If there’s different way to achieve what I want I would also be grateful for advices.

I have only a workaround for you.
You can create a link ‘Unsubscribe from my English course’ and ‘Unsubscribe from my German Course’.
They should point to a landing page called Unsubscribe English and Unsubscribe German respectively.

Then you can set a campaign with the steps:
Condition: “Page visited” = “Unsubscribe German”
Action: Change Segment (or campaign, or tag depending on how you handle it.)

Same with The other pages.

Does it makes sense?
Good luck.

Thank you for reply!

It looks nice! From what I heard the “Page visited” does not guarantee that it works 100% but on my local test it seems it always worked, even when copying my custom unsubscribe link from mail to private mode in separate browser to avoid any cookies or cache. It looks like this method would allow me to not use preference center at all.

Can I ask how it works? I know that all Mautic URLs in emails have base64 encoded data with all information about the link and the contact. “Clicks email” decision can only be used directly after “Send email” action(and this did not allow me) but “Visit page” decision, as you wrote, can be used anywhere. I expected it to work only on cookies or some cache(which wouldn’t be good) but as I wrote it even worked when copying the link to other browser. Does that “Page visited” decision also works on these base64 encoded data?

Thanks again!

Mautic checks if the past URL visits from the URL visit table and if there is a match, they you get a ‘Yes’.
Besides that I don’t know. I feel the same about this as my father felt about his Skoda 100. If it works, just use it and don’t open the hood.