Looking for survey results or a CSV? This guide covers an individual personal-data export and erasure test, not aggregated survey reporting. For raw submissions, use the entry status and CSV export checks. For survey analysis, start with survey field and results mapping. Keep whole-form exports separate from individual privacy requests.
Gravity Forms 2.10.5 fixes personal data export and erasure on sites with more than 60 forms. Large form estates also include spam entries, partial entries, uploaded files, add-on tables, custom entry meta, logs, backups, and external systems that core export completion may not cover.
Use this for universities, agencies, franchises, healthcare-adjacent sites, membership networks, multisite installations, and any business with more than 60 active or archived Gravity Forms.
Quick answer
Build a synthetic subject whose email appears in forms before, around, and after the 60-form boundary. Run export and erasure on 2.10.5, record every exporter and eraser page, then reconcile entries, files, custom meta, add-ons, notifications, logs, offload storage, CRM, and backups. Keep the test data synthetic and preserve an audit record without retaining the exported personal data longer than needed.
What to check first
- Inventory active, inactive, trashed, duplicated, imported, and multisite forms with form IDs on both sides of the 60-form boundary.
- Seed one synthetic subject into standard entries, spam, partial entries, save-and-continue data, file uploads, payment add-ons, surveys, signatures, custom meta, and CRM records.
- Capture WordPress request ID, exporter page number, form IDs scanned, items exported, eraser result, retry count, PHP duration, memory peak, and any scheduled background work.
- Compare the export archive against the fixture manifest and verify erasure rules for fields configured to retain, erase, anonymize, or exclude data.
- Check local files, private downloads, object storage, CDN, email notifications, logs, backups, analytics, and connected services with their own retention schedules.
Diagnostic table
Use this table to keep the work practical. It connects the symptom to evidence and a verification step.
| Action | Evidence to collect | How to verify |
| Build the form and data inventory | Inventory active, inactive, trashed, duplicated, imported, and multisite forms with form IDs on both sides of the 60-form boundary. | Fixture records before, at, and after form 60 appear in the export. |
| Seed a boundary-spanning synthetic fixture | Seed one synthetic subject into standard entries, spam, partial entries, save-and-continue data, file uploads, payment add-ons, surveys, signatures, custom meta, and CRM records. | Erasure changes exactly the fields and files defined by policy. |
| Run export and erasure on 2.10.5 | Capture WordPress request ID, exporter page number, form IDs scanned, items exported, eraser result, retry count, PHP duration, memory peak, and any scheduled background work. | Retries and pagination do not duplicate or omit exporter groups. |
| Reconcile every storage layer | Compare the export archive against the fixture manifest and verify erasure rules for fields configured to retain, erase, anonymize, or exclude data. | Temporary archives, debug logs, screenshots, and test accounts are removed on schedule. |
Why this usually happens
- Pagination boundaries can stop discovery before all forms are scanned.
- Add-ons register separate exporters and erasers.
- Files and logs can outlive the entry row.
- A request can time out after producing an incomplete archive that still downloads.
Useful command or data shape
Adapt paths, IDs, and privacy handling to the site before running commands or storing data on production.
fixture_subject: privacy-test@example.invalid
forms_total: 84
fixture_forms: [2, 59, 60, 61, 84]
export_forms_found: 5/5
erasure_pages: 3
files_reconciled: true
external_copies_owned: true
result: pass
Safe fix order
Do the work in a sequence that makes each result easy to prove. Stop if a step produces new evidence that changes the incident scope.
- Build the form and data inventory
- Seed a boundary-spanning synthetic fixture
- Run export and erasure on 2.10.5
- Reconcile every storage layer
- Document retention exceptions and owners
Decision rule
Pass when all expected forms and data stores are covered, excluded data follows written policy, every external copy has an owner and expiry, and the process creates no new personal-data leak.
What to tell the client or owner
Give the owner the affected versions, exact workflow, observed result, business impact, evidence location, temporary control, named owner, and next review time. Remove credentials and personal data from shared screenshots and logs.
Production verification checklist
- Fixture records before, at, and after form 60 appear in the export.
- Erasure changes exactly the fields and files defined by policy.
- Retries and pagination do not duplicate or omit exporter groups.
- Temporary archives, debug logs, screenshots, and test accounts are removed on schedule.
Mistakes to avoid
- Do not change several plugins, cache rules, or infrastructure settings before preserving a baseline.
- Do not treat one successful test as proof for retries, alternate clients, background work, or mixed-version fleets.
- Do not paste secrets, personal data, complete production payloads, or customer files into tickets or screenshots.
- Do not close the test until the final user-visible state and the server-side evidence agree.
Questions teams ask during testing
Does Gravity Forms erase backups and CRM records?
Not automatically in every system. Map each connected store and its retention or deletion process separately.
Should production customer data be used for the test?
No. Use a synthetic subject that exercises the same fields and integrations without exposing a real person's information.
When HandL WP should help
Bring in HandL WP when a production checkout, form, editor, security gate, media pipeline, or paid lead workflow is at risk. We can preserve evidence, isolate the failing layer, make the smallest corrective change, and verify the result across WordPress, connected services, logs, and the user journey.
If this is active on a production site, audit Gravity Forms personal data workflows.
Related HandL WP guides
Use these related guides when the same issue touches tracking, security, checkout, or crawler visibility.
Map survey entries before analysis
For survey-specific reporting, follow the Gravity Forms survey results export mapping check to distinguish aggregate reports from entry exports and reconcile field IDs, choices, scores, filters, dates, and CSV encoding.
Control scheduled survey export copies
For recurring delivery, follow the Gravity Forms scheduled survey export retention and access test for time boundaries, retries, hashes, private storage, expiry, and deletion.
Prepare the Gravity Forms 3.0.3 major-version gate
Before changing the forms that produce personal-data exports, use the Gravity Forms 3.0.3 staging regression checklist. It covers entry creation, notifications, payments, add-ons, custom code, accessibility, downstream records, and rollback with repeatable fixtures.
Related fixes to check next
Gravity Forms Export Missing Entries? Check the Status Filter: A CSV with fewer rows may reflect the selected entry status rather than data loss. Compare IDs and filters before restoring or deleting anything.
Helpful references