Consent Selector
The Consent Selector tool lets you map specific elements on your page to consent types.
Configuring the Consent Selector
Learn how to map consent types to page elements using the visual tool: implied language, explicit checkboxes, and partner disclosures.
~3 minConsent types
Section titled “Consent types”eConsent tracks four categories of consent across two dimensions:
| Type | HTML value | Description | Example |
|---|---|---|---|
| Main Implied | main-implied | Primary consent language displayed to the user | ”By submitting this form, you agree to be contacted by phone, text, or email.” |
| Main Explicit | main-explicit | Primary consent requiring user action (checkbox, button) | A checkbox labeled “I agree to receive marketing communications” |
| Secondary Implied | secondary-implied | Additional/partner consent language displayed to the user | ”Your information may be shared with our lending partners.” |
| Secondary Explicit | secondary-explicit | Additional consent requiring user action | An opt-in checkbox for third-party marketing |
Using the Consent Selector
Section titled “Using the Consent Selector”The Consent Selector shares the same in-app browser as the Whitelist Inspector, but operates in a different mode.
-
Open the Inspector
Go to Tools > Whitelist Inspector in your dashboard at app.econsent.org and load your website URL.
-
Switch to Consent Selector mode
Toggle from Whitelist Mode to Consent Selector Mode in the toolbar.
-
Click a consent element
Click on the text paragraph or checkbox that represents consent on your page. A modal will appear asking you to classify it.
-
Assign the consent type
Select the appropriate type from the dropdown:
- Main Implied
- Main Explicit
- Secondary Implied
- Secondary Explicit
-
Repeat for all consent elements
Map every relevant consent element on your page. The right panel shows your selections, color-coded by type.
-
Save to your properties
Select the properties to apply this configuration to and save. You can choose Add to Existing to append or Replace All to overwrite.
Tagging in HTML (alternative)
Section titled “Tagging in HTML (alternative)”If you prefer to tag consent elements directly in your HTML instead of using the visual tool, add data-consent-type attributes:
<!-- Main implied consent (displayed text) --><p data-consent-type="main-implied"> By submitting this form, you consent to receive calls and texts at the number provided, including by autodialer.</p>
<!-- Main explicit consent (checkbox) --><div> <input type="checkbox" id="agree" data-consent-type="main-explicit" /> <label for="agree">I agree to the Terms of Service</label></div>
<!-- Secondary implied consent (partner disclosure) --><p data-consent-type="secondary-implied"> Your information may be shared with our network of service providers.</p>
<!-- Secondary explicit consent (opt-in) --><div> <input type="checkbox" id="partner-optin" data-consent-type="secondary-explicit" /> <label for="partner-optin">I consent to receive offers from partners</label></div>Visibility checks
Section titled “Visibility checks”eConsent performs thorough visibility checks at runtime to ensure consent elements were actually presented to the user. The tracker (compiled from Rust to WASM) checks the following conditions:
- Inline styles:
display: none,visibility: hidden,opacity: 0 - Hidden attribute: the HTML
hiddenattribute on the element - Bounding box: element must have non-zero width and height
- CSS classes: common hiding classes:
.hidden,.d-none,.invisible,.collapse - Parent visibility: walks up the DOM tree to check if any ancestor is hidden
- Multi-step form detection: detects active step context so elements in hidden steps are handled correctly
If an implied consent element fails visibility checks, it is not included in the certificate. If an explicit consent element (checkbox) is not checked, it is not recorded as evidence of consent.
What gets stored
Section titled “What gets stored”For each consent element captured during a session, eConsent records:
| Field | Description |
|---|---|
id | Unique identifier for the consent record |
text | Full label text or element content (truncated to 4,900 characters for UTF-8 safety) |
consent_type | The assigned type (main-implied, main-explicit, secondary-implied, secondary-explicit) |
consent_category | EXPLICIT or IMPLIED |
value | Input value for explicit consent, or display state for implied |
name | Input name attribute (if applicable) |
This data becomes part of the consent certificate generated when the form is submitted.
Next steps
Section titled “Next steps”- Whitelist Inspector. Whitelist additional form fields for capture
- Consent Certificates. How captured consent becomes a tamper-proof certificate
- Verification API. Verify consent records programmatically