Privacy Policy
Who are we?
We are Keendoc B.V., a limited liability company incorporated and acting under the laws of the Netherlands, registered at the Dutch Chamber of Commerce under registration number 94795096, with offices at Biltseweg 33, 3763 LD Soest, the Netherlands (“Keendoc”, “we”, “us”).
Keendoc offers customers, learners and invited medical reviewers access to services for selecting, reviewing and delivering accredited continuing medical education (“Services”). The learner platform uses artificial intelligence to help filter and summarize peer-reviewed medical and scientific literature into educational formats including podcast and presentation. Reviewers use a separate application to assess source material and generated drafts.
To provide these Services we process personal data of customers, learners, organizational administrators, applicants and invited reviewers. This statement uses “you” for these individuals.
Keendoc B.V. is the data controller. Keendoc Platform B.V. (KvK 99299321), part of the same group, operates the platform and processes personal data on Keendoc B.V.'s instructions as our processor, under an intra-group data processing agreement.
For any questions about this Privacy Policy or how we process personal data, contact us at contact@keendoc.com.
Why do we process your personal data?
We process personal data to deliver and operate the Services. This includes:
- onboarding you and creating and managing your account;
- establishing and performing the Agreement (as defined in the General Terms and Conditions) between you and Keendoc, and contacting you about it;
- creating and managing account, profile, role, specialty and organization-membership records and, where applicable, personalizing content based on recorded interests;
- generating, tracking and issuing CME credits and completion records, including any required assessments;
- managing invited medical review of source material and generated drafts;
- providing you with updates, support and feedback on your use of the platform;
- handling your questions, requests and complaints;
- keeping the platform secure, reliable and free of technical faults;
- improving the quality, relevance and accuracy of our content and Services;
- complying with our legal and administrative obligations;
- sending you newsletters and, where permitted, other communications.
What personal data do we collect and process?
Depending on which part of the Services you use, Keendoc may process the following categories of personal data:
- Identity and account data, such as your name, email address, profile-image URL, internal account identifiers, Clerk identifiers, account role and authentication/session data;
- Organization and access data, such as employer or affiliated institution, organization identifiers, membership identifiers, membership role and access status;
- Professional and preference data, such as medical profession, specialty and recorded content interests;
- Learning and usage data, including content accessed; video and audio progress, position, duration, event type and timestamps; quiz score and pass status; ratings, review comments and completion dates;
- CME and certificate data, including credits, certificate number, issue date, recipient-name and recipient-email snapshots, course-completion snapshots, quiz score and certificate file, integrity and verification metadata;
- Billing and transaction data, including subscription or purchase, plan, amount, currency, billing period and status, and Stripe customer, subscription, payment and event identifiers. Payment-card and bank-account details are handled by our payment provider rather than stored by Keendoc;
- Early-access and marketing data, including name, email, specialty, country, signup source and status, and internal follow-up notes;
- Reviewer data, including reviewer email, access and review status, assigned package, decisions, restrictions, comments and notification metadata. Reviewer comments may also be stored locally in the reviewer's browser, keyed by package and reviewer email;
- Communications and submitted content, such as support requests, complaints, learner comments, reviewer annotations and other information you choose to provide;
- Technical and monitoring data, which may include IP address, device and browser information, session and request identifiers, error and performance data, navigation events and sampled session-replay data.
Please do not submit patient information, health data about yourself or another person, or other special-category personal data through free-text fields unless Keendoc has expressly requested it and identified a valid Article 9 GDPR condition. If unsolicited special-category data is received, Keendoc will restrict access and delete it where appropriate, unless retention and processing are required and lawful.
What is our legal basis for processing?
Keendoc may only process personal data on a legal basis set out in Article 6 GDPR. We rely on:
- Your consent (Article 6(1)(a)), for marketing communications and for session replay;
- Performance of the Agreement (Article 6(1)(b)), for account management, content delivery, personalization, CME credit issuance and support;
- Compliance with a legal obligation (Article 6(1)(c)), for administrative, tax and record-keeping obligations;
- Our legitimate interests (Article 6(1)(f)), for keeping the platform secure and reliable, Sentry error monitoring and performance tracing, Mux playback quality diagnostics, analyzing usage in aggregate, and improving the quality and accuracy of our Services, balanced against your rights and interests.
Consent. Where processing relies on your consent, you may withdraw that consent at any time. Withdrawal does not affect processing that occurred before withdrawal and does not prevent processing or retention based on another lawful basis.
How do we use artificial intelligence?
Keendoc uses artificial intelligence in its editorial content-production process. That workflow works from published scientific literature and does not receive personal data from learner or customer accounts. When an invited medical reviewer comments on a draft course, Keendoc may use the text of those comments to revise that course. Before the text reaches the AI service, Keendoc removes the reviewer's name, email address, account identifier and sign-off.
- This Privacy Policy describes how reviewer comment text is used in Keendoc's editorial workflow.
- Keendoc does not use personal data from learner or customer accounts to generate its educational content. Reviewer comment text may be sent to OpenAI after the identifiers listed above have been removed.
- We do not use AI to make automated decisions that produce legal effects for you or similarly significantly affect you within the meaning of Article 22 GDPR. Personalization determines which educational content is surfaced to you and does not constitute such automated decision-making.
- Before introducing further uses of personal data in an AI-enabled workflow, Keendoc will assess the purpose, lawful basis, transparency, provider role and any international transfer, and update this Privacy Policy where required.
How do we secure your personal data?
To prevent unauthorized access, loss, theft and unlawful use of personal data, Keendoc has implemented appropriate technical and organizational security measures, including access control and role-based permissions, encryption in transit and at rest, authenticated reviewer access, logging and monitoring, and backups. Only authorized personnel can access personal data, and only to the extent necessary to perform their duties.
How long do we store your personal data?
We retain personal data only for as long as necessary for the purpose for which it was collected and to meet our legal obligations. When data is no longer needed we delete it or irreversibly anonymize it. Where the same data serves several purposes, the longest applicable period applies.
| Data | Retention period / criteria |
|---|---|
| Accounts and organization memberships | Kept while the account is in use. If an account is not used for 12 months, we close it and delete or anonymize its data, unless a longer period below applies. We email you one month before closing it. You can delete your account at any time. |
| Early-access leads | Kept until the lead becomes a user or asks to be removed, and in any event reviewed and deleted after 24 months without engagement. |
| Reviewer access, decisions and comments | Kept for as long as the related content is published, plus 5 years, to evidence the medical review behind published content. Reviewer comments held in browser local storage are cleared when the reviewer clears site data. The reviewer application also clears them the next time the reviewer opens their reviews overview in that browser after the package is closed or archived, or after their access to it ends. |
| Learning progress, assessments, CME records and certificates | Kept for 5 years after a credit is earned, also after the account is closed, so we can reissue a certificate for re-registration and demonstrate our credit-awarding process during accreditation monitoring. If you ask us to delete your account, these records are deleted as well, unless you ask us to keep them. |
| Billing and tax records | 7 years from the end of the relevant financial year, as required by Dutch tax law. |
| Support submissions | 24 months after the request is closed, unless needed to handle a dispute. |
| Pilot feedback, check-ins and survey answers | Kept with your account details until six months after the pilot ends, so we can evaluate the pilot and follow up on your feedback. After that we delete them or keep them only in anonymized form. Copies that reach us by email are deleted on the same schedule. |
| Sentry error, tracing and replay data | Deleted automatically on expiry of the configured Sentry retention period, up to a maximum of 90 days. |
| Cookies and similar identifiers | For the durations and deletion criteria in the cookie and browser storage list below. Some functional browser storage has no automatic expiry and remains until site data is cleared. |
Do we share your personal data with third parties?
We do not provide your personal data to third parties unless:
- we have obtained your explicit prior consent; or
- a legal basis applies that permits sharing; or
- it is necessary to perform the Agreement.
If processing or disclosure relies on consent, you may withdraw that consent at any time. This does not affect disclosures or retention supported by contract, legal obligation, legitimate interests or another lawful basis.
We use service providers and other recipients to help deliver the Services. Their legal role differs by activity: a provider may act as our processor, as an independent controller, or in another role.
Former platform provider. Keendoc no longer uses Kajabi. The subscription has ended, the service has been removed and no Keendoc user data remains there. Kajabi is not a current recipient or processor of personal data.
The current Keendoc website and learner platform are Keendoc's own Next.js/Payload application, deployed through Netlify. Payload CMS runs within Keendoc's application and uses Supabase-hosted PostgreSQL.
AI content production. Keendoc may send invited medical reviewers' comment text to OpenAI to revise a draft course. Before sending it, Keendoc removes the reviewer's name, email address, account identifier and sign-off. The workflow does not receive personal data from learner or customer accounts.
The providers that do receive personal or technical data are:
| Provider | Function | Role | Location / transfers |
|---|---|---|---|
| Supabase | PostgreSQL database, reviewer authentication, private storage, serverless functions | Processor | US company; data hosted in the EU (Stockholm). DPA available; SCCs for any transfer. |
| Netlify | Hosting and deployment of the main and reviewer applications | Processor | US; DPA with SCCs / Data Privacy Framework. |
| Clerk | Learner identity, sessions and organizations | Processor | US; DPA with SCCs. |
| Stripe | Payments and subscriptions | Independent controller for payment processing, fraud prevention and its own legal obligations; processor for limited activities | EU contracting entity Stripe Payments Europe Ltd (Ireland); global processing. Certified to the EU-U.S. Data Privacy Framework, SCCs incorporated in its DPA. |
| Mux | Video and audio delivery | Processor | US; DPA with SCCs. |
| Sentry | Error monitoring, performance tracing and sampled session replay | Processor | US company; data stored in the EU (Germany). Certified to the EU-U.S. Data Privacy Framework, self-serve DPA. |
| Resend | Transactional email and reviewer access links | Processor | US, primarily AWS US infrastructure; DPA with SCCs. |
| Google Workspace | Business email, including support requests and pilot feedback sent to contact@keendoc.com | Processor | Google Cloud EMEA Ltd (Ireland); global processing. Cloud Data Processing Addendum with SCCs; certified to the EU-U.S. Data Privacy Framework. |
| OpenAI | AI-assisted revision of draft courses using reviewer comment text after the identifiers listed above are removed | Recipient of reviewer comment text | See OpenAI's Privacy Policy for processing locations and transfers. |
Accreditation and CME certificates. Keendoc is accredited by the EACCME (European Accreditation Council for Continuing Medical Education). We issue your CME certificates and completion records to you directly. We do not send your CME data or certificates to the EACCME, to any professional register, or to any licensing authority. If you want your credits recognized, you submit your certificate to your national professional register or licensing authority yourself. As part of its accreditation monitoring the EACCME may review how we award credits, which concerns our process and does not involve routinely sharing your personal data.
Cookies and similar technologies
When you use our website and platform, strictly necessary cookies, browser storage and similar technologies may be used for authentication, security, session continuity and requested functionality. Session replay is used only where you have given consent. Sentry error monitoring and performance tracing, and Mux playback quality diagnostics, rely on our legitimate interests in keeping the platform reliable and diagnosing technical faults.
- Clerk and Supabase, for authentication, session management and platform security (strictly necessary);
- Sentry, for error monitoring, performance tracing and sampled session replay. Replay is configured to mask text and block media, and is used only with consent;
- Netlify, Mux and Stripe may use cookies or similar technologies when hosted functionality is loaded or you are redirected to their services;
- The reviewer application stores review comments in browser local storage, keyed by package and reviewer email, so that work in progress is not lost.
Information from these technologies is used to operate and secure the Services and, where lawfully enabled, to diagnose errors and improve performance and usability. Keendoc does not use these technologies for advertising profiling.
The following list describes cookies and browser storage used by the Services. Entries without an automatic expiry remain until you clear site data, unless a separate deletion condition is stated.
| Name or key | Provider and purpose | Duration | Category and where |
|---|---|---|---|
| __client_uat (with instance suffix), cookie | Clerk: coordinates sign-in state | 1 year | Strictly necessary. After visiting sign-in or sign-up; learner platform. |
| __session, cookie | Clerk: short-lived sign-in token | About 1 minute, refreshed | Strictly necessary. Signed-in learner platform. |
| __client, HttpOnly cookie on Clerk's domain | Clerk: client token that renews the session | Per Clerk session settings | Strictly necessary. Clerk sign-in service. |
| __clerk_environment, localStorage | Clerk: caches sign-in settings | 24 hours | Strictly necessary. After visiting sign-in pages. |
| sentryReplaySession, sessionStorage | Sentry: screen recording session | Tab session; recording stops after 15 minutes idle or 60 minutes | Consent. Signed-in learner platform, only after consent. |
| media-chrome-pref-muted, media-chrome-pref-volume, media-chrome-pref-subtitles-lang, localStorage | Mux Player: remembers mute, volume and subtitle language | No automatic expiry | Functional. Session videos. |
| keendoc_resume_dismissed, cookie | Keendoc: remembers that you hid "Resume watching" on My Learning, until you play a session again | 90 days | Functional. Signed-in learner platform, only after you hide it. |
| sb-<project>-auth-token, localStorage | Supabase: reviewer sign-in session | Until sign-out | Strictly necessary. Reviewer application. |
| keendoc-reviewer-comments:<package>:<email>:<version>, localStorage | Keendoc: unsent reviewer comment drafts | Cleared with site data, or on the next visit to the reviews overview in that browser after the package is closed or archived, or access ends | Functional. Reviewer application. |
| keendoc.reviewsView, sessionStorage | Keendoc: remembers filters and sorting of the reviews list | Tab session | Functional. Reviewer application. |
| payload-token, HttpOnly cookie | Payload CMS: staff sign-in | 2 hours | Strictly necessary. Staff admin. |
| payload-theme and payload-lng cookies; _payloadClipboard localStorage; payload-pending-success-toast sessionStorage | Payload CMS: admin preferences and editing | Up to 1 year, or session | Functional. Staff admin. |
| __stripe_mid, __stripe_sid, m | Stripe: payment and fraud prevention on Stripe's own pages | See Stripe's cookie policy for durations. | Strictly necessary on Stripe's pages. Checkout and billing portal. |
What are your rights?
You can always ask what personal data we process about you. You may correct inaccurate data and, in specific situations, request that we delete, transfer or restrict the processing of your personal data. You may also object to processing.
You can file a privacy complaint with us by email at contact@keendoc.com if you disagree with how we process your data. You may also lodge a complaint with the Dutch Data Protection Authority (Autoriteit Persoonsgegevens).
Miscellaneous
Keendoc does not use automated decision-making that produces legal effects concerning you or similarly significantly affects you.
This Privacy Policy does not apply to third-party websites linked from our website. Keendoc accepts no responsibility for how those websites handle personal data. Please consult their privacy policies.
Keendoc reserves the right to make unilateral changes to this Privacy Policy. The website always features the latest version.
Latest version: October 2026.