How to Schedule Automatic Table Exports in TableCrafter

Updated July 2026 • 7 min read • By Fahad Murtaza

TableCrafter table builder, connect Gravity Forms, Google Sheets, Airtable, CSV, or JSON data sources
TableCrafter table builder, connect Gravity Forms, Google Sheets, Airtable, CSV, or JSON data sources

Not every manager wants to log into a WordPress site to pull a weekly report. TableCrafter's scheduled export feature runs on WP-Cron, writes the table's current data to a CSV or Excel file on the server, and optionally emails it to a list of recipients on a recurring cadence. This guide covers the full configuration: enabling the scheduled export, choosing the format, setting the cadence, adding recipients, and testing the delivery. 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 and Excel, role-based column visibility, and auto-refresh. Every table embeds on any page with a [tablecrafter] shortcode or the native Gutenberg block.

How Scheduled Exports Work in TableCrafter?

TableCrafter's scheduled export is a standalone WP-Cron based delivery system built into the Pro plugin as TC_Scheduled_Export_Service. When enabled for a table, it fires on a configurable cadence via the gt_run_scheduled_export cron hook, reads the current entry set from your data source, renders the data to a CSV or XLSX file, and writes it to wp-content/uploads/gravity-tables-exports/ on the server. If email recipients are configured, the file is also attached to an outgoing email in the same run.

The mechanism relies on WordPress pseudo-cron. Cron events fire when an incoming page request hits the site after the scheduled interval has elapsed, not at an exact clock time. On high-traffic sites this delay is negligible. On low-traffic sites it can extend by minutes or longer. For time-precise delivery, replace WordPress pseudo-cron with a real server-side cron job that calls wp-cron.php at the desired interval.

The scheduled export runs entirely server-side without any browser or logged-in user. It reads directly from Gravity Forms entries using the Gravity Forms API and applies the column and label configuration saved in the table builder.

Prerequisites

Before enabling a scheduled export, verify:

To verify WP-Cron is working and to manually trigger test runs, install the free WP Crontrol plugin from WordPress.org. It shows all scheduled events, their next run times, and lets you trigger the gt_run_scheduled_export hook immediately from the Cron Events admin screen.

How Do I Create the Email Alert?

Navigate to TableCrafter > Tables and click Edit on the target table. Scroll to the Scheduled Export panel in the table builder settings. Enable the toggle for Scheduled Export. Once toggled on, the configuration fields for recurrence, format, filename pattern, email recipients, and filter behavior appear below the toggle.

The scheduled export runs per-table. Each table has one scheduled export cadence and one recipient list. If you need to deliver the same data to two separate groups on different schedules, configure a second copy of the table and set up its scheduled export independently. All settings save with the main Save Table button. Enabling the toggle and saving activates the WP-Cron event immediately. The first run fires after the first interval has elapsed from the save time.

Scheduled exports are a Pro-only feature. If the Scheduled Export panel does not appear in the table builder, confirm that TableCrafter Pro is installed and that your license key is activated in TableCrafter > Settings > License.

How Do I Configure the Schedule?

The Recurrence field supports four options, corresponding to WordPress cron intervals registered by the plugin:

There is no monthly option in the current version. There is no day-of-week or time-of-day selector: WP-Cron schedules events relative to when the cron was first registered (typically when you saved the table with the toggle enabled). If you need the weekly export to land on Monday mornings, save the scheduled export settings on a Monday morning.

WordPress pseudo-cron fires when the next page request arrives after the interval has elapsed, not at an exact clock time. On active sites this delay is seconds. On low-traffic sites it can extend by minutes. For predictable delivery timing, configure a system cron to call wget -q -O - https://yoursite.com/wp-cron.php?doing_wp_cron at the desired interval.

How Do I Add Recipients?

In the Email Recipients field, enter one or more email addresses to receive the export when it runs. Separate multiple addresses with commas, semicolons, or whitespace. Each address is validated by WordPress's sanitize_email() and is_email() functions before the email sends. Invalid or empty addresses are silently dropped from the delivery list.

reports@example.com, manager@example.com

There are no dynamic address tokens (such as {admin_email} or {current_user_email}) for the scheduled export recipients field. The field stores a plain text string of literal email addresses. Scheduled exports run via server-side cron without a logged-in user, so user-context tokens have no meaning at run time.

If you leave the recipients field blank, the scheduled export still runs and writes the file to disk in wp-content/uploads/gravity-tables-exports/, but no email is sent. This is useful when a third-party file sync tool or webhook picks up the file from the server rather than relying on email delivery.

How Do Writing the Email Subject and Body Work?

The email subject and body for scheduled exports are fixed and are not configurable in the admin UI. When a scheduled export fires and recipients are configured, TableCrafter calls wp_mail() with a system-generated subject and body:

These fixed templates give recipients enough context to identify the table and delivery date at a glance in their inbox without opening the attachment. If your organization requires customized email subjects, bodies, or branding, use the WordPress wp_mail filter hook in a site plugin or functions.php snippet. That filter fires before every outgoing email and allows arbitrary modification of the subject, headers, body, and attachments before delivery.

How Does Attaching the Export Work?

The Format field controls whether the export file is CSV or XLSX. Both formats are attached to the email and also saved to wp-content/uploads/gravity-tables-exports/ on the server. The file persists on disk after the email is sent; it is not deleted automatically.

There is no PDF option for scheduled exports. Server-side PDF generation is not supported by the plugin.

The filename follows the pattern configured in the Filename Pattern field. The default is {table_name}-{YYYY-MM-DD} (with the format extension appended automatically). Supported tokens: {table_name}, {table_id}, {YYYY-MM-DD}, {YYYY}, {MM}, {DD}, {HH}, {mm}, {ss}, {HHMMSS}, {timestamp}.

For weekly summary emails to a manager, CSV format is the safest choice because it opens on any device without needing Excel installed. If recipients use Excel-specific features like pivot tables, choose XLSX.

How Does Applying a Filter to the Scheduled Export Work?

The Honor Current Filters toggle controls whether the scheduled export restricts its query beyond the default "all active entries" search criteria. When this toggle is off (the default), the export includes all active Gravity Forms entries for the table's form, with no additional filtering applied.

When Honor Current Filters is on, the plugin applies the gt_scheduled_export_search_criteria WordPress filter at cron time. This filter is designed for developer code (a site plugin or functions.php snippet) that injects custom Gravity Forms field filters into the export query. For example, a snippet can hook into this filter to add a date-range condition that restricts the export to entries submitted in the past 7 days:

add_filter('gt_scheduled_export_search_criteria', function($criteria, $table_id) {
    if ($table_id === 42) {
        $criteria['field_filters'] = [
            ['key' => 'date_created', 'operator' => '>=',
             'value' => date('Y-m-d', strtotime('-7 days'))]
        ];
    }
    return $criteria;
}, 10, 2);

Without custom code, toggling "Honor Current Filters" on does not change the export contents. The feature is intended for developers who want programmatic control over the export scope in a code-first, auditable way.

How Does Testing the Scheduled Alert Work?

Do not wait for the WP-Cron schedule to fire to verify your configuration. Use the Run Export Now button in the table builder's Scheduled Export panel. This button triggers the same export logic as the cron run: it reads entries, writes the file to wp-content/uploads/gravity-tables-exports/, and sends the email to the configured recipients immediately.

After clicking Run Export Now:

  1. Check wp-content/uploads/gravity-tables-exports/ on the server for the generated file. Verify the filename follows the expected pattern and that the file is non-empty.
  2. Open the file in a spreadsheet to confirm the column headers and row count match expectations.
  3. If email recipients are configured, check the inbox within 1-2 minutes. If the email does not arrive, check your server's mail logs and verify WordPress email sending is working correctly.
  4. If using WP Crontrol, you can also trigger the gt_run_scheduled_export hook manually from the Cron Events admin screen to confirm the cron schedule is registered correctly for the expected interval.

What Are the Next Steps?

With scheduled exports active, your table data reaches recipients automatically on every cron cycle without anyone logging into WordPress. The export reflects the state of the data at the moment the cron fires, not a snapshot from when you configured the schedule. For tables where entries change frequently between runs, recipients will always receive the most current dataset.

If you want to combine scheduled exports with inline data editing, review the inline editing guide. Teams that update entry values via the frontend table before the scheduled export fires can ensure the export contains corrected, validated data rather than raw original form submission values. This is particularly useful for load tracking or CRM workflows where status fields are updated manually between report periods.

For tables where only a subset of the data should reach export recipients, use the gt_scheduled_export_search_criteria filter hook to inject Gravity Forms field conditions at cron time. This approach keeps the filter logic in code, version-controlled and auditable, rather than in the admin UI. It is the recommended approach for compliance-sensitive workflows where the scope of data shared via email must be strictly defined and documented.

Frequently Asked Questions

How Does How Scheduled Exports Work in TableCrafter Work?

TableCrafter does not have a standalone scheduled export feature. Instead, it combines two systems:

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 Excel, 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 Excel, role-based column visibility, and auto-refresh every N seconds.

Ready to try it?

TableCrafter is free on WordPress.org. Pro unlocks scheduled exports, inline editing, role-based permissions, and advanced data sources.