How to Display Gravity Forms Entries as a Table in WordPress
Gravity Forms is excellent at collecting data. What it doesn't do out of the box is display that data back to your users in a clean, searchable, sortable table on the frontend. This guide walks you through the exact steps to turn any Gravity Forms form's entries into a live frontend table — using the free TableCrafter plugin.
Why Gravity Forms Doesn't Show a Table by Default
Gravity Forms stores every submission as an "entry" in the WordPress database. You can browse those entries in Forms → Entries inside wp-admin — but that admin view is for site owners only. There's no built-in shortcode or block that renders those entries as a table on a page your visitors can see.
The common workaround is to export to CSV and paste data into a static HTML table. That breaks the moment a new submission comes in. What you actually want is a live table that reflects the current entries automatically, with search and column sort baked in. That's exactly what TableCrafter provides.
Scope note: TableCrafter works with Gravity Forms entries only. If you need to display data from a CSV file, Google Sheets, or a custom database table, this is not the right tool for that use case.
Step 1 — Install TableCrafter
TableCrafter is a free plugin hosted on WordPress.org. To install it:
- In your WordPress admin, go to Plugins → Add New Plugin.
- Search for gravity-tables or TableCrafter.
- Click Install Now, then Activate.
Alternatively, download the zip from WordPress.org and upload it via Plugins → Add New Plugin → Upload Plugin.
Once activated, you'll see a new TableCrafter menu item in your WordPress admin sidebar.
Requirements: WordPress 6.0 or higher, Gravity Forms 2.5 or higher, PHP 7.4 or higher. Both plugins must be active at the same time — TableCrafter reads directly from Gravity Forms' entry database tables.
Step 2 — Create a New Table Configuration
After activating TableCrafter, navigate to TableCrafter → Tables → Add New. This opens the drag-and-drop table builder.
Choose your Gravity Forms form
The first setting you'll see is a Form dropdown. Select the Gravity Forms form whose entries you want to display. TableCrafter immediately loads the available fields from that form so you can pick which ones become columns.
Add and configure columns
In the Columns tab, click Add Column and select a field from your form. Common choices include:
- Name, email, phone number (contact/directory tables)
- Date submitted, status, job number (order or project tracker tables)
- Driver name, load weight, origin, destination (load tracker tables)
You can drag columns to reorder them, give each column a custom display label, and choose whether the column is sortable. Repeat this for every field you want to expose on the frontend.
Configure basic settings
Under the Settings tab, you can set:
- Entries per page — controls pagination (default is 25)
- Default sort column — which column the table sorts by on first load
- Who can view this table — all visitors, logged-in users only, or specific user roles
- Entry filters — restrict which entries appear (e.g., only entries with a specific field value, or only entries submitted by the currently logged-in user)
When you're done, click Save Table. TableCrafter assigns this configuration a numeric ID — you'll use that ID in your shortcode.
Step 3 — Embed the Table with a Shortcode
After saving, TableCrafter shows you the shortcode for your table. It looks like this:
[tablecrafter id="1"]
The id value corresponds to the table configuration you just created. If you create a second table for a different form, it gets id="2", and so on.
Paste this shortcode into any WordPress page, post, or widget area that supports shortcodes. In the block editor, use a Shortcode block. In Elementor or other page builders, use their dedicated shortcode element.
Publish or update the page and visit it on the frontend. You'll see a live table populated with your Gravity Forms entries.
The id in the shortcode is the table configuration ID, not the Gravity Forms form ID. You can create multiple different table configurations from the same form — for example, a public-facing summary table and a private detailed table — each with its own shortcode.
Step 4 — Search, Sort, Filter, and Export
Out of the box, every table rendered by TableCrafter includes a set of interactive features at no cost:
Global Search Free
A search input above the table filters rows across all visible columns in real time as the user types.
Column Sorting Free
Click any sortable column header to sort ascending or descending. Useful for date-ordered or alphabetical views.
Column Filters Free
Per-column dropdowns or text inputs let users narrow down rows by a specific field value.
Pagination Free
Automatically splits large entry sets into pages. Configurable entries-per-page in the admin builder.
CSV Export Free
An export button lets authorized users download the current filtered view as a CSV file.
Column Picker Free
Users can show or hide individual columns from the table without leaving the page.
Auto-Refresh Free
Tables can poll for new entries at a configurable interval, keeping live dashboards current without a page reload.
Status Badges Free
Field values can render as color-coded status badges instead of plain text — handy for order status or approval columns.
Real-World Use Cases
Knowing the mechanics is one thing. Here's what this actually looks like in practice:
Load tracker for a trucking company
A dispatcher builds a Gravity Forms form where drivers submit their daily loads: driver name, origin, destination, weight, date. TableCrafter turns those entries into a frontend table visible only to logged-in drivers. Each driver sees only their own entries (using the "current user" entry filter). The dispatcher's view shows all drivers, sortable by date or driver name.
Employee or vendor directory
HR runs a Gravity Forms form to collect employee profile data. TableCrafter displays it as a searchable company directory on an internal WordPress page — staff can look up a colleague's extension or department without needing admin access to Gravity Forms.
Order or project status tracker
A service business uses Gravity Forms for project intake. As project statuses are updated (via Gravity Forms' entry editing or via inline edit in Pro), clients can check a TableCrafter table on a protected page to see where their project stands — without needing to log a support ticket.
Event registrations or RSVPs
An event organizer embeds a TableCrafter table on a public page showing confirmed attendees, filterable by session or ticket type. New registrations submitted through Gravity Forms appear in the table automatically.
Free vs. Pro: What's the Difference?
The free plugin covers the core use case — live, searchable, sortable tables from Gravity Forms — with no restrictions on number of tables or rows. The Pro license adds functionality for teams who need to work with table data, not just read it:
- Inline Editing Pro — Click any cell to edit the underlying Gravity Forms entry directly from the table. No need to open the Gravity Forms admin.
- Bulk Fill Pro — Select multiple rows and update a shared field value across all of them in one action. Useful for batch status changes.
- Entry Duplicate Pro — Clone an existing entry as the starting point for a new one.
- Column Role Visibility Pro — Show specific columns only to certain WordPress user roles. Admins see cost columns; customers don't.
- Email Alerts Pro — Trigger email notifications when entries are edited inline.
- Data Bars Pro — Numeric columns can render a visual bar behind the value to show proportion at a glance.
If your team only needs to view Gravity Forms entries in a table, the free version covers everything. Upgrade to Pro when you need to edit entries from the table, or when you need role-based column control.
Troubleshooting: Table Is Empty or Entries Are Missing
If your table renders but shows no rows, work through these checks in order:
Confirm the correct form is selected
In TableCrafter → Tables, open your table configuration and verify the Form dropdown matches the form you expect. It's easy to accidentally select a draft or test form that has zero entries.
Check your entry filter settings
If you set an entry filter — for example, "only show entries where field 3 equals Approved" — and no entries match that condition, the table will appear empty. Temporarily remove filters to confirm entries exist.
Check user visibility settings
If you configured the table to be visible only to logged-in users or specific roles, preview the page while logged out or with a different user role to confirm access control is behaving as expected.
Verify Gravity Forms entries exist
Go to Forms → [Your Form] → Entries in wp-admin and confirm there are published entries. Gravity Forms marks spam or trash entries differently — those are excluded from TableCrafter by default.
Caching plugins (WP Rocket, NitroPack, W3 Total Cache) can serve a cached page with a stale table. If you've just added entries and they're not showing up, try a hard refresh or temporarily bypass cache for your page.
Next Steps After Your First Table
Once your first table is live, a few things are worth exploring:
- Multiple tables from one form — Create a second table configuration for the same form with different columns or entry filters. Each gets its own shortcode. Use this to show a public summary alongside a private admin-level detail view.
- Restricting by current user — In the entry filter settings, you can filter by the entry creator. This means each logged-in user sees only their own submissions — the right pattern for customer portals and driver tracking tools.
- Combining with Gravity Forms conditional notifications — TableCrafter handles the display layer. Gravity Forms still handles form submission, notifications, and confirmations. You don't need to change your existing form setup at all.
Try TableCrafter Free
Install from WordPress.org in under two minutes. No account required, no entry limits, no trial period — just live Gravity Forms tables on your frontend.