Privacy

Data processing and privacy practices.

FormsFort processes form submissions and account data to deliver notification and integration workflows. This page describes what data is collected, how it is used, and how long it is retained.

Privacy principles

Minimize data collection

FormsFort stores submission metadata (field names, request IDs, statuses) but never stores raw submission bodies. Successful delivery payloads are redacted after delivery.

Encrypt sensitive data

Email retry payloads, webhook target URLs, webhook retry payloads, captcha secrets, OAuth tokens, and integration config are encrypted at rest. Access keys are hashed with a server-side pepper.

Automated retention

Operational metadata is automatically deleted after the configured retention window. Forms can set per-form retention overrides between 1 and 365 days.

Account deletion

Users can request account deletion from the dashboard. Completion anonymizes identity data, removes credentials and sessions, and avoids writing requester PII into the audit log.

Data categories

Category Data collected Purpose
Account data
  • Email address and display name
  • Email verification status
  • OAuth provider account IDs
  • Stripe customer ID (for paid accounts)
  • Session tokens and expiry timestamps
Authentication, billing, and workspace access control.
Form configuration
  • Form name, status, and recipient email
  • Access key hash and prefix (full keys are never stored in plaintext)
  • Email, webhook, and integration delivery settings
  • Captcha provider and encrypted secret keys
  • Domain restrictions and IP safelists
  • File upload settings (MIME types, size limits)
Form submission routing, delivery, and spam prevention.
Submission metadata
  • Request ID and submission status
  • Field names submitted (not field values)
  • Hashed sender IP and hashed user agent
  • Country (derived from IP, not stored as raw IP)
  • Spam score and error class
Diagnostics, abuse detection, and delivery troubleshooting. Raw submission bodies are never stored.
Delivery records
  • Email delivery status, provider message ID, and attempt count
  • Webhook delivery status, response status code, and attempt count
  • Google Sheets delivery status and updated range
  • Unified integration delivery records for Slack, Discord, and Telegram
  • Encrypted retry payloads (redacted after successful delivery)
Delivery confirmation, retry logic, and dead-letter review.
Operational metadata
  • Rate-limit event scope, key, hit count, and window timestamps
  • Upload object status, scan status, MIME type, and expiry
  • Upload failure event error class
  • Usage counters for submission volume tracking
  • Abuse rule type, value, and action
Rate limiting, upload lifecycle management, and abuse prevention.
Audit and compliance data
  • Audit log entries with actor type, action, target type, and target ID
  • Suppression list entries with email and reason
  • Account deletion requests with status and timestamps
Security audit trail and regulatory compliance.

How submissions are processed

1

Submission received

The API validates the access key, applies rate limits, spam scoring, captcha verification, and abuse rules. The sender IP is hashed before any storage.

2

Delivery queued

Accepted submissions create delivery records for email, webhook, Google Sheets, and native integrations (Slack, Discord, Telegram). Retry payloads are encrypted at rest.

3

Delivery completed

After successful delivery, the submission payload is redacted from the delivery record. Only operational metadata (status, provider message ID, attempt count) is retained.

4

Retention cleanup

The retention worker deletes submission events, rate-limit events, delivery records, and upload metadata older than the configured retention window.

Privacy inquiries

For privacy-related requests, data subject access requests, or questions about data processing, contact [email protected].