How can we help you?

Cookie consent and privacy (v20)

> Customer-facing KB content for help.velaro.com. New article for v20 (velaro-messaging). > Updated 2026-06.

Summary

Velaro v20 automatically detects your cookie consent platform and loads the chat widget only when the visitor has granted the appropriate consent. No extra configuration is required beyond adding one attribute to your embed snippet.

---

How it works out of the box

Add data-consent-mode="auto" to your Velaro embed script tag:

<script
  src="https://cdn.velaro.com/messenger/embed.js"
  data-site-id="YOUR_SITE_ID"
  data-consent-mode="auto"
  async
></script>

With consentMode: auto, Velaro:

  1. Detects which consent platform is on the page (OneTrust, Cookiebot, Osano, Termly, or

Usercentrics).

  1. Listens for the visitor's consent decision.
  2. Loads the full chat widget automatically the moment the visitor grants Functional consent —

no page reload, no click required.

  1. If no consent platform is detected within 10 seconds, the widget loads normally.

Before Functional consent is granted: zero cookies are written and no visitor is identified. The widget simply waits.

---

CMP-by-CMP consent category

CMPCategory that triggers Velaro to load
OneTrustFunctional — C0003
Cookiebot / UsercentricsPreferences
OsanoSTORAGE
TermlyPerformance / Functionality
Usercentrics (named service)Velaro (add as a service in your Usercentrics config)

Azure load-balancing cookies (ARRAffinity, ARRAffinitySameSite on api-visitor-us-east.velaro.com) should be classified as Strictly Necessary / Required in all CMPs — they carry no personal data and are session-only.

---

Consent modes

ModeBehavior
autoDetects your CMP and loads on functional consent grant. Recommended.
deferWidget loads when the visitor clicks the chat button — the click is treated as consent.
requireWidget loads only when your code calls the provided resolve callback. Use this to wire a custom consent flow.
noneNo consent gating — widget loads immediately. Use only where no CMP is present.

---

Showing chat to every visitor (click-to-load)

If you want a chat button visible to all visitors — including those who decline Functional cookies — use defer mode:

<script
  src="https://cdn.velaro.com/messenger/embed.js"
  data-site-id="YOUR_SITE_ID"
  data-consent-mode="defer"
  async
></script>

The chat button appears for everyone. Clicking it is the visitor actively requesting chat, so the full widget loads at that point regardless of cookie preferences. No tracking or cookies occur before the click.

---

Manual consent wiring (require mode)

If you manage consent in your own code and want to tell Velaro exactly when to load:

// In your embed snippet
window.__velaro = {
  consentMode: 'require',
  onConsentRequired: function(resolve) {
    // Call resolve() whenever your consent logic grants functional consent
    myConsentSystem.onFunctionalGranted(function() {
      resolve({ functional: true, analytics: true });
    });
  }
};

---

How to classify Velaro in your CMP

The widget is a Functional service. No visitor is identified and no tracking cookie is written until the visitor opens chat. The classification:

  • Widget → Functional / Preferences (see table above per CMP)
  • ARRAffinity / ARRAffinitySameSite → Strictly Necessary / Required

---

Need help?

Contact Velaro support to confirm your CMP setup or switch consent modes.

Share: Email

Was this article helpful?