Frametry uses a small set of subprocessors to run the product. Required integrations are part of the core Service and cannot be disabled. Optional integrations are off by default and require your explicit opt-in (typically by visiting Settings → Integrations and connecting). You can revoke any optional integration at any time.

Platform

Supabase

Required
Purpose
Primary database, authentication, file storage, edge function runtime.
Data out
All Customer Data — projects, contacts, photos, messages, financials.
Data in
None (Supabase is the system of record).
Disconnect
Cannot be disconnected. To remove all data, delete your account from Settings → Danger zone.
Privacy policy
supabase.com/privacy ↗

Payments

Stripe (Billing)

Required
Purpose
Frametry subscription billing — card on file, invoices, plan changes.
Data out
Org owner email + name, billing address, card payment method, subscription state.
Data in
Invoice history, payment receipts, card brand/last4.
Disconnect
Auto-revoked when you cancel your subscription. Cards detach immediately on account deletion.
Privacy policy
stripe.com/privacy ↗

Payments (optional)

Stripe Connect

Optional
Purpose
Accept online payments from your clients on pay applications and customer invoices.
Data out
Business name, EIN, address, beneficial owner, bank account — submitted to Stripe via their hosted onboarding (Frametry never sees these directly).
Data in
Express account ID, charges/payouts enabled flags, requirements_due list, payment intent + checkout session IDs, payment status updates.
Disconnect
Settings → Integrations → Online payments → Disconnect. Disabling stops new payment intents; pending settlements continue at Stripe.
Privacy policy
stripe.com/privacy ↗

Accounting (optional)

QuickBooks Online (Intuit)

Optional
Purpose
Two-way sync of customers, vendors, projects, invoices, bills, payments, POs, change orders, estimates, and approved time entries with your QuickBooks Online company file.
Data out
Customer + vendor names/emails/phones, project names, invoice/bill line items + totals, payment records, approved time entries.
Data in
QuickBooks Online entity IDs (so we can avoid duplicates), sync tokens, error responses from the QuickBooks Online API.
Disconnect
Settings → Integrations → QuickBooks Online → Disconnect. Disconnecting revokes the OAuth grant at Intuit, stops sync, and retains the local QuickBooks Online ID mapping (in case you reconnect to the same realm later).
Privacy policy
www.intuit.com/privacy/ ↗

AI (optional)

OpenAI

Optional
Purpose
AI features — vendor-bill PDF extraction, takeoff quote extraction, sub-verdict scoring, scope summaries.
Data out
Redacted prompts containing the specific document or row being processed (e.g. a vendor bill PDF, a quote PDF, a sub's recent variance + bid history). No org-wide context, no other customers' data.
Data in
Structured extraction or scoring results, written back to your account and discarded server-side after the result is persisted.
Disconnect
Settings → Notifications & AI → AI features. Toggling off stops new prompts. Past results stay on your project.
Privacy policy
openai.com/policies/privacy-policy ↗

Anthropic

Optional
Purpose
Alternative AI provider for selected features when your org's AI model preference is set to Claude.
Data out
Same redacted prompts as the OpenAI flow.
Data in
Same structured results as the OpenAI flow.
Disconnect
Settings → Notifications & AI. Same as OpenAI.
Privacy policy
www.anthropic.com/legal/privacy ↗

Email

Resend

Required
Purpose
Transactional email delivery — estimate sends, invoice notifications, warranty updates, signup verification, password resets.
Data out
Recipient email + name, message subject + body, your org's sender alias.
Data in
Delivery + bounce events (so we can surface 'undelivered' badges on estimates).
Disconnect
Email is a core function and cannot be disabled wholesale. Per-event toggles live at Settings → Notifications.
Privacy policy
resend.com/legal/privacy-policy ↗

Messaging

Twilio

Optional
Purpose
SMS notifications and one-time-passcode (OTP) verification for phone-only portal sign-in (client portal, sub portal, warranty portal).
Data out
Recipient phone number, message body (for SMS), OTP code (for Verify).
Data in
Delivery status, verification result.
Disconnect
SMS is gated per-event in Settings → Notifications. Verify is gated per-portal. Disabling both stops all Twilio traffic.
Privacy policy
www.twilio.com/legal/privacy ↗

Security

Cloudflare Turnstile

Required
Purpose
Bot + abuse mitigation on the signup and login forms. Replaces traditional CAPTCHA.
Data out
An opaque challenge token + the user's IP and basic browser fingerprint (handled by Cloudflare directly; Frametry never sees the raw fingerprint).
Data in
A pass/fail verdict.
Disconnect
Cannot be disabled — it gates account creation.
Privacy policy
www.cloudflare.com/privacypolicy/ ↗

Observability

Sentry

Required
Purpose
Error monitoring across web, iOS, Android, and edge functions.
Data out
Crash stack traces, browser + OS metadata, the user's org ID and user ID (for grouping). Frametry scrubs PII from breadcrumbs before send.
Data in
Issue IDs (used internally for ticket linking).
Disconnect
Cannot be disabled per-account. Aggregated error reports are necessary to operate the Service.
Privacy policy
sentry.io/privacy/ ↗

Hosting

Vercel

Required
Purpose
CDN + edge hosting for the web app (frametry.app) and marketing site (frametry.com).
Data out
HTTP request logs (URL + IP + UA) retained for a short period for abuse mitigation.
Data in
None.
Disconnect
Cannot be disabled — it serves the application.
Privacy policy
vercel.com/legal/privacy-policy ↗
Last updated 2026-05-25. To request a Data Processing Addendum, email [email protected].

Intuit and QuickBooks are registered trademarks of Intuit Inc. Used with permission. Frametry is a Member of the Intuit Developer Program. Other trademarks are the property of their respective owners.