One-Click Entry Duplicate

Clone any Gravity Forms entry directly from your frontend table with a single click. TableCrafter Pro creates an exact copy of the entry through the Gravity Forms API and immediately refreshes the table to show the new record.
Requires TableCrafter Pro. The duplicate icon and its server-side handler are fully gated behind a Pro license. Free-tier tables display no duplicate UI, no icon appears in the action column and the underlying AJAX endpoint returns an error if called directly. Activate your Pro license to enable this feature.
Two Different Duplicate Actions
TableCrafter has two distinct "duplicate" actions that operate on completely different objects. It is important to understand which one you need before proceeding.
| Action | What it copies | Where it appears | Tier | Since |
|---|---|---|---|---|
| Entry Duplicate | A single Gravity Forms entry (one row of data submitted by a user) | Frontend table row action column | Pro | v6.4.7 |
| Table Configuration Duplicate | An entire table configuration (column layout, filters, form binding, styling) | WP Admin > TableCrafter list screen | Free | v6.3.6 |
The rest of this page covers the Pro frontend entry duplicate in detail. The admin table configuration duplicate is documented briefly in the Table Configuration Duplicate section below.
Enabling Entry Duplicate
Entry Duplicate is disabled by default. To turn it on for a specific table:
- Go to WP Admin > TableCrafter and open the table you want to edit.
- In the table builder, open the Settings tab (the gear icon in the top-right of the builder panel).
- Scroll to the Row Actions section and check Enable duplicate.
- Click Save Table.
Once saved, the duplicate icon (⧉) will appear in every row's action column alongside the existing View, Edit, and Delete icons. The icon is rendered server-side: visitors without Pro-licensed TableCrafter will never see it, regardless of how the shortcode is configured.
The duplicate action column respects your existing Roles & Permissions settings. If a user role is not permitted to edit entries, the duplicate icon will not be shown to that role even when the feature is enabled.
How Entry Duplication Works
When a user clicks the duplicate icon (⧉) on a table row, TableCrafter performs the following steps entirely via AJAX, no page navigation occurs:
- Fetches the source entry from Gravity Forms using the entry ID associated with that row.
- Clears identity fields on the copied data: the entry ID is removed and all timestamps (
date_created,date_updated) are reset so the copy is treated as a brand-new submission by GF, not an update to the original. - Writes the new entry via the Gravity Forms API (
GFAPI::add_entry()), which triggers standard GF entry processing including any notifications or feeds configured on the form, unless those are conditionally gated on specific field values. - Refreshes the table in place. The table reloads its current page of data and the new entry appears, sorted according to the table's active sort order (typically most recent first).
Gravity Forms notifications fire on duplication. Because the copy is registered as a new entry via GFAPI::add_entry(), any GF notifications or third-party feed integrations (Zapier, ActiveCampaign, etc.) triggered on new submissions will also fire for the duplicate. If you do not want notification emails sent on every clone operation, disable those notifications at the GF form level or add a conditional logic rule on a dedicated hidden field.
What is copied exactly
Every field value from the original entry is copied verbatim to the new entry. This includes:
- All standard GF field values (text, number, dropdown, checkbox, radio, date, etc.)
- The form ID (the copy belongs to the same GF form)
- The
created_byuser ID (the original submitter's ID is preserved) - The entry status (typically
active)
Fields that are not carried over:
- Entry ID, a new unique ID is assigned by Gravity Forms
- Timestamps,
date_createdanddate_updatedare set to the moment of duplication - Payment fields and transaction data, these are not copied to avoid creating phantom financial records
Common Use Cases
Entry Duplicate is most useful when your Gravity Forms entries represent repeatable records, situations where a user needs to create a new record that starts from an existing one rather than from a blank form.
Template entry cloning
Maintain one "master" entry with standard default values, a load template with pre-filled carrier, rate code, and origin address. Drivers or dispatchers click duplicate on that template row and immediately get a new entry to edit with all the boilerplate already in place. Combine this with Inline Editing so the user can update the unique fields (date, destination, load number) directly in the table without opening a form.
Repeating orders or jobs
If you use Gravity Forms to capture recurring orders, work orders, or service requests, Entry Duplicate lets staff create a new record for a repeat customer by cloning the previous order rather than re-entering every field. This is faster and reduces data-entry errors on fields that rarely change (customer name, address, service type).
Copying records across status stages
Some workflows benefit from having both a draft and a finalized version of a record. A user can duplicate the draft entry, update the copy's status field to "Submitted" via inline editing, and retain the original draft for reference, all without leaving the table.
Quick A/B record comparison
In directory or inventory use cases, duplicating an entry and then modifying one field on the copy (price, category, variant) via inline editing gives users a fast way to compare two near-identical records side by side in the same table view.
Table Configuration Duplicate (Free)
Introduced in v6.3.6, this is a separate feature that lives entirely in the WordPress admin. It copies a table configuration, not a Gravity Forms entry.
To use it:
- Go to WP Admin > TableCrafter.
- Hover over the table name in the list to reveal the row actions.
- Click Duplicate.
TableCrafter creates a full copy of the table configuration, the form binding, all column definitions (labels, widths, formatting, visibility rules), filter settings, and styling options, and names it "Original Name (Copy)". You are redirected immediately to edit the new copy in the table builder.
This is useful when you need multiple tables showing data from the same GF form but with different column sets, filter defaults, or permission scopes. Build one table, duplicate it, and adjust the copy rather than starting from scratch.
Table configuration duplication is available on the Free tier. No Pro license is required. The resulting new table gets its own unique table ID and its own shortcode, embed it anywhere with [tablecrafter id="NEW_TABLE_ID"].
Permissions and Security
Both the frontend duplicate icon and the server-side AJAX handler enforce permission checks before any action is taken.
| Check | Details |
|---|---|
| Pro license | The AJAX endpoint verifies an active Pro license on every request. Requests without a valid license return a 403 error. |
| Table access | The user must have permission to view the table (as configured in the table's Roles & Permissions settings). |
| Entry ownership | If the table is scoped to show only the current user's entries (Restrict to current user setting), duplication is permitted only for entries that belong to the logged-in user. |
| Nonce verification | Every AJAX request includes a WordPress nonce tied to the current session. Replayed or forged requests are rejected. |
| Capability check | The handler verifies the user has at minimum read capability. Additional capability requirements can be enforced via the tablecrafter_can_duplicate_entry filter (see Hooks & Filters). |
The UI check (hiding the duplicate icon) and the server-side check are independent. Removing the icon via CSS does not bypass the server-side permission gate. The AJAX endpoint will reject any request that fails the checks above, regardless of how it was triggered.
Troubleshooting
The duplicate icon does not appear
Work through these checks in order:
- Pro license active? Go to WP Admin > TableCrafter > License and confirm the license status shows "Active". If it shows "Inactive" or "Expired", the Pro feature set including the duplicate icon is disabled. See Licensing & Activation.
- Feature enabled on this table? Open the table in the builder, go to Settings > Row Actions, and confirm Enable duplicate is checked and the table has been saved since enabling it.
- Role permissions? The logged-in user's role must have permission to interact with the table. Review the Allowed Roles setting on the table and compare it to the user's WordPress role.
- Caching? If you use a page or object cache, a stale cached version of the table output may not reflect the newly enabled setting. Purge your cache and reload.
The duplicate icon appears but clicking it does nothing
Open your browser's developer console (F12 > Console) and look for JavaScript errors. Also check the Network tab for the AJAX request to admin-ajax.php, the response body will contain a descriptive error message if the server-side check failed. Common causes:
- The nonce has expired (session timeout). Reload the page and try again.
- A JavaScript error from another plugin is blocking the TableCrafter event handler. Temporarily disable other frontend JavaScript and retest.
- The entry no longer exists in Gravity Forms (it was deleted from GF Admin between the table load and the click).
The duplicate fires but no new row appears
The entry was likely created successfully in Gravity Forms but the table's current filter or pagination excludes it from the visible result set. Go to GF Admin > Forms > [Your Form] > Entries and confirm the new entry appears there. If it does, adjust your active table filter to include it, or check the default sort order, the new entry will appear at the position determined by the table's sort column and direction.