Privacy Policy
Version date: November 8, 2026
Who this covers, and our role
Loom is run by Loom Tech LLC, [CONFIRM: business address] (“Loom”, “we”). Massage, spa and wellness studios use it to take bookings and run their business.
- For a studio’s client data, Loom acts for the studio. The studio decides what to collect and why, and it is your first contact. Each studio’s booking terms and privacy notice is linked from its booking page.
- For owner accounts, Loom acts on its own behalf. That covers the people who sign up, the studio’s billing relationship with us, and team logins.
[CONFIRM: the legal terms for these two roles, and whether a data processing agreement with studios is needed]
What we collect
Owners and team logins: name, email address, a scrambled (hashed) copy of the password, whether the email was confirmed, when the Terms and this policy were accepted and which version, and sign-in sessions.
Studios: studio name, address, phone, contact email, description, timezone and photos; settings; the owner’s mobile number for alerts, if added; subscription status and Stripe IDs; and gift card images. If the studio registers for texting: its legal name, business type, EIN, address and an authorized contact’s name, title, email and phone, with the Twilio IDs and key for its account.
Therapists: name, email, phone, job title, photo, working hours and time off, services offered, pay rates, pay and tips recorded, credential details if the studio adds them, and the email address on any invitation.
Clients: name, email, phone and notes on the client’s record; each appointment’s date, time, service, add-ons, therapist, status, price, tip, how it was paid, notes and any reason staff recorded for an override; the name typed to accept the studio’s booking terms, with the terms’ text and the time; and hashes of private appointment links.
Gift cards: the buyer’s name and email, the recipient’s name and email, the message, code, balance and redemptions with any note staff add, the terms accepted, and Stripe IDs for the payment. Card details go to Stripe; Loom doesn’t receive them.
Texts: see “Text messages” below.
Messages we send: a record of each email and text, described under “How long we keep things”.
Technical: counters for rate limits, stored only as a hash of the IP address, email or phone number; error reports and server logs, described below; and an audit trail of actions in a studio (who, what, which record, when), without the record’s contents.
Health details. Loom doesn’t ask for health information, but notes are free text, and a client or studio may enter some. Loom stores notes like the rest of a booking, with no separate protection. [CONFIRM: whether this creates extra duties, and what this section should then say]
How we use it
- to run the service: bookings, calendars, team schedules and gift cards;
- to send appointment emails and texts, account emails and notices to studios;
- to bill studios, through Stripe;
- to register a studio for texting with Twilio and the carriers;
- to keep the service secure, limit abuse and fix errors; and
- to answer support requests.
Loom has no advertising or analytics trackers, and doesn’t sell personal information. [CONFIRM: whether this wording holds under each state’s definition of “sell” and “share”]
Service providers
These companies handle information so that Loom can run:
- Supabase hosts Loom’s database, which holds everything described on this page, and its file storage, which holds studio photos and gift card designs and serves them publicly, at addresses that can’t be guessed.
- DigitalOcean App Platform runs the app and its background worker, so every request passes through it, and it holds the server logs described below.
- Stripe runs subscription billing. It receives the owner’s email and the studio’s name, and collects card details itself. For gift cards, the studio’s own Stripe account receives the buyer’s email and card details, the recipient’s name and the amount. Connecting that account sends Stripe the studio’s name and the owner’s email.
- Resend delivers email. It receives each message’s recipient, subject and content, which can include a client’s name, appointment details, booking notes, private links, gift card codes, or a client’s phone number and text reply.
- Twilio and the phone carriers deliver texts. Twilio receives each recipient’s number and the text, which can include a studio’s name, an appointment time and link, and in alerts to staff a client’s name and service. It also receives clients’ replies and each studio’s registration details, including its EIN.
- Sentry receives error reports. Reports are limited to the error, where in the code and on which page it happened, and IDs for the studio and booking. Emails, phone numbers, tokens and similar values are removed by matching their patterns, but this can’t recognize a person’s name inside an error message.
- Google Fonts: every Loom page, including booking pages, loads its fonts from Google, so your browser sends Google your IP address and browser details.
- Apple Maps: a client’s appointment page can show a map. If it does, your browser loads it from Apple and asks Apple to find the studio’s address, which sends Apple your IP address. The directions button opens Apple Maps.
If you follow the address link on a booking page, it opens Google Maps with the studio’s address. A studio can also put its booking form on its own website, and that website’s own privacy practices apply there.
Loom has code for Google’s booking partner program, but it isn’t on at launch. A studio’s privacy notice describes how Google referrals work if it’s turned on later. If it is, Loom would send Google feeds of the studio’s booking information and, for bookings that came from Google, a referral token.
[CONFIRM: where each provider stores data, including the Supabase and App Platform regions, and what to say about transfers between countries]
Text messages
A client gets appointment texts only if they tick the optional box when booking, or tell the studio they agree when booking by phone. Booking never depends on it. Owners agree by adding their own mobile number. Therapists get alerts when the owner adds their mobile and confirms that they agreed. No text is sent unless the studio’s texting is registered and active.
We keep each number’s consent record: the time, the wording on record, how it was given and the related booking. [CONFIRM: the wording stored isn’t exactly what the client saw on the booking page; whether this is enough as evidence] Permission for promotional texts has its own record. The form that collects it is off, no promotional texts are sent, and anything collected earlier is kept.
Stopping texts. Replying STOP stops all of that studio’s texts to the number, and we record the opt-out. Replying START turns them back on. A later tick of the booking box, or staff recording that the client agreed, also clears the opt-out in Loom’s records. [CONFIRM: whether staff should be able to clear an opt-out this way]
Replies. Other replies get an automatic answer, at most one in any 12 hours. If the studio has set a contact address, Loom forwards the reply there by email, with the sender’s number, and the client’s name if Loom recognizes the number. The reply is kept for 30 days.
We don’t share mobile numbers or texting consent with third parties or affiliates for their marketing or promotional purposes. Numbers reach only the providers above, to deliver the messages. Message frequency varies, usually one text per appointment, and message and data rates may apply.
Who can see client information
- Studio owners can see all of their studio’s clients and appointments and can download appointments as a file.
- Therapists don’t have the client list, but they can see the name, phone number and notes on their own appointments, including in the emails they get.
- Anyone with a private appointment link can view or cancel that appointment and see the names of others in the same group booking. The links don’t expire.
- Loom can reach the data to run and support the service. [CONFIRM: who at Loom has access, and under what limits]
Cookies and browser storage
loom_session: keeps you signed in, for up to 14 days.loom_locale: remembers English or Thai, for a year.loom-theme, in browser storage: remembers light or dark mode on the dashboard.loom-google-referral, in browser storage: only if you arrive through a Google booking link. It’s replaced on a new referral, and lasts 30 days.
How long we keep things
Most records have no automatic end date. Here’s what the software does today. Loom’s background worker runs its cleanups about once a minute, and the email and text cleanup about once an hour.
Removed automatically:
- rate limit counters and sign-in sessions, once they expire;
- password reset and email confirmation links, 7 days after they expire;
- client text replies, 30 days after they arrive;
- gift card purchases never paid for, after 3 days;
- queued emails and texts past their expiry time, if still unsent;
- the record of each email and text (its recipient, subject or type, status and times), 90 days after it’s sent. A subject can include a client’s name, for example “New booking: …”, or a client’s phone number when a text reply is forwarded. The message body of an email is cleared once it’s delivered, and the wording of a text isn’t stored;
- emails and texts still unsent 7 days after they were due, for example while sending was switched off, with their bodies. Reminders for later dates aren’t due yet, so they stay;
- an email that keeps failing, after about two days of retries. Until then it keeps its full body, which can include booking notes and private links; and
- Google referral records, once they expire.
Kept with no automatic deletion:
- clients, appointments, booking terms acceptances, gift cards and their history, texting consents and opt-outs, therapists, invitations, studios, accounts and the audit trail. This includes studios whose subscription has lapsed;
- photos and gift card designs a studio has removed. They stop being offered but stay stored.
Held elsewhere, on those companies’ schedules: Stripe, Twilio and Resend keep their own copies. Error reports stay in Sentry. Database backups keep erased data until they age out. Server logs stay with the host, and they aren’t cleaned the way error reports are: the framework’s own error lines and the worker’s crash output can contain raw error text, including email addresses and tokens. [CONFIRM: how long backups, host logs, Sentry reports and provider copies are kept]
Security
Passwords, session tokens, and reset and appointment links are stored only as hashes. A studio’s Twilio key and texting registration details are encrypted by Loom. Other information, including notes, isn’t separately encrypted by Loom. No system is perfectly secure. [CONFIRM: what to say about breach notification]
Requests: access, correction and deletion
If you’re a studio’s client, ask the studio first, using the contact details on its booking terms page. It holds your information, and it can see, correct or erase it. If you contact Loom, we’ll pass you to the studio. [CONFIRM: whether Loom passes requests on or answers them, and within what time]
When a studio owner erases a client, Loom anonymizes the record instead of deleting it, so the studio’s appointment and revenue totals stay correct. The name, contact details and notes are removed. Unsent messages and private appointment links are deleted, and those links stop working. Dates, services, prices, tips and pay stay. Upcoming appointments must be cancelled or completed first. This can’t be undone.
Some things stay after that:
- Other records: the owner chooses which records to erase, so a record that wasn’t chosen keeps its details, and a guest’s record can keep the booker’s name.
- Free text: notes and messages on other people’s records can still mention the client, because Loom can’t reliably find them.
- Opt-outs: a number that replied STOP stays on record, in readable form, so the opt-out keeps being honored.
- Consent records: the record that the booking terms were accepted stays, without the name. [CONFIRM: whether these records must keep the name, and whether keeping a readable opted-out number is acceptable]
- Gift cards: the card keeps working, because its balance belongs to whoever holds the code. The erased person’s details on it are removed.
- Copies at other companies and in backups: copies at Twilio and Resend, in the studio’s Stripe account, and in database backups aren’t erased immediately. Backups age out on their own schedule. Records in a studio’s Stripe account are the studio’s to manage.
If you have an owner or team login, contact us at [email protected] to access, correct or delete your information; team members can also ask their studio’s owner. Closing a studio removes its data from Loom; Stripe and Twilio keep their own records. [CONFIRM: the final closure process and timing; depends on launch plan 06]
[CONFIRM: which legal rights to list, for which US states and countries, including any CCPA or GDPR language]
Children
[CONFIRM: what to say about children. Loom has no age check, and a parent or studio could book for a minor]
Changes to this policy
When this policy changes, the version date at the top changes too. [CONFIRM: how people are told about changes]
Contact
Loom Tech LLC, [CONFIRM: business address]. Email: [email protected]. See also our Terms of Service.