diff --git a/changelog.d/4133.feature b/changelog.d/4133.feature
new file mode 100644
index 0000000000000000000000000000000000000000..ef5cdaf5ec6ca9c630f3273bde31d27fc4f5c75f
--- /dev/null
+++ b/changelog.d/4133.feature
@@ -0,0 +1 @@
+Add `m.login.terms` to the registration flow when consent tracking is enabled. **This makes the template arguments conditionally optional on a new `public_version` variable - update your privacy templates to support this.**
diff --git a/synapse/rest/consent/consent_resource.py b/synapse/rest/consent/consent_resource.py
index 4cadd71d7e6a82b12fa1bcfd3b067fa27ecc8a1e..89b82b0591177e5766113975a0a6af58c71c153c 100644
--- a/synapse/rest/consent/consent_resource.py
+++ b/synapse/rest/consent/consent_resource.py
@@ -141,7 +141,7 @@ class ConsentResource(Resource):
         username = parse_string(request, "u", required=False, default="")
         userhmac = None
         has_consented = False
-        public_version = username != ""
+        public_version = username == ""
         if not public_version:
             userhmac = parse_string(request, "h", required=True, encoding=None)