Cookie Policy

A jogi dokumentum magyar nyelvű változata hamarosan elérhető. Addig az angol nyelvű, hatályos szöveget közöljük, és az angol változat az irányadó.

Hatályos: 2026. november 13.

Deskadora Europe SASU, 60 Rue François 1er, 75008 Paris, France ("Operator", "we", "us", "Deskadora") uses cookies, local storage and similar technologies on deskadora.com, partner.deskadora.com and app.deskadora.com and in the booking widget. This policy explains what we use, why, and how you control it. If the Operator changes (see clause 19.2), these terms apply to its successor in the same way.


1. Scope and status

1.1 This policy covers the website (deskadora.com), the partner dashboard (partner.deskadora.com), the guest app and the booking widget (app.deskadora.com), our internal admin tool, our staff app and our API (api.deskadora.com).

1.2 It follows the GDPR, the UK GDPR where it applies, and the ePrivacy Directive as implemented in France (article 82 of the Loi Informatique et Libertes). The Privacy Policy explains how we handle personal data more generally.

1.3 Cookies set by third parties (Google, Meta, Stripe, Cloudflare, Sentry) are set by their code, and their exact names and lifetimes can change without notice. The lists below name the cookies we expect. They are not an exhaustive list of vendor-set cookies.

2. What these technologies are

2.1 A cookie is a small text file a website stores on your device. Local storage and session storage are browser storage areas that work in a similar way: local storage stays until it is cleared, session storage is cleared when you close the tab.

2.2 We also use service-worker caches and IndexedDB (for push notifications and offline pages) and, in our staff app, storage on the phone itself. We call all of these "cookies and similar technologies".

2.3 A cookie is first party when we set it and third party when another company sets it through its code on our pages.

3. Our categories

3.1 Strictly necessary: needed to log in, keep a session secure, remember a language or consent choice, take a payment or protect a form from bots. These do not need consent.

3.2 Preferences: remember choices such as language or a closed banner. We treat the ones set only after you act as part of the service you asked for. The language cookies set on your first visit are described in clause 7.

3.3 Analytics: measure how our sites are used (our analytics service and, after consent, error-monitoring session telemetry). These need your consent.

3.4 Marketing: measure and optimise our advertising (our advertising pixel, advertising signals and the matching server-side events). These need your consent.

3.5 Security and diagnostics: bot protection and error monitoring (error reports).

4.1 On your first visit to the website, the partner dashboard or the guest app, a banner offers three choices: to accept, to reject or to open the settings. On the website the buttons read "Accept all", "Decline" and "Settings"; in the partner dashboard and the guest app they read "Accept", "Reject" and "Cookie settings". The settings have one switch for analytics and one for marketing; strictly necessary is always on.

4.2 Your choices are stored in two first-party cookies: dsk_consent_analytics (180 days) and dsk_consent_marketing (365 days). They contain only "true" or "false".

4.3 Each hostname stores its own copy. A choice made on deskadora.com is not seen on partner.deskadora.com or app.deskadora.com, and you will be asked again on each.

4.4 No analytics script or service and no session replay is loaded before you accept analytics. No advertising pixel is loaded before you accept marketing.

4.5 If you have accepted analytics earlier, our analytics service starts on your next page load without asking again, until the cookie expires or you change your choice.

4.6 You can change or withdraw your choice at any time, as clause 15 explains. Withdrawing analytics stops analytics and session replay from running on your next action.

4.7 Withdrawing consent does not delete cookies that our analytics and advertising providers already placed in your browser (_ga, _ga_<id>, _gcl_au, _fbp, _fbc). Clause 15.3 explains how to delete them in your browser.

4.8 We do not keep a server-side log of your consent choices. The choice exists only in the cookies on your device.

4.9 Some of our own pages that handle your request, such as the contact form and the demo-call form, read dsk_consent_marketing on our server and only send details to our advertising measurement provider's server-side conversion interface when it is "true".

4.10 When a venue signs up, the signup form sends your banner marketing choice to our server. A signup event is sent to that interface only if you ticked the marketing box on the signup form and your banner marketing choice is "true".

4.11 We do not send a server-side advertising conversion event for subscription renewals.

5. Booking widget on restaurant websites

5.1 Restaurants can embed our booking widget on their own websites. The embed script creates an iframe that loads app.deskadora.com. The script itself sets no cookies or storage.

5.2 Inside the iframe, the widget runs the same code as our guest app: the cookie banner, the session language cookie, and, after consent, analytics (two properties), the advertising pixel and error monitoring. At the deposit step, our payment processor's script is loaded to take the card.

5.3 Before you choose, no analytics, advertising pixel or payment cookie is set in the widget, and no analytics or session replay request is made.

5.4 The widget is shown inside another website, so your browser does not keep our consent cookies there (they are not marked for cross-site use). We tested this on 9 October 2026, with and without the browser's third-party cookie blocking: the banner appears again each time you open the widget, and your choice does not carry over to the restaurant's own site or to app.deskadora.com. The only cookie present inside the widget in the test was a Cloudflare cookie (cf_clearance) kept in partitioned form.

5.5 The restaurant's own website is the restaurant's responsibility, including its own cookies. This policy covers only what our widget sets.

6. Cookies and storage by surface

6.1 The first three tables list what is set without requiring consent. "Before consent" says whether it can be present before you make a choice on the banner.

Website (deskadora.com)

6.2 Strictly necessary and preference items on the website.

NameTypeProviderPurposeCategoryLifetimeBefore consent
dsk_consent_analyticsCookieFirst partyStores your analytics choiceStrictly necessary180 daysNo (set when you choose)
dsk_consent_marketingCookieFirst partyStores your marketing choice; also read by our server to gate server-side advertising eventsStrictly necessary365 daysNo (set when you choose)
dsk_langCookieFirst partyRemembers language for the redirect from the home pagePreference365 daysYes
NEXT_LOCALECookieFirst party (next-intl)Current languagePreferenceSessionYes
dsk_locale_dismissedCookieFirst partyRemembers that you closed the language suggestionPreference30 daysNo (set when you close it)
dsk_demo_call_doneSession storageFirst partyA demo call was requested in this tabPreferenceTabNo
dsk_authCookie (read only)First party, set by partnerThe website only reads it to show "Login" or "My account"Strictly necessarySee partner tableNot set on the website

6.3 Third-party items on the website that are not subject to the banner. Before you make any choice, the website sets only dsk_lang (365 days, first party) and, in a headless (automated) browser, the Cloudflare cookie cf_clearance (365 days, partitioned, set by a bot challenge; it was not seen in a normal browser).

NameTypeProviderPurposeCategoryLifetimeBefore consent
Cloudflare Turnstile iframe and cookies (for example cf_clearance, __cf_bm)Cookie, iframeCloudflare (third party)Bot protection on the demo-call and general-inquiries formsStrictly necessary / securitySet by CloudflareYes, on those forms

6.3A A scan of the public website pages on 9 October 2026 recorded these states. After "Refuser", dsk_consent_analytics (180 days) and dsk_consent_marketing (365 days) are added, and no analytics or advertising host is contacted. After "Tout accepter", _ga and _ga_PMCCEGQMSP (400 days), _gcl_au (90 days) and _fbp (90 days) are added, and googletagmanager.com, google.fr and connect.facebook.net are contacted. The banner buttons in the French version are "Paramètres", "Refuser" and "Tout accepter".

6.3B Before you make any choice, on 9 October 2026 the pages of the website and of the guest app that we scanned fetched country-flag images from purecatamphetamine.github.io (GitHub Pages), a third-party host.

6.4 Items on the website that need consent.

NameTypeProviderPurposeCategoryLifetimeBefore consent
_ga, _ga_<id>CookieGoogle (third-party code, first-party cookie on our domain)Google Analytics 4AnalyticsSet by GoogleNo
_gcl_auCookieGoogleAdvertising signals; only if both analytics and marketing are acceptedMarketingSet by GoogleNo
_fbp, _fbcCookieMeta (SameSite=None; Secure for _fbc)Meta browser and ad-click identifiersMarketing90 daysNo
Sentry session storage and Replay (names set by Sentry)Session storageSentrySession replay of error sessions, maskedAnalyticsTabNo

Partner dashboard (partner.deskadora.com)

6.5 Strictly necessary and preference items on the partner dashboard.

NameTypeProviderPurposeCategoryLifetimeBefore consent
dsk_sidCookie, HttpOnly, SameSite=Lax, Secure, domain .deskadora.comFirst partySession id checked by the page guardStrictly necessary30 daysNo (set at login)
dsk_refresh_tokenCookie, HttpOnly, Secure, SameSite=None, domain .deskadora.com, set by api.deskadora.comFirst partyKeeps your session signed inStrictly necessaryUp to 30 daysNo (set at login or signup)
dsk_authCookie, SameSite=Lax, Secure, domain .deskadora.com, not HttpOnlyFirst partyNon-secret "signed in" flag for the website menuStrictly necessary30 daysNo
dsk_loc_idCookie, domain .deskadora.comFirst partySelected branchStrictly necessary30 daysNo
dsk_device_idCookie, SameSite=Lax, Secure in productionFirst partyPer-browser device id, shown in your session list and used to detect unfamiliar devicesStrictly necessary (security)1 yearYes: created when you submit the login or registration form, even if you have not used the banner
sidebar_stateCookieFirst partySidebar open or closedPreference7 daysNo
dsk_consent_analytics, dsk_consent_marketing, NEXT_LOCALECookieFirst partyAs in clause 6.2As aboveAs aboveAs above

6.6 Third-party items on the partner dashboard not subject to the banner. A read of the partner dashboard on 9 October 2026 found the cookies listed in clause 6.5, with the lifetimes stated there, and, with consent, _ga, _ga_LYYT9PDSK5 and _ga_PMCCEGQMSP (13 months), _gcl_au (3 months) and _fbp (3 months). With consent it contacted googletagmanager.com, connect.facebook.net, facebook.com and the Meta Pixel event relay on *.ecs.us-west-2.on.aws (part of the Pixel, United States).

NameTypeProviderPurposeCategoryLifetimeBefore consent
__stripe_mid, __stripe_sidCookie, SameSite=StrictStripe (third party)Fraud preventionStrictly necessary1 year, 30 minutesNo: only on the Billing page when you update a payment method, after login (read on 9 October 2026)
Cloudflare Turnstile and cookiesCookie, iframeCloudflareBot protection on the sign-in, registration and password reset pagesStrictly necessary / securitySet by Cloudflare; no Cloudflare cookie was seen on these pages in a normal browser on 9 October 2026Yes
Facebook JavaScript SDK (for example fbsr_*, if set)Script, cookieMeta (third party)WhatsApp Embedded Signup in Settings, after you log inStrictly necessary for that feature you startedSet by MetaNo: loaded only after login in Settings

6.7 Items on the partner dashboard that need consent.

NameTypeProviderPurposeCategoryLifetimeBefore consent
_ga, _ga_<id>CookieGoogleGoogle Analytics 4AnalyticsSet by GoogleNo
_gcl_auCookieGoogleAdvertising signals, if analytics and marketing are both acceptedMarketingSet by GoogleNo
_fbp, _fbcCookieMetaMeta identifiersMarketing90 daysNo
Sentry session storage and ReplaySession storageSentryMasked error-session replayAnalyticsTabNo

6.8 If an administrator of ours impersonates a venue account to give support (with a one-time code emailed to the venue administrator), the same dsk_sid, dsk_refresh_token, dsk_auth and dsk_loc_id cookies are set for that support session.

Guest app and booking widget (app.deskadora.com)

6.9 Strictly necessary and preference items in the guest app and widget.

NameTypeProviderPurposeCategoryLifetimeBefore consent
dsk_consent_analytics, dsk_consent_marketingCookieFirst partyYour choicesStrictly necessary180 days, 365 daysNo
NEXT_LOCALECookieFirst partyLanguagePreferenceSessionYes
dsk_refresh_tokenCookie, HttpOnly, Secure, SameSite=None, domain .deskadora.comFirst partyOnly present if a venue account signed in on a deskadora.com subdomain; not set for ordinary guestsStrictly necessaryUp to 30 daysNo
dsk_sidLocal storageFirst partySession id for live connection reconnect, after a signed-in token refreshStrictly necessaryUntil clearedNo

6.10 Stripe on the guest app and widget. The deposit step loads Stripe.js (hosts js.stripe.com and m.stripe.network), which sets __stripe_mid and __stripe_sid as described in clause 7.3.

NameTypeProviderPurposeCategoryLifetimeBefore consent
__stripe_mid, __stripe_sidCookie, SameSite=StrictStripe (third party)Fraud prevention while you pay a depositStrictly necessary1 year, 30 minutesNo: loaded only at the deposit step

6.11 Items in the guest app and widget that need consent.

NameTypeProviderPurposeCategoryLifetimeBefore consent
_ga, _ga_<id> (one per property)CookieGoogleGoogle Analytics 4, two propertiesAnalyticsSet by GoogleNo
_gcl_auCookieGoogleAdvertising signals if analytics and marketing both acceptedMarketingSet by GoogleNo
_fbp, _fbcCookieMetaMeta identifiers; Pixel events on venue booking pagesMarketing90 daysNo
Sentry session storage and ReplaySession storageSentryMasked error-session replayAnalyticsTabNo

6.11A A read of the guest app landing page on 9 October 2026 found the consent cookies of clause 6.9 and, with consent, _ga, _ga_PMCCEGQMSP and _ga_LYYT9PDSK5 (400 days), _gcl_au and _fbp (90 days), and contacted googletagmanager.com, google.fr, connect.facebook.net, region1.analytics.google.com and stats.g.doubleclick.net. The banner buttons are "Paramètres des cookies", "Refuser" and "Accepter".

6.12 First-party menu-scan items in the guest app are described in clause 9.

Admin tool (internal)

6.13 Our internal admin tool, used only by our staff, sets dsk_admin_refresh_token (HttpOnly, Secure, SameSite=None, set by api.deskadora.com), session-storage keys dsk:admin:token and dsk:admin:employeeId, local-storage key dsk:admin:openTabs, and sidebar_state (7 days). It uses no analytics, advertising, error-monitoring, payment or bot-protection tools. It has no banner because it stores only what is strictly necessary.

Staff app

6.14 Our staff app is described in clause 13.

API (api.deskadora.com) and OAuth connector

6.15 Cookies set by our API.

NameTypeProviderPurposeCategoryLifetimeBefore consent
dsk_refresh_tokenHttpOnly, Secure, SameSite=None, domain .deskadora.comFirst partyRefresh token for venue accounts; rotatedStrictly necessary30 days at login; rotation resets to the token expiryNo (set at login or signup)
dsk_admin_refresh_tokenHttpOnly, Secure, SameSite=NoneFirst partyAdmin refresh token (internal)Strictly necessaryUntil token expiryNo
_dsk_oidc_sessionSigned, HttpOnly, Secure, SameSite=NoneFirst partySession for the owner connector (OAuth)Strictly necessary14 daysNo (set when an owner connects an AI client)
_dsk_oidc_ia, _dsk_oidc_resumeSigned, HttpOnly, Secure, SameSite=LaxFirst partyShort-lived state during the owner connector sign-in and consentStrictly necessaryLibrary default, about 1 hourNo

6.16 The connector's own service (mcp) sets no cookies and no storage.

7. Strictly necessary and preference cookies

7.1 Strictly necessary cookies are those in clauses 6.2, 6.3, 6.5, 6.6, 6.9, 6.10, 6.13 and 6.15, namely: dsk_sid (30 days, HttpOnly), dsk_refresh_token (up to 30 days, HttpOnly), dsk_auth, dsk_loc_id, dsk_device_id (1 year), the _dsk_oidc_* cookies for the owner connector, the two consent cookies, Cloudflare Turnstile and Cloudflare cookies, and Stripe's __stripe_mid and __stripe_sid.

7.2 dsk_device_id is set when you submit the login or registration form on the partner dashboard, before and regardless of any banner choice. It is a random identifier used for security and for the list of your sessions and devices. We treat it as strictly necessary for security.

7.3 Stripe.js sets __stripe_mid (1 year, SameSite=Strict) and __stripe_sid (30 minutes, SameSite=Strict) only on pages where it is loaded: the deposit step of a booking and the billing page of the partner dashboard (read on 9 October 2026). Cloudflare Turnstile runs only on the website's demo-call and general-inquiries forms and on the partner login, registration and forgot-password pages; no Cloudflare cookie was seen on partner pages in a normal browser.

7.4 NEXT_LOCALE and dsk_lang are preference cookies that store the language you use, so a page opens in it. They are set on your first visit because language selection is part of delivering the page you requested.

7.5 Without strictly necessary cookies the sites cannot sign you in or keep you signed in, and payments and forms may fail.

8. Local storage and session storage

8.1 The partner dashboard uses these keys. Session storage (cleared when the tab closes): dsk:token (your access token and session id for this tab), dsk:buildIdReloaded (prevents a reload loop after an update). Local storage: dsk:openTabs (tab heartbeat, kept), dsk:token:ping and dsk:token:pong (tab handshake). All are strictly necessary.

8.2 The partner dashboard also stores these user-interface choices in local storage after you act, each persisting until cleared: deskadora_trial_banner_dismissed, deskadora_checklist_collapsed, deskadora_onboarding_completed, pwa_install_dismissed, dsk_template_draft (a message template draft, removed after it is read) and possibly theme. These are preferences.

8.3 The guest app stores dsk_sid in local storage (clause 6.9) and, in session storage, the two keys described in clause 9. The website stores dsk_demo_call_done in session storage (clause 6.2).

8.4 The partner dashboard registers a service worker with caches (offline page) and, only after you grant the browser push permission, push notification storage in IndexedDB (firebase-messaging-database, firebase-installations-database).

9. First-party menu-scan statistics

9.1 When you open a venue's digital menu in the guest app, the page creates a random identifier for the browser tab (deskadora_session_id) and a list of venue ids already counted in this tab (deskadora_tracked_locations), both in session storage, which is cleared when the tab closes.

9.2 The page sends this identifier to our server with the venue, menu and QR-code ids, the language, and the device type, operating system and browser family derived from your browser's user agent. Our server also derives an approximate country and city from your IP address using a locally stored database. The venue sees the resulting counts, not individuals.

9.3 This measurement does not use the banner and runs before you make a choice. Whether it falls within an exemption from consent or needs consent is under review.

10. Marketing

10.1 With your consent we use an advertising pixel to measure our advertising and to build audiences. It sets _fbp (browser id) and _fbc (ad-click id, built from the fbclid in the link you clicked), both lasting 90 days, and can send the advertising provider your page views and booking-step events, which are InitiateCheckout and Schedule on venue booking pages.

10.2 The advertising pixel is added to a page only when dsk_consent_marketing is "true" at the time the page is loaded, so after you accept it starts from the next page you load.

10.3 With your consent we also send some events from our server to the advertising provider (its server-side conversion interface): contact-form and demo-request events, and a signup event for venues (clauses 4.9 to 4.11). These can include hashed contact details, your IP address, your browser's user agent and the _fbp and _fbc values.

10.4 Advertising signals (ad_storage, ad_user_data, ad_personalization, and the _gcl_au cookie) follow your marketing choice. Because the analytics script loads only after you accept analytics, you must accept both analytics and marketing for advertising signals to be enabled.

11. Security and diagnostics

11.1 We send error reports from your browser to our error-monitoring provider so we can find and fix faults, whether or not you consent. A report contains the error, the page address and browser details; our error-monitoring provider is set not to store IP addresses (since 9 October 2026).

11.2 Before an error report leaves your browser, we remove email addresses and phone numbers from its text.

11.3 Session replay is not loaded until you accept analytics. Once you do, it records only when an error occurs: the page is held in your browser's memory and is sent to us only if an error happens, and it is never a continuous recording. All text and form inputs are masked and media is blocked. Withdrawing analytics stops it. Performance tracing and browser session tracking also run only after you accept analytics.

11.4 We send error reports without asking for your consent because we rely on our legitimate interest in the security and quality of the service. Session replay is different: it needs your analytics consent (clause 11.3).

11.5 We use bot protection on sign-in, registration, password-reset and demo-call forms to stop automated abuse. It runs a check in your browser and returns a token to us.

12. Push notifications and service workers

12.1 In the partner dashboard, if you allow browser notifications, our push notification provider stores a push registration in IndexedDB and our server stores a push token for your device, so we can send booking alerts. You can withdraw by blocking notifications in your browser.

12.2 The service worker keeps an offline page in the browser cache.

13. Staff app

13.1 Our staff app is a mobile app and sets no cookies. It stores on the device: your session (including an access token, held unencrypted in the app's local store), a cache of data for 24 hours, an offline queue, settings and language, and a push token. Your PIN is held in the device's secure keychain or keystore. The app uses no advertising identifier and no analytics SDK.

13.2 The staff app sends crash and error reports to our error-monitoring provider from the moment it starts. It has no consent screen for this.

14. Third-party requests that reveal your IP address

14.1 Loading some pages makes your browser contact other companies directly, which then see your IP address and browser details, even without a cookie.

14.2 Google Fonts: none. Our fonts are served from our own domain.

14.3 Flag icons: language and country selectors load flag images from a public content delivery network (purecatamphetamine.github.io, hosted on GitHub Pages).

14.4 Google Maps: the About tab of a venue page in the guest app shows a Google Maps embed. Google may set its own cookies when it loads.

14.5 Unsplash: the public demo builder (app.deskadora.com, path /try) loads sample photographs from images.unsplash.com.

14.6 Cloudflare: our traffic goes through Cloudflare (DNS, delivery and security), and Turnstile loads from challenges.cloudflare.com.

14.7 Google (googletagmanager.com) and Meta (connect.facebook.net) receive requests only after you consent, as described in clauses 4.4 and 10.

15. How to change your choices

15.1 Use the "Your Privacy Choices" link in the footer of the website, the partner dashboard and the guest app to open the banner settings. Your choice applies to the browser, device and hostname where you make it.

15.2 You can also block or delete cookies in your browser. If you delete the consent cookies, the banner returns on your next visit. If you block strictly necessary cookies, sign-in, payments and forms may stop working.

15.3 Because withdrawing consent does not delete cookies already placed (clause 4.7), delete these in your browser settings after withdrawing: _ga, _ga_<id>, _gcl_au, _fbp, _fbc. In Chrome: Settings, Privacy and security, Third-party cookies or Cookies and other site data, See all site data, search for "deskadora". In Firefox: Settings, Privacy and Security, Cookies and Site Data, Manage Data. In Safari: Settings, Privacy, Manage Website Data. In Edge: Settings, Cookies and site permissions, Manage and delete cookies.

15.4 You can also use your browser's private mode or tracking-protection features, and you can opt out of analytics with the analytics provider's browser add-on.

16. International transfers

16.1 Some providers named here may process data outside the European Economic Area. The current list of our sub-processors, with where they process data and the safeguards we rely on, is at [link to the sub-processors page].

17. Children

17.1 Our sites and apps are not directed at children and are intended for people aged 18 or over. We do not knowingly set analytics or marketing cookies on a child's device.

18. Your rights and contact

18.1 You can ask for access, correction, deletion, restriction or objection for data collected through these technologies, and withdraw consent at any time, by writing to [email protected].

18.2 You may complain to the supervisory authority of your country (for France, the CNIL, which is also our lead authority) or to the ICO in the United Kingdom (ico.org.uk).

18.3 Deskadora Europe SASU, 60 Rue François 1er, 75008 Paris, France. Email: [email protected].

19. Changes and the Operator

19.1 We will update this policy when we add or change cookies or categories. When we add a new cookie category we ask for your consent again before setting it. The date at the top shows the current version.

19.2 We may transfer our rights and obligations under this policy to another company that operates Deskadora, and we will tell customers by notice on our sites before the transfer takes effect. References to the Operator then mean that company.