How to Connect Gravity Forms to TableCrafter in 5 Minutes

If you have Gravity Forms collecting data and want to display those entries as a clean, searchable frontend table, without touching a line of code, TableCrafter gets you there in under five minutes. This guide walks every step from installation to a live table on your page. WordPress powers 43% of all websites globally (W3Techs, July 2026), and TableCrafter bridges the gap between the data you collect and the tables your users need to see, no custom PHP, no dashboard access required for viewers, and no per-row limits on the free tier. The free version on WordPress.org supports CSV, JSON, Google Sheets, and Excel. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST APIs, inline cell editing, export to CSV/PDF, role-based column visibility, and auto-refresh. Every table embeds on any page with a [tablecrafter] shortcode or the native Gutenberg block. WordPress multisite installations account for approximately 3.4% of all WordPress deployments (WordPress.org, 2025).
What You Need Before You Start?
Before you begin, confirm you have the following in place:
- WordPress 6.0 or later
- Gravity Forms 2.6 or later (any license tier)
- At least one active Gravity Form with submitted entries
- TableCrafter installed and activated
TableCrafter does not require WooCommerce, ACF, or any third-party dependency beyond Gravity Forms for this integration. If Gravity Forms is not yet active when you activate TableCrafter, the plugin will display an admin notice and the Gravity Forms source option will be grayed out in the table builder until the dependency is met.
After completing this step, verify the result by viewing the page as a logged-out visitor in an incognito window. This confirms the table behaves correctly for public visitors rather than reflecting admin-level permissions that may hide configuration issues during initial setup. Check both the rendered output and the browser console for any JavaScript errors.
Step 1: How Do I Install and Activate TableCrafter?
Navigate to Plugins > Add New Plugin in your WordPress admin. Search for "TableCrafter" and click Install Now, then Activate. If you purchased a Pro license, upload the zip file via Plugins > Add New Plugin > Upload Plugin instead.
After activation, a new TableCrafter menu item appears in the left admin sidebar. Click it to open the plugin dashboard. You will see an empty table list and a prominent Create New Table button at the top right.
The column mapping you define here is stored as a JSON configuration in the WordPress database. You can export this configuration using the TableCrafter export tool and import it to another table or another site. This is useful when replicating a table layout across multiple pages or when migrating a table to a staging environment for testing before going live.
Step 2: How Do I Create a New Table Configuration?
Click Create New Table. The table builder opens to a two-panel layout: a settings panel on the left and a live preview panel on the right. The preview starts empty and populates with sample data as you configure each section. You do not need to save and return to a separate page to see how the table will look.
In the Table Name field at the top, enter a descriptive internal label such as "Contact Form Submissions" or "Job Applications Q2 2026". This name appears only in the WordPress admin table list and is never shown on the frontend table or in the shortcode output. Use a name that helps you identify this configuration when you have multiple tables for the same form (for example, "Contact Form: Admin View" and "Contact Form: Customer Portal View").
Under Data Source, select Gravity Forms from the source type dropdown, then choose the specific form from the form selector. The column selector populates immediately with all the fields configured in that Gravity Forms form, including multi-part fields like Name and Address which can be shown as combined or split columns.
Step 3: How Do I Select Gravity Forms as the Data Source?
Scroll to the Data Source section. You will see a row of source icons: Gravity Forms, WooCommerce, REST API, Airtable, Google Sheets, and others. Click the Gravity Forms icon. It highlights with a blue border to confirm your selection.
A dropdown labeled Select Form immediately appears below. This dropdown is populated with every active Gravity Form on your site. Select the form whose entries you want to display. The moment you select a form, the Available Fields panel on the right populates with every field in that form, field label, field type, and field ID are shown side by side.
Step 4: How Do I Drag Columns into the Table?
The Column Builder appears below the form selector. On the left side you see all available fields as draggable cards. On the right side is an empty column zone labeled "Drag fields here to add columns."
Drag the fields you want to display, in the order you want them to appear left to right. A typical starting configuration for a contact form might be:
- Entry ID (auto-included by default as the first column)
- First Name
- Last Name
- Date Submitted
Each column card has three controls once it lands in the column zone: a Label text field (pre-filled from the GF field label, fully editable), a Width field (leave blank for auto), and a Visibility toggle. You can drag columns to reorder them at any time, and drag them back to the left panel to remove them.
The live preview panel on the right updates after each drag. It shows a sample table with placeholder rows so you can confirm the column order and labels look right before saving.
Step 5: How Do I Configure Basic Options?
Scroll to the Table Options section. At minimum, review these four settings:
- Rows per page: Default is 20. Set to 10 for dense data or 50 for admin review tables.
- Search bar: Toggle on if you want a live search field above the table.
- Pagination: On by default. Disable only for tables with fewer than 30 expected entries.
- Sort on columns: Click any column card and enable the "Sortable" checkbox to allow frontend sorting on that column.
Leave Edit Mode and Export off for now, those are separate workflows covered in their own guides. Click Save Table at the top right. The configuration saves and the builder displays a green confirmation banner.
TableCrafter re-fetches this data on each page load by default. If your data source updates infrequently and your site has significant traffic, enable the built-in caching option in the table's Performance tab. This stores the fetched data for a configurable number of minutes and serves it from WordPress transients, reducing API calls to the source and improving page load time for visitors.
Step 6: How Do I Copy the Shortcode?
After saving, the builder displays the shortcode for this table directly below the table name. Copy the shortcode and paste it into any WordPress page, post, or sidebar widget using a Shortcode block or Custom HTML block:
[tablecrafter id="1"]
The id value is the internal TableCrafter table configuration ID, which appears in the admin table list next to the table name. It is not the Gravity Forms form ID. You can reference the same configuration from multiple shortcodes on multiple pages, each embed reads from the same table settings. If you want to add search and per-column filters for the visitor:
[tablecrafter id="1" search="true" filter="true"]
After publishing the page, view it while logged out to confirm the table renders for non-admin visitors. The table should show the form entries from Gravity Forms with the columns you configured. If the table appears empty, return to the table builder and verify the Gravity Forms source is set to the correct form and that entries exist in that form.
Step 7: How Do I Place the Shortcode on a Page?
Navigate to Pages > Add New Page (or open an existing page). In the block editor, add a Shortcode block by searching for "shortcode" in the block inserter. Paste your shortcode into the block. Click Preview or Publish to see the live result.
If you use Elementor, add a Shortcode widget to any section and paste the code there. The table renders in the Elementor preview panel without needing to leave the builder. If you use the Classic Editor, switch to the Text tab and paste the shortcode directly in the post content. The shortcode also works in any widget area that accepts shortcodes, including Text widgets in sidebars and footers. If you want to embed the same table on multiple pages without maintaining separate shortcodes, paste the shortcode into a Gutenberg Synced Pattern (formerly called Reusable Blocks) so that changes to the block propagate to every page automatically. After publishing, open the page in a private browsing window to verify the table loads correctly for a visitor who is not logged in to WordPress as an admin.
The configuration you set here applies to every visitor who loads a page containing this table, regardless of whether they are logged in. Role-specific overrides for columns and rows are a separate layer and do not replace these global display settings. Apply global settings first, then add role restrictions as needed for tables that serve multiple user types.
What Is Troubleshooting: Common First-Run Issues?
Table shows "No entries found"
This almost always means the form has zero approved entries. Go to Forms > Entries, select your form, and confirm entries exist and are not in the Trash or Spam filter. If the entries list is empty, submit a test entry through the frontend form and reload the table page. Gravity Forms moves entries to Spam automatically when Akismet flags a submission, so check the Spam tab if you expect entries that are not appearing.
A second common cause is a visibility setting on the table configuration that restricts rows to the currently logged-in user. If the table shows entries when you are logged in as an admin but shows nothing for a regular visitor, open the table settings in the TableCrafter builder and check whether the entries are filtered to a specific user or role. Remove the filter or change its scope to display entries for all visitors. If entries exist and visibility settings are correct but the table still appears empty, clear your caching plugin's cache, as a stale cached page may be serving an old no-results state.
Columns show field IDs instead of values
This happens when a multi-input field (Name, Address, Checkbox) is added as a top-level column. See the field mapping guide for how to split these into sub-columns. Multi-part Gravity Forms fields like Name (which has First and Last sub-inputs) or Address (which has Street, City, State, Zip, Country sub-inputs) store their data under individual sub-input IDs rather than the parent field ID. When the top-level parent field ID is used as a column, TableCrafter receives a serialized array representation and may display raw data keys rather than the readable field values you expect.
To fix this, remove the parent field column from your table configuration and add the sub-input fields individually. For a Name field with parent ID 3, the sub-inputs are typically 3.3 (First Name) and 3.6 (Last Name). The TableCrafter column builder lists these sub-inputs in the available fields panel once you expand the parent field row. Add each sub-input as its own column with a descriptive label such as "First Name" and "Last Name." The same applies to Address fields, where sub-inputs cover street, city, state, zip, and country independently.
Table layout breaks on my theme
TableCrafter outputs a standard <table> element. If your theme's CSS applies aggressive global table styles, add .tc-table { all: revert; } to your child theme's stylesheet as a starting point, then re-apply only the styles you want. Many themes set border-collapse, fixed column widths, or aggressive padding on every table selector globally. These rules override TableCrafter's bundled styles because the theme stylesheet typically loads after the plugin stylesheet in the WordPress enqueue order.
The all: revert declaration resets all CSS properties on the .tc-table element to the browser's built-in defaults, giving you a clean foundation. From that starting point you can selectively add back the specific properties you need using scoped selectors such as .tc-table th, .tc-table td, and .tc-table tr:nth-child(even). If your theme uses a child theme, add these rules to the child theme's style.css so they survive theme updates. If you are not using a child theme, add the rules through the WordPress Customizer under Additional CSS. Avoid editing the parent theme's files directly, as a theme update will overwrite your changes.
This step completes the connection between your data source and the TableCrafter table engine. Once saved, the plugin caches the connection credentials in the WordPress options table and uses them on every subsequent page load. If you update the source configuration later (for example, rotating an API key or changing a sheet URL) return to this step, enter the new value, and save again. The table updates immediately on next load without any shortcode changes.
What Are the Next Steps?
You now have a live, paginated Gravity Forms data table on your WordPress frontend. From here, the natural next steps are mapping complex field types (Name, Address, Checkboxes) covered in the field mapping guide, enabling per-user entry filtering for member portals, or turning on inline editing so users can update entries without going to wp-admin. Each of those workflows builds on exactly the table configuration you just created.
If your form collects data across many fields, consider building multiple table views of the same form for different audiences: a compact summary table for the public page showing four or five key columns, and a wider admin review table that shows every field. Because each TableCrafter configuration is independent, you can embed different [tablecrafter] shortcodes on different pages, all reading from the same Gravity Forms source without duplicating any form or entry data. Changes to the underlying entries appear immediately in every table view on the next page load. If you need to give non-admin users the ability to update their own entries, see the guide on enabling frontend inline editing, which covers the edit="true" shortcode parameter and role-based edit permissions.
Frequently Asked Questions
How Do I Install and Activate TableCrafter?
Navigate to Plugins > Add New Plugin in your WordPress admin. Search for "TableCrafter" and click Install Now, then Activate. If you purchased a Pro license, upload the zip file via Plugins > Add New Plugin > Upload Plugin instead.
What Is TableCrafter?
TableCrafter is a WordPress plugin that turns data from Gravity Forms, Google Sheets, Airtable, Notion, REST APIs, CSV files, and WooCommerce into interactive, sortable, filterable frontend tables. Embed any table on any WordPress page with the [tablecrafter] shortcode or the native Gutenberg block. No PHP or custom development required. The free version supports CSV, JSON, Google Sheets, and Excel. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST APIs, inline cell editing, export to CSV and PDF, role-based column visibility, and auto-refresh.
Does this require PHP or developer skills?
No. TableCrafter is configured entirely through the WordPress admin interface. You choose your data source, map fields to columns, and set display preferences using point-and-click controls. Embedding uses the [tablecrafter] shortcode or the native Gutenberg block.
Is the free version sufficient or do I need Pro?
The free plugin on WordPress.org supports CSV, JSON, Google Sheets, and Excel sources with unlimited tables, rows, and columns. Pro adds Gravity Forms, Airtable, Notion, WooCommerce, REST API sources, inline cell editing, bulk row actions, export to CSV and PDF, role-based column visibility, and auto-refresh every N seconds.
Ready to try it?
TableCrafter is free on WordPress.org. Pro unlocks inline editing, role-based permissions, and advanced data sources.