The two hats we wear
Beamstage plays two different roles depending on whose data is at stake, and rights are exercised in a different place accordingly.
- For people who hold a Beamstage account (owners, admins and members of an organisation) we are the controller. [[RAISON SOCIALE]], [[ADRESSE]], is responsible for that processing.
- For people who register for a webinar we are the processor. The organisation running the webinar decides what happens to that data.
Data about account holders
| Data | Why we hold it |
|---|---|
| Name and email address | identify you, sign you in, contact you about the service |
| Password, kept only as a scrypt hash | sign you in without us ever knowing your password |
| Google account identifier, if you sign in with Google | sign you in without a password |
| Sessions, with their creation date and the technical characteristics of the request | keep you signed in and let you spot a session you do not recognise |
| Organisation membership and team role | decide what you are allowed to do |
| Invitations you send or receive | run team invitations, which expire after 48 hours |
Data about the organisation
- Name, subdomain slug, default language, reply-to address.
- Branding: logo, colours, typeface, favicon.
- Plan, quotas and consumption counters.
- Stripe customer and subscription identifiers, and for organisations that sell tickets, the identifier of their connected account.
- Custom domains you connect, with the state of their certificate and of the WebSocket check we run before activation.
- Single sign-on configuration when you use it: your email domain and the settings of your identity provider.
Data about the people who attend a webinar
We process the following on behalf of the organisation running the webinar, and only to run it.
| Category | What exactly | Where it is stored |
|---|---|---|
| Registration | first name, last name, email address, acquisition source and any utm parameters on the link, status (registered, attended, no show), unsubscribe flag, ban flag | platform database (Cloudflare D1) |
| Presence | join and leave events, watch time, peak concurrency, session duration | aggregated inside the live room, then written to the database per webinar |
| Interaction | chat messages with their author and timestamp, poll answers tied to the registration, emoji reactions, raise hand | the room’s own storage (a Durable Object), plus aggregate counts in the database |
| Media | the audio and video published on stage, the recording of the session, the replay | Cloudflare Stream and Cloudflare R2 |
| Subtitles | short audio excerpts sent for transcription, the resulting text and its translations | Cloudflare Workers AI, transcripts kept in R2 |
| recipient address, kind of email, provider message identifier, delivery status, bounce and complaint events | platform database, plus Resend for 30 days |
Payments
Card data never reaches Beamstage. Stripe collects and processes it on its own systems. We keep the identifiers Stripe returns, the amounts, the currency, the status of a payment or a subscription, and the events Stripe sends us. For organisations that sell tickets we also keep the identifier of their connected account and the service fee taken on each ticket.
Technical and security data
- Request and error logs produced by the infrastructure, kept for diagnosis.
- Webhook events received from Cloudflare, Stripe and Resend, stored so that a retried event is never processed twice.
- Platform staff actions on an organisation: quota adjustment, suspension, read-only impersonation for support. Each one is written to an audit trail with the operator’s identity.
Why we process it, and on what basis
| Purpose | Legal basis |
|---|---|
| Running the service you asked for | performance of the contract |
| Billing and accounting | legal obligation, performance of the contract |
| Keeping the platform safe: abuse detection, quota enforcement, bounce and complaint monitoring | legitimate interest |
| Improving the product from aggregated usage | legitimate interest |
| Product and marketing email to account holders | consent, which you can withdraw at any time |
| Confirmation, reminder and replay email to registrants | performance of the contract, on the organiser’s instruction |
Cookies and local storage
Beamstage sets no advertising cookie, embeds no third-party analytics and performs no cross-site tracking. What your browser stores is limited to this:
| Name | Purpose | Life |
|---|---|---|
| session cookie | keeps you signed in | until you sign out or the session expires |
| lang | remembers the language you picked | until you change it |
| bs-theme, in local storage | remembers the light or dark theme | until you clear it |
All of these are either strictly necessary or record a preference you set yourself, which is why no consent banner stands between you and the site. If we ever add a measurement or advertising tool, we will ask first.
Who processes data alongside us
| Provider | What it does | What it sees | Where |
|---|---|---|---|
| Cloudflare, Inc. | hosting, database, object storage, video, live rooms, AI transcription and translation | everything the service stores and transports | global network, persistent storage in [[REGION DE STOCKAGE]] |
| Resend | delivery of transactional email | recipient name and address, email content, delivery events | European Union, United States |
| Stripe | subscription payments and ticket payments | payer identity, card data collected directly by Stripe, amounts | European Union, United States |
| Google, only if you sign in with Google | authentication of account holders | your Google account identifier and email address | global |
The list kept up to date, together with the right for a customer organisation to object to a new subprocessor, is in the Data Processing Agreement.
Where the data lives
Beamstage runs on Cloudflare’s global network, so a request is served from the location closest to the visitor. Persistent storage (database, objects, video) is anchored in [[REGION DE STOCKAGE]]. Transfers outside the European Economic Area rest on the standard contractual clauses adopted by the European Commission, backed by the data protection agreement of each provider listed above.
How long we keep it
| Data | Retention |
|---|---|
| Account and organisation | for as long as the account exists, then 30 days to allow reversal, then deletion |
| Registrations and attendance | until the organisation deletes the webinar or closes its account |
| Chat messages and poll answers | with the room, until the webinar is deleted |
| Recordings and replays | the retention window of the organisation’s plan, then deletion from Stream and R2 |
| Live subtitle transcripts | copied to our storage within seven days, because the media provider expires them at that point, then kept with the webinar |
| Email send log | 24 months. The provider itself keeps delivery events for 30 days only |
| Invoices and accounting records | the period required by [[DROIT APPLICABLE]] |
| Staff action audit trail | 24 months |
| Technical logs | 30 days |
Deleting an organisation triggers a purge: database rows, stored objects, recorded videos and the storage of the rooms concerned. Backups expire on their own cycle, which can leave a copy for a few more days.
Your rights
Where [[DROIT APPLICABLE]] grants them, you may request access to your data, its correction, its deletion, a restriction on its use and its portability, and you may object to processing based on our legitimate interest. Where processing rests on consent, you may withdraw it at any time, without affecting what was done before.
- If you hold a Beamstage account, write to [[EMAIL VIE PRIVEE]]. We answer within one month.
- If you registered for a webinar, ask the organisation that ran it. We assist that organisation in answering you.
- You may also lodge a complaint with [[AUTORITE DE CONTROLE]].
How we protect it
- Traffic is encrypted in transit. Certificates for organisation subdomains and custom domains are issued and renewed automatically.
- Passwords are hashed with scrypt. We never hold them in a readable form.
- Every database query is scoped to a single organisation and preceded by a membership check.
- Join links, participant video tokens and replay playback URLs are signed and time limited. A banned attendee is stopped at both doors: the room’s socket and the video token.
- Platform staff access is limited to the people who need it, support impersonation is read only, and every staff action on an organisation is logged.
- Incoming webhooks are verified by signature before anything is written, and handled idempotently.
Children
Beamstage is a professional tool and is not aimed at children. We do not knowingly collect data from a child under 16. An organisation running a webinar for minors is responsible for the notices and consents its own law requires.
Changes to this policy
The version in force is always the one on this page, with the date shown at the top. A change that affects your rights is announced by email or inside the application before it applies.
Contact
Write to [[EMAIL VIE PRIVEE]] for anything about personal data, and to [[EMAIL DE CONTACT]] for anything else. Postal address: [[RAISON SOCIALE]], [[ADRESSE]].