What this policy covers
This policy covers the Smooth Operator website, the forms on it and the password-protected education area. It says what we collect from you, why we ask for it, what the site measures, where it is stored, who reads it, how long we keep it and what you can ask us to do about it.
Smooth Operator is the controller of the personal data described here. PTZ Composer is our desktop software; the usage analytics it sends are described in the section below headed PTZ Composer (the desktop app).
What we collect
The early-access form
When you send the early-access form, on the PTZ Composer page or the check-your-setup page, we receive and store the answers you give:
- your work email address;
- where it will run, such as worship, education or venues, and the setting in your own words if you chose something else;
- your camera make and model, and how many cameras you have;
- how your cameras move today, and the software that runs the show, with its name in your own words if you chose other;
- the operating system of the computer that will run the software;
- the camera move you describe;
- where you are with the decision, whether you can run an evaluation, and the date of your next production, if you give one;
- how you would buy, the integrator or dealer who serves you, if you name one, and your answer to the buying question;
- where you heard about us, if you choose to say;
- whether you ticked the box consenting to product updates by email.
We also store which of the two pages the form was sent from, and a fit score and tier that we work out from your answers, which our team reads when it follows up.
The partner form
When you send the partner form, we receive and store your company, your name, your work email address, your role, the kind of partner you are, the segments you serve, the brands you carry, your territory, the example room you describe, and whether you ticked the marketing consent box.
How you reached the site
When site measurement is on, the site notes a few facts about the first page you open in a browser tab, and posts them with either form, where we store them with your answers:
- the campaign tags of the link you followed (utm_source, utm_medium, utm_campaign and utm_content), when they are plain short words;
- a partner code in the link, when it names one of our partner programs;
- the referring domain: the name of the site that linked to us, such as a search engine, and never the address of the page or what you searched for;
- the landing page: the page of this site you opened first;
- the first solutions page you opened, if you opened one;
- the first source, which is the campaign source tag, else the referring domain, else “direct”.
Technical details that come with a form
With either form we store the user agent string your browser sends (which names the browser and the operating system) and the time the form reached us. When a form arrives, our server makes a random reference number for it — a lead id for the early-access form, an inquiry id for the partner form — and, for the early-access form, a second random checkout reference that a later checkout link can carry instead of anything about you. Neither reference is made from your details. Both forms carry a hidden field that a person never sees; it catches automated submissions, and whatever an automated sender puts in it is discarded rather than stored.
Site analytics
The site measures how it is used with PostHog, in cookieless mode. It sets no cookie for this and stores nothing in your browser’s local storage. It records:
- each page you open, by its path, without the query string, and the referring domain;
- a click on one of the site’s main buttons, by the button’s name;
- which screen of the early-access form you reached, finished, or were asked to correct, with the name of the field to correct — never what you typed;
- when a form is sent, the answers you picked from a fixed list (for example the setting, the range your camera count falls in, the operating system, where you heard about us), the fit score and tier, the facts of how you reached the site listed above, and for the partner form whether you gave a territory and brands and how many segments you picked.
The site never sends PostHog your email address, your name, your company, your camera model, the move you describe, a date, or anything you type into a text box. A form’s events are sent from our server under its random reference number, not under your email address.
To count visitors without a cookie, PostHog works out a number from your IP address, your browser’s user agent string and this site’s name, with a value that changes every day, so the same visitor cannot be followed from one day to the next. Your IP address and your user agent string therefore reach PostHog with each page view. PostHog is set to discard the IP address, so it is not stored with the event; the user agent string, which names the browser and the operating system, can be kept with it. We read the results in the aggregate, to see which pages and which campaigns lead to an inquiry.
The education area
The education area is behind a shared password. When you enter the password, we set a cookie named so_edu in your browser so that you are not asked for it again for thirty days. It carries a fixed session token and nothing about you — no name, no email address, no identifier we can trace back to a person.
Why we collect it
- to review whether your cameras and your control path work with the software, and to answer you with the compatibility tier that applies to your room;
- to plan and schedule an evaluation around your own rehearsal and productions;
- to route a partner inquiry to the right person;
- to send you product updates by email where you consented to them, and for no other marketing;
- to see which pages of the site are read, which screens of the form people leave, and which pages and campaigns lead to an inquiry, so we can improve them;
- to see which parts of PTZ Composer are used and where its setup fails, so we can improve the app;
- to keep a record of our dealings with you, and to meet our legal and accounting obligations.
Where the UK GDPR or the EU GDPR applies to you, our legal bases are these. Marketing email rests on your consent, which you may withdraw at any time. Answering your inquiry, measuring the site and keeping our records rest on our legitimate interest in dealing with people who ask about our software and in improving it, and on the steps you ask us to take before a contract. Where we must keep a record by law, the basis is that legal obligation.
Where it is stored
What you send through a form is written to Google Cloud Firestore, part of Firebase, in a Google Cloud project we control, on servers in the United States. Google acts as our processor for that storage. The site analytics are held by PostHog, on its cloud in the United States; PostHog acts as our processor for them. The site is served by Vercel over HTTPS, and Vercel handles the requests your browser makes, including the analytics requests, which go to this site’s own address and are passed on to PostHog.
Access to the stored records needs our own server credentials. The database rules deny every read and every write from a browser, so a visitor to this site cannot read what another visitor sent.
If you are outside the United States, sending us a form or opening a page means your details travel there. Where personal data moves out of the United Kingdom or the European Economic Area, we rely on the transfer safeguards in our providers’ data processing terms, such as the standard contractual clauses.
Who sees it
Smooth Operator’s own people read your inquiry. Beyond them, it reaches:
- the partner who serves your room. If you tell us a partner serves the room, or you ask us to introduce one, we pass your inquiry and your contact details to that partner so that they can answer you. Ask us and we will tell you who received it.
- our service providers, acting on our instructions: Google, for Firestore storage; PostHog, for the site analytics and the app’s usage analytics; Vercel, for hosting; and Resend, the email service we use when we write to you.
- Lemon Squeezy, when you buy. When purchases open, payment is taken by Lemon Squeezy, which sells the license as merchant of record and holds your billing name, email address and payment details under its own privacy policy. We receive the order facts we need — the plan, the number of camera blocks, whether it was a test order — and not your card details.
- anyone we must tell by law, such as a court or a regulator with a valid demand.
- a buyer of the business, if it is sold or merged. This policy travels with the data until a replacement policy is published and you are told about it.
We do not sell your personal information, and we do not share it for cross-context behavioral advertising. We run no advertising network on this site.
How long we keep it
We keep an inquiry while the conversation is live and for a reasonable period afterwards, so that we can pick the thread up when you come back to it, and then we delete it. Records tied to a purchase are kept for as long as tax and accounting law requires us to keep them.
You can ask us to delete your inquiry sooner through the early-access form, and we will, unless the law requires us to keep that record.
Cookies and similar technologies
The site analytics set no cookie. One thing on this site sets a cookie: the education area sets the so_edu cookie when you sign in to it, so that you stay signed in for thirty days.
The site also keeps two entries in your browser’s session storage, which the browser deletes when you close the tab:
ptz-composer:early-accessholds your answers to the early-access form while you fill it in, so that a reload does not lose them, and, when site measurement is on, a random form session number that ties the form’s screens together. It is removed when you send the form.so:attribution, when site measurement is on, holds the facts of how you reached the site listed above, so that the form can send them with your answers. It is removed when you send a form.
Both entries are used for measurement as well as for the form itself. You can clear them, or block site storage, in your browser settings; the forms still work without them. The education area needs its own cookie to keep you signed in.
PTZ Composer (the desktop app)
PTZ Composer runs on your own computer and controls cameras across your own network. It is not an account on this website. The app sends us usage analytics: short facts about how it is used, with no video, no names and no addresses. This section lists them. The list is generated from the same table the app uses to decide what it may send, and the app shows the same list.
On by default, and how to turn it off
Usage analytics are on when you install the app. To turn them off, open the build dialog from the build badge in the app and use its Privacy section. Turning them off stops the recording at once and deletes the events that are waiting to be sent. The setting stays as you left it through an update. If the app cannot read the setting, it counts analytics as off.
Nothing is sent before the notice
The first time the app starts, and again whenever this list changes, it shows a notice that says what it sends, with a button to turn analytics off. The app sends nothing until that notice has been shown. The list below is version 2 of that notice.
What the app sends
Events carry a random identifier made for this install. It is not linked to your licence, your name, your computer or your cameras, and you can reset it. To make a new identifier, use Reset identifier in the same Privacy section, which also shows the identifier.
With every event, the app sends:
- The app version and build number.
- Whether the app is a customer build or an internal test build.
- The operating system (macOS or Windows), its major version number, and the processor type (arm64 or x64).
The events, and what each one carries:
- That the app started.
- That the app started for the first time after an update, and the version it was updated from.
- That a camera search started, and its kind (network sweep, NDI or subnet). Nothing about what it found.
- That a camera was added: its control protocol, its control and video connection settings, and whether it is a PTZ head or a Camera Node.
- The camera model and its maker, when the model is in the camera list built into the app. A model that is not in that list is sent as "unknown".
- That a calibration ended: ok, failed or cancelled, and how long it took, in wide steps. Never the error text.
- Once per install: the first camera move, what started it (path, go, shot, manual drive or control surface), and how long after the first camera was added, in wide steps.
- That a path was saved: its number of anchors in wide steps, its focus, curve, speed-floor and crossing settings, whether it has a tempo, and whether its feasibility check passed.
- How many usage events the app dropped because its local queue was full, in wide steps.
- That the previous session did not end cleanly, for example a crash. No crash details.
- A test event that our engineering test machines send. No other computer sends it.
Each value is a number, a yes or no, or one entry of a fixed list written into the app, so no value can carry text you type. The app refuses to send an event or a value that is not on this list.
What the app never sends
Never sent: video, audio, camera addresses, MAC or serial numbers, names of cameras, venues, rooms, sessions, presets, shots or paths, host or user names, file paths, what a network search found, free text of any kind, and credentials. Nor does it send a licence key or any other licence secret.
The app sends no crash details, no logs and no support bundle by itself. When a session ends badly, the app sends one fact about it, listed above, and nothing more. The part of the app that sends usage analytics reads one file, its own queue of waiting events; it does not upload your camera list, your licence file, your calibration runs or your flight logs.
It never affects your cameras
Usage analytics never block, delay or fail a camera move, a recall or the start of a session, and the app works the same when it cannot reach PostHog. Events wait in a small queue on your computer; when the queue is full, the oldest are dropped rather than sent again and again.
Where it goes
The events go to PostHog, on its cloud in the United States, which acts as our processor. They are kept in PostHog projects of their own, apart from the site analytics. Your computer’s IP address reaches PostHog with each send, as with any request over the internet; the projects are set to discard it, and each event asks PostHog not to work out a location from it. PostHog makes no person profile from the events. We read the results in the aggregate. To ask about the events from your install, give us the identifier from the Privacy section.
This website and your cameras
This website does not connect to your cameras. It does not route your camera video anywhere: your program video stays on the path it is on today, through your switcher, your recorder and your stream.
Your rights
You can ask us to:
- tell you what personal data we hold about you, and give you a copy;
- correct it where it is wrong or out of date;
- delete it;
- stop or limit what we do with it;
- hand it to you in a portable form.
You can withdraw your consent to marketing email at any time, through the unsubscribe link in the email or through the contact page, and we stop.
If the UK GDPR or the EU GDPR applies to you, those rights come from it, and you may complain to your data protection authority — in the United Kingdom, the Information Commissioner’s Office.
If you live in California, the CCPA gives you the right to know what we collect and why, to get a copy, to have it deleted or corrected, and to be treated no worse for asking. We do not sell personal information and we do not share it for cross-context behavioral advertising, so there is nothing to opt out of on that count.
Make any of these requests through the early-access form. We answer within the time the law allows, and we may ask you for enough detail to find your record.
Children
This site and PTZ Composer are made for people working in production, and they are not directed at children under 16. We do not knowingly collect personal data from a child under 16. If you believe a child has sent us details, tell us through the contact page and we will delete them.
Changes to this policy
We may update this policy. The updated policy is published on this page with a new date at the top. Where a change materially affects what we do with your personal data, we tell the people whose data we hold before it takes effect, so far as we have a way to reach them.
Contact
Questions about this policy, and requests about your data, go through the early-access form with a line saying what they are about. A dedicated privacy address and a postal address are published here once they are confirmed rather than guessed at.
