Privacy Policy
Privacy at a Glance
A plain-language summary of what data we collect, why, and where it goes.
1. Who We Are
Complete OS LLC (“we,” “us,” “our”) operates CompleteLine, an AI-powered SMS and voice communications platform for local businesses. Our service is available at completeline.app.
Data controller: Complete OS LLC, Colorado Springs, CO
Contact: hello@completeos.app
2. Data We Collect
2a. Data you provide directly (agency / business owners)
- Email address — used for authentication via Supabase Auth. Never sold.
- Business name and configuration — your agency name, client business names, services, pricing, booking links, hours, service area, notes for the AI, and the business phone number you forward from. Used to personalize AI responses sent on your behalf.
- Payout details (deposits and text-to-pay) — if you enable deposits or payment links, you connect a Stripe account. Bank and identity details go directly to Stripe; we store only your Stripe account ID and whether it can accept payments.
- Payment information — entered directly into Stripe's hosted form. We never receive or store raw card numbers. We receive a Stripe Customer ID and subscription status only.
- Google OAuth tokens — if you connect Google for review monitoring or calendar access, we store a refresh token (encrypted) scoped only to the permissions you grant. You can revoke at any time from your Google Account settings.
2b. Data from your customers’ interactions (collected on your behalf)
You are the data controller for your customers. We process the following as your data processor:
- Phone number — when a customer calls or texts your business number, their phone number is received by Twilio. We store it two ways: (1) as a one-way SHA-256 hash for lookup, and (2) as an AES-256-GCM encrypted value in a separate restricted-access table. The two representations are kept in separate tables to prevent simple re-linkage.
- First name — as provided voluntarily by the customer in conversation. Stored in plaintext in the contacts table.
- SMS message content — inbound and outbound messages stored encrypted at rest (AES-256-GCM). A rolling 10-message window is sent to Anthropic’s API as context for AI reply generation. No full phone number is included in the API call. Messages are deleted after 90 days.
- Appointment data — booking time, service type, and status, received via Calendly or Acuity webhooks.
- Opt-in / opt-out records — STOP/UNSTOP/HELP keyword responses are recorded with timestamps for TCPA compliance. These are never shared.
2c. Data collected automatically
- Usage events — feature interactions (page views, button clicks, feature usage) tracked via PostHog. No message content is included. Events are pseudonymous (user ID, not email).
- Error events — crash reports and exceptions sent to Sentry, including stack traces and anonymized request context. Message content is not included in error reports.
- Server request logs — IP address, request path, HTTP status code, timestamp. Retained 30 days. Used for security monitoring and debugging only.
- Auth session cookies — a session cookie set by Supabase Auth is stored in your browser for authentication state. No advertising or behavioral tracking cookies are set.
3. How Your Data Flows
Here is the step-by-step data path for the core features:
Missed-call text-back
- You forward your business line to your CompleteLine number, so every call to it reaches Twilio. Your own phone does not ring while forwarding is on. On plans without the AI receptionist, every caller gets this text-back.
- Twilio posts a webhook to CompleteLine (our Vercel server, US East) with the caller’s phone number and your Twilio account SID.
- We verify Twilio’s HMAC-SHA1 signature to confirm the request is authentic.
- The caller’s phone number is hashed (SHA-256) and an encrypted copy is stored in Supabase (AWS us-east-1).
- A prompt including your business name, services, and the last 10 messages (if any) is sent to Anthropic’s API (US servers). No full phone number is sent.
- The AI response is sent back through Twilio to the customer’s phone as an SMS.
- The outbound message is stored encrypted in Supabase. The AI action is logged in the audit table (no message content in the log).
2-way SMS inbox
- Customer replies → Twilio posts webhook to CompleteLine.
- Message content is encrypted and stored in Supabase.
- If AI is active for that contact, the same Anthropic flow as above occurs.
- If you (the operator) reply manually via the inbox, your message goes from our server → Twilio → customer. It is stored encrypted in Supabase.
Browser softphone (Voice)
- When you open the Phone dashboard, a short-lived Twilio Access Token (JWT, 1-hour TTL) is issued by our server and delivered to your browser.
- Your browser establishes a WebRTC connection via Twilio’s Voice SDK. Audio travels peer-to-peer over Twilio’s infrastructure.
- We do not record, store, or analyze softphone call audio.
AI receptionist (Pro plans)
- On Pro plans, every forwarded call is connected to our receptionist service (hosted on Fly.io). The caller is told at the start that they are speaking with an AI and that the call is transcribed.
- Twilio converts the caller’s speech to text in real time. Each turn of the conversation is sent to Anthropic’s API, with your business context, to generate the spoken reply. Call audio is not recorded by us.
- If the caller books, the appointment is written to your calendar. After the call we store the caller’s number, the duration, and a short summary (name, what they needed, any booking), and text that summary to you.
Voicemail
- When the receptionist is off or unavailable, the caller can leave a message after a notice that it is recorded and transcribed. Twilio records it.
- The recording is transcribed (Groq speech-to-text) and the transcript is stored as an encrypted message in your inbox, on the same 90-day schedule as other messages. The audio stays with Twilio and is not copied to our database.
Calls with a CompleteLine sales representative
- If you speak with one of our sales representatives, the call may be recorded and transcribed for training and quality. You are told at the start of the call and can decline; a declined call is not transcribed.
- Recordings are held by Twilio; transcripts and a short AI-generated summary are stored in our sales records for the life of the relationship. They are never shared outside Complete OS LLC.
Billing
- When you subscribe, you are redirected to a Stripe-hosted checkout page. Your card details go directly to Stripe — never to our servers.
- Stripe sends us a webhook confirming payment. We store your Stripe Customer ID and subscription status in Supabase.
4. Third-Party Services
We use the following services to operate CompleteLine. Each receives only the data necessary for its function.
We do not sell your data or your customers’ data to any third party for advertising or marketing purposes.
SMS opt-in data: We do not sell or share your SMS opt-in data or personal information with third parties for marketing purposes. No mobile opt-in information or consent records are shared with any third party under any circumstances, including affiliates. This applies to every CompleteLine messaging program, including the CompleteLine sales representative lines described in Section 7.
5. Data Security
- Encryption at rest: SMS message content encrypted with AES-256-GCM. Phone numbers stored as a SHA-256 hash (irreversible) and separately as an AES-256-GCM ciphertext in a restricted-access table.
- Encryption in transit: All data transmitted over TLS 1.2+ (HTTPS). WebRTC voice traffic encrypted by Twilio.
- Database isolation: Row-level security (RLS) enforced at the Supabase layer — each agency can only query its own data, enforced by policy, not application code.
- Webhook verification: Every Twilio inbound request is verified using Twilio’s HMAC-SHA1 signature before processing.
- Secret management: All API keys and secrets stored in Doppler (not in source code or environment files). Rotated on suspected exposure.
- Access tokens: Twilio Voice Access Tokens have a 1-hour TTL and are issued only to authenticated users.
- Audit log: AI actions (message sent, escalation triggered) are logged without storing message content, for compliance review.
No security system is perfect. In the event of a breach affecting personal data, we will notify affected users within 72 hours of discovery, as required by applicable law.
6. Data Retention
7. SMS Messaging Program
CompleteLine sends automated SMS messages on behalf of businesses in direct response to inbound calls that went unanswered. The recipient’s phone number is obtained from the inbound call via caller ID — messages are sent only to individuals who have called the business first. No third-party lists or marketing databases are used.
CompleteLine sales representative lines. CompleteLine’s own sales representatives use CompleteLine phone numbers to text business owners who first called or texted that representative’s number, or who agreed on a phone call to receive a follow-up text. These messages are one-to-one and conversational: a reply when a call is missed, a link to sign up for the plan the owner agreed to on the call, and answers to the owner’s questions. An AI assistant may reply when the representative is unavailable and always identifies itself as an AI. There is no cold outreach and no bulk messaging.
Carrier-required disclosures:
- Who receives messages: Individuals who placed an inbound call or sent a text to a CompleteLine-enabled phone number, or who gave verbal consent on a call with a CompleteLine sales representative.
- Basis for sending: Caller ID or inbound text — the recipient initiated contact; the SMS is a direct reply. For representative lines, verbal consent given on the call is recorded.
- Message types: Missed-call acknowledgment, scheduling assistance, appointment confirmations, and, on representative lines only, a signup link the recipient asked for and answers to their questions.
- Frequency: 1 message per missed call. Additional messages sent only if the recipient replies or asked for them. Message and data rates may apply.
- Opt-out: Reply STOP to stop all messages. Reply START or UNSTOP to re-subscribe. Reply HELP for assistance.
- Data sharing: SMS opt-in data is never shared with third parties, affiliates, or data brokers under any circumstances.
- 10DLC registration: Each business's messaging is registered under its own 10-digit long code (10DLC) A2P brand and campaign with The Campaign Registry (TCR), filed by CompleteLine for that business.
- Business registration details: To register a business's texting with the phone carriers, we collect its legal name, EIN, address and a contact person. We store the EIN encrypted and use these details only for the carrier registration, sharing them only with our messaging provider (Twilio) and The Campaign Registry for that purpose.
For full details, see our SMS Terms & Messaging Disclosures.
8. No Protected Health Information
CompleteLine is designed for home-service trades and other local service businesses (plumbers, roofers, HVAC, auto repair, salons and spas, and similar). It is not designed to transmit, collect, or store Protected Health Information (PHI) as defined by HIPAA. Using CompleteLine in a healthcare context where PHI is involved is prohibited absent a signed Business Associate Agreement, which we do not currently offer.
9. Your Rights (Agency / Business Owners)
You have the following rights regarding the data we hold about you:
- Access: Request a copy of the data we hold about your account.
- Correction: Request correction of inaccurate account data.
- Deletion: Request deletion of your account and all associated data.
- Portability: Request an export of your data in JSON format.
- Opt-out of analytics: Request removal from PostHog tracking.
- Restrict processing: Request that we limit processing of your data in certain circumstances.
To exercise any right, email hello@completeos.app. We respond within 30 days. Identity verification may be required.
10. Your Customers’ Rights
You (the agency or business owner) are the data controller for your customers’ data. When customers ask about their data, you are the responsible party. We will assist you in fulfilling access or deletion requests from your customers upon written request.
All customers can opt out of SMS messages at any time by replying STOP. The Service processes STOP automatically, records the opt-out, and will not send further messages to that number on your behalf. To resubscribe, the customer texts START.
11. Children’s Privacy
The Service is not directed to individuals under 18. We do not knowingly collect personal information from children under 13. If you believe we have collected such information, contact us at hello@completeos.app and we will delete it promptly.
12. Cookies
We set one first-party session cookie required for authentication (a Supabase Auth session token). We do not set advertising cookies, cross-site tracking cookies, or fingerprinting identifiers. PostHog may set a persistent pseudonymous ID cookie to count unique sessions; this contains no personally identifiable information.
13. Changes to This Policy
We will notify you by email at least 14 days before any material change takes effect. The effective date at the top of this page will be updated on every change. Continued use of the Service after a change takes effect constitutes acceptance.
14. Governing Law
This Privacy Policy is governed by the laws of the State of Colorado. Disputes will be resolved in El Paso County, Colorado courts.
15. Contact
Complete OS LLC
Colorado Springs, Colorado
Email: hello@completeos.app