SleekView for Ninja Forms: submissions as customizable tables
Ninja Forms stores submissions as nf_sub posts with field values in postmeta. SleekView pivots that postmeta into named columns so each submission is one row, filterable across forms with bulk inline edits.
♾️ Lifetime License available
Postmeta is hidden — SleekView makes it readable
Ninja Forms 3.x is unusual among major form plugins: it doesn't use a custom nf_submissions table. Submissions are stored as nf_sub custom posts, with per-field values written to postmeta as _field_<id> rows and the form ID as _form_id. The default admin reads back through Ninja's per-form submission screen, but cross-form lists, bulk inline editing, and field-value filtering all require either custom code or CSV exports.
SleekView reads posts filtered to nf_sub, joins postmeta, and pivots the _field_<id> rows into named columns using the form's field definitions to map IDs to human-readable labels. Each submission becomes one row with the columns you actually want — email, subject, message, source URL, source IP — instead of a key/value dump that needs decoding.
Add-ons that store extra data in postmeta on the same nf_sub post (Stripe, MailChimp, file uploads, conditional logic results) become additional pivotable columns automatically. Filter by _form_id, post_date range, and arbitrary field values together, save it as a named view, and the team has a daily-use workspace. Inline edits write back to postmeta with conflict detection and audit logging.
Workflow
Make _field_ postmeta readable as a table
Read nf_sub posts
posts to post_type = nf_sub and joins postmeta. The _form_id meta becomes a first-class column for cross-form filtering.
Map fields to labels
_field_<id> keys into human-readable column headers — no manual mapping table to maintain.
Pivot at query time
Edit inline, audit changes
postmeta with conflict detection (re-read on save) and an audit-log row per change so admins can trace who edited what and when.
Sample columns
A typical Ninja Forms submissions view
postmeta rows starting with _field_ into named columns based on the form's field definitions.
wp_posts (nf_sub) + wp_postmeta
| Sub # | Form ID | Submitted | Subject | |
|---|---|---|---|---|
| #412 | 3 | Apr 24 | alex@studio.co | Demo request |
| #411 | 3 | Apr 24 | ria@design.io | Pricing question |
| #410 | 5 | Apr 23 | tom@hello.dev | Newsletter |
| #409 | 3 | Apr 23 | mia@brew.coop | Demo request |
Comparison
Default Ninja Forms admin vs SleekView
Default Ninja Forms admin
-
Submissions are
nf_subcustom posts — postmeta values aren't shown by default -
Per-field values stored as
_field_<id>rows are unreadable without code - Cross-form submissions list requires custom code or exporters
- Bulk operations are limited to standard WP-Posts actions
- Filtering by form + date + a specific field value at once isn't built in
SleekView
-
Pivot
_field_*postmeta into named columns -
Cross-form submissions in one view with
_form_idas a column - Inline-edit submission values without dropping into a per-post screen
- Filter by form ID + date + arbitrary field values together
- Save view sets per role (e.g. "Demo requests, last 7 days")
Features
What SleekView gives you for Ninja Forms
Postmeta becomes columns
_field_<id> postmeta rows pivot into named columns at query time. Each form's field labels become the column headers — no manual mapping, no key decoding.
Filters that don't exist by default
Filter by _form_id, post_date range, and pivoted field values. Saved as named views your team reuses — cross-form sales triage, per-form audit, spam-only queue.
Inline edit & delete
Update field values, mark submissions, and delete spam directly from the row. Writes go to postmeta with audit logging; deletes trash the nf_sub post normally.
Audience
Who uses SleekView for Ninja Forms
Sales & support
All form leads in one cross-form table, filtered to last seven days, with email and subject visible. Pivoted message field expands inline so reps don't open a second tab.
Spam moderation
Filter and bulk-delete spam-flagged submissions across forms in one pass. Spot patterns (specific IPs, common message bodies) before they bury legitimate leads.
Form auditors
Submission counts per form and per day — answer "which form is performing" without code. Catches stalled forms (zero entries this week) before clients notice.
The bigger picture
Why postmeta storage needs a real workspace
Storing form submissions as custom posts plus postmeta is a very WordPress-native choice — it inherits revisions, capabilities, taxonomies, and every post-related API for free. It also means every per-field value lives in long-format postmeta with cryptic keys like _field_412, and the default admin only resolves those keys inside the per-submission detail screen. Cross-form lists, filtering by a specific field's value, bulk operations across many submissions — none of those are first-class.
Operations teams routing inbound leads, finance teams reconciling against payment add-ons, and moderation teams cleaning up spam all hit the same wall: the data is there, but the admin doesn't expose it as a table. SleekView's pivot turns the long-format postmeta into a flat readable view, the form-id filter turns the per-form admin into a cross-form one, and inline editing replaces per-post round trips. The submission-as-post model still works underneath; SleekView just gives non-developers the workspace the schema implied but the admin never built.
Questions
Common questions about SleekView for Ninja Forms
No — Ninja Forms 3.x stores submissions as nf_sub custom posts. Per-field values live in postmeta as _field_<id> rows, with the form ID as _form_id. SleekView reads both and pivots them into a tabular view. This post-based design is unusual for a major forms plugin but inherits WordPress capabilities and revisions for free.
Yes — SleekView writes back to postmeta with conflict detection and audit logging. Each change records who made it, when, and the previous value, so admins can trace edits during reviews. Bulk edits run as a transaction and roll back per-row on conflict, leaving the rest of the bulk operation intact.
SleekView reads the form's field definitions (Ninja stores these as posts of their own) to map _field_<id> keys to human-readable labels. The mapping happens automatically — you don't maintain a column-key dictionary by hand. New fields added to a form become available columns the next time the column picker opens.
Yes for any add-on storing extra data on the nf_sub post via postmeta. Stripe, PayPal, MailChimp, file uploads, conditional-logic results — all surface as additional pivotable columns. Add-ons that write to their own custom tables can be exposed via separate SleekView views joinable to the entry by post id.
Ninja Forms exports work as before — SleekView is read/edit only and doesn't touch how Ninja exports CSV or JSON. You can use SleekView to filter to the exact rows you want exported, then run Ninja's standard export on that filtered set, or use SleekView's own CSV/JSON export which respects the column choice in the view.
 
Yes — deleting a submission row in SleekView trashes the nf_sub post (and its postmeta) via the standard WordPress delete pipeline. Same behaviour as the default admin. Restore from trash works the same way too. Bulk deletes iterate per row so any deletion hooks add-ons register run as expected.
SleekView's CSV export gives you the full pivoted submission set in a clean tabular format, which is the right starting point for migration into Gravity, Fluent, or WPForms. SleekView itself isn't a migration tool — there's no automated import to another plugin's schema — but the pivoted export saves the manual work of unwrapping postmeta before you feed it into a target plugin's importer.
 
Filters use indexed columns on posts (post_type, post_date, post_status) and indexed postmeta joins on _form_id. Pagination is keyset by post id where possible. The pivot itself is the heavy part on huge datasets — limit pivoted columns to the ones the view actually shows rather than pulling every _field_*, and scope by date range to keep query plans tight.
Pricing
More than 1000+
happy customers
Explore our flexible licensing options tailored to your needs. Upgrade your license anytime to access more features, or opt for a lifetime license for ongoing value, including lifetime updates and lifetime support. Our hassle-free upgrade process ensures that our platform can grow with you, starting from whichever plan you choose.
Lifetime ♾️
Most popular
EUR
once
- Unlimited websites
- Lifetime updates
- Lifetime support
...or get the Bundle Deal
and save €250 🎁
The Bundle (unlimited sites)
Pay once, own it forever
Elevate your WordPress site with our exclusive plugin bundle that includes all of our premium plugins in one package. Enjoy lifetime updates and lifetime support. Save significantly compared to buying plugins individually.
What’s included
-
SleekAI
-
SleekByte
-
SleekMotion
-
SleekPixel
-
SleekRank
-
SleekView
€749
Continue to checkoutBrowse more
- Woocommerce Recently Viewed
- Woocommerce Zoho Books
- Yith Woocommerce Wishlist
- Woocommerce Tnt Shipping
- Woocommerce Composite Products
- Woocommerce Name Your Deal
- Woocommerce Min Max Quantities
- Woo Direct Checkout
- Stitchlabs Wp
- Aliexpress Dropshipping Woo
- Etsy Shop Importer
- Wpc Product Quantity
- Woocommerce Follow Up Emails
- Woocommerce Quick Order
- Woocommerce Paytm Gateway