Legal Center
Privacy Policy
DRAFT — this document has not been reviewed by a lawyer. It describes what the Kaptly codebase actually does as of the date above (see docs/LEGAL-BETA-INVENTORY.md for sourcing); it does not describe infrastructure-level facts that require separate confirmation.
Who this applies to
This policy covers two kinds of people: Kaptly account holders (people who sign up to build forms) and form respondents (people who fill out a form someone built with Kaptly). Where their data handling differs, it's called out below.
Data we collect from account holders
When you create a Kaptly account, we store:
Before a password account is created, Kaptly keeps your submitted signup details and hashed password in a pending record for up to 24 hours while you verify the email address. The verification proof is stored as a hash. The raw link remains only in the queued email while delivery can be retried, and is erased after delivery, terminal failure, completion, replacement by a completed signup, or expiry.
For new accounts, Kaptly also asks one optional question about how you found us. You may answer or skip it, and either choice permanently dismisses the question. We use the answer only for first-party product and acquisition decisions; it is not a condition of signup, sent to another service, or used for automated decisions.
For workspace collaboration, Kaptly stores the workspace name and owner, current memberships, invitation email/status/expiry data, and an activity feed. The form owner chooses which forms a collaborator may view or edit. Viewers can view the assigned forms; editors can edit their drafts. Only the owner can access responses, exports and respondent files, publish changes, and configure delivery integrations. Access is checked on each request, but revocation cannot erase copies already downloaded or delivered elsewhere.
- Name
- Email address
- Password (stored as a salted hash, never in plain text)
- If you sign in with Google: Google's account identifier for you, and the name, email address and profile picture it returns. Kaptly never receives your Google password, and requests no access to your mail, files or contacts.
- Avatar image, if you upload one
- Account plan / role
- Account creation date and changelog-seen state
- App appearance preference: System, Light, or Dark. System is the default and follows your device theme.
- For each allowlisted AI feature: the number of generation attempts used and the last-updated time. These counters contain no uploaded document, extracted text, prompt, or model output, and are used to enforce and display the account's allowance.
- For accounts created after the optional first-dashboard question launched: whether it is pending, answered, or skipped; if answered, the selected acquisition source and optional Other detail
- For workspace collaboration: workspace and membership identifiers, owner/inviter identity, invitee email, invitation status and expiry, and activity events containing the actor, action, affected object identifier, time, and a small allowlisted set of change descriptors
Marketing emails (optional)
During signup, and later from Settings → Email preferences, you can opt in to occasional Kaptly product updates and lead-capture tips. This is separate from, and never required for, the account and security emails needed to operate your account (password resets, deletion confirmations, and similar).
Opting in uses double opt-in: checking the box sends a confirmation link to your email, and nothing further is sent until you click it. Every unsubscribe link, and the settings-page toggle, takes effect immediately. Kaptly keeps a record of when and how consent was given or withdrawn (the exact checkbox text and timestamp) to demonstrate compliance if ever asked, and keeps a suppression list so an address that unsubscribes, bounces, or complains isn't emailed again.
Data we collect from form respondents
When someone submits a published form, Kaptly stores their validated answers in the database, together with any hidden/UTM parameters passed to the form, an anonymous visitor identifier, and submission timestamps. Most answer values are stored as entered; Name answers have surrounding whitespace removed (a split Name is stored as separate first and last parts), and URL answers are normalized to HTTP(S), adding HTTPS when the scheme is omitted. For forms with a payment field, Kaptly stores the payment link the respondent was shown, but does not receive or store anything about whether the payment was actually completed — see the Payment Feature Notice.
Kaptly does not restrict what a form owner can ask for. A form can be configured to request highly sensitive information — see the Publish Data Warning shown to form owners, and the Acceptable Use Policy, which prohibits collecting certain categories of sensitive data without adequate safeguards.
Cookies and local storage
See the Cookie Policy for the full list. In short: first-party cookies keep you signed in, complete secure sign-in flows, and remember product preferences such as language, cookie choice, and whether the one-time mobile-builder reminder has been shown. A few local-storage entries keep other UI state, an anonymous device fallback for the System/Light/Dark app appearance choice, and anonymous form-visitor identification. While signed in, the account's stored appearance choice is authoritative and is not copied between accounts.
Google Analytics is the only browser storage used for measurement, and it is opt-in: its script isn't loaded and no analytics cookie exists unless you accept the cookie banner. It never runs on public or embedded form pages.
Third parties (subprocessors)
Kaptly uses a small number of third-party services to operate — for example an AI provider for document import, an email-delivery service, and an error-monitoring service that receives technical fault reports with form answers, addresses and IP addresses stripped out. Form payment links point to a payment provider the form owner chooses, but Kaptly does not integrate with or send data to that provider directly — see the Subprocessors page for the current list of services Kaptly itself calls out to.
A form owner can separately configure an incoming-webhook URL for one Slack destination. When a matching automation runs, Kaptly sends Slack only the plain-text message the owner wrote after resolving the references the owner deliberately included. Those references can contain respondent answers, scores, prices, or hidden URL values. Kaptly does not connect to the workspace, browse channels, or send a full response by default; access to and retention of the delivered message are controlled by the owner's Slack workspace.
Data retention and deletion
Deleted forms and brands go to Trash and become eligible for permanent deletion after 30 days; permanent deletion currently runs when the account holder opens the Trash view, not on a fixed background schedule. An owner can immediately delete an individual response from the active application, with no trash/undo step. Related respondent files are queued for cleanup when no surviving response references them; cleanup can require retries.
A Slack incoming-webhook URL is a credential stored in plain text with the form and in the form's existing version snapshots (up to 50), and it may also exist in database backups. Removing the automation stops future sends from the active form but does not revoke the URL in Slack or erase older snapshot or backup copies. Revoke an exposed or retired URL in Slack. Messages already delivered follow the Slack workspace's retention rules and cannot be recalled by Kaptly.
You can delete your account from Settings → Danger zone at any time (password re-entry required, or typing your account email if you sign in only with Google). This removes your account, optional signup-survey state and answer, per-feature AI usage counters, owned forms, responses and brands from the active database without a grace period or self-service undo when deletion succeeds. Uploaded files are queued for removal, which may require retries. An active preservation hold can pause deletion; contact support if this happens. A confirmation email is queued when deletion completes. This action does not erase previously created recovery copies or every separate email record.
When your owned workspace has teammates, the same strong confirmation explicitly warns that deletion also removes their access and deletes every resource and file in that workspace from the active application. Workspaces owned by other people are not deleted; your memberships in them are removed. Their activity feed keeps only a generic deleted-account departure event. Activity events otherwise remain for the workspace lifetime and deliberately exclude response answers, invitation tokens, webhook URLs, and user-authored names.
Separate email records can remain after account deletion. These include the email contact address, consent and subscription history, records used to prevent unwanted sending, and recipient/message content in the transactional email queue. Account deletion marks pending or confirmed marketing subscriptions as unsubscribed; it does not erase all of these records. Providers also maintain their own processing records. Contact privacy@getkaptly.com to request review of retained personal data. [CONFIRM: category-specific retention periods, legal grounds and the process for erasing or restricting retained records.]
Previously created database and file backups are separate from the active application. Deleting active records does not remove those older copies. [CONFIRM: enforced backup expiry, access restrictions and a recovery procedure that preserves completed deletions before service resumes.] We cannot yet state a verified maximum time for erasure from all recovery copies. Privacy requests can be sent to privacy@getkaptly.com.
Your rights
Depending on applicable law, you may have rights to access, correct, export or delete personal data, restrict or object to processing, withdraw consent and complain to a supervisory authority. Contact privacy@getkaptly.com. Self-service account deletion removes active account data as described above; requests concerning retained records need separate handling. [CONFIRM: applicable regional rights and the documented request and identity-verification process.]
For answers submitted to a form, the form owner normally decides why and how the data is used. Contact that owner to exercise your rights, or contact privacy@getkaptly.com for help routing your request. You do not need a Kaptly account to contact us.
Security
Passwords are hashed (scrypt), never stored in plain text. Session authentication uses an httpOnly, sameSite cookie. Beyond that, Kaptly has not completed an independent security review — see the Security and Responsible Disclosure page for the current, honest state of things, including what is not yet verified (for example, encryption at rest for the database and uploaded files).
International data transfers
[CONFIRM: hosting region(s) and any cross-border transfer mechanism required for your users' jurisdictions.]
Children's privacy
Kaptly is not directed at children. Creating a Kaptly account requires you to be at least 18 years old. Form respondents don't need an account, so a form owner may still direct a form at minors — if you do, complying with children's-privacy law for what you collect (e.g. COPPA, GDPR-K) is your responsibility as the form owner under the Acceptable Use Policy. [CONFIRM: jurisdiction-specific children's-privacy obligations beyond the account-holder age minimum, if Kaptly forms are expected to reach minors.]
Changes to this policy
We'll update the "Last updated" date and version identifier above when this policy changes materially.
Contact
Questions or requests about your personal data: privacy@getkaptly.com. Kaptly’s operator is Aleksandar Šterijev, an individual. Contact address: Višnjička 61D, Karaburma, 11000 Belgrade, Serbia.