Form Integrations

Per-plugin setup guides for all 12 core form builders, plus 5 more form builders and 3 commerce/LMS event sources (LearnDash, MemberPress, Easy Digital Downloads) added via the Integrations Bundle.

Available on: Free - 12 Core Forms + 5 more forms and 3 event sources via Integrations Bundle See all integrations →

Overview

SheetLinkWP hooks into native WordPress form submission events - no extra configuration needed on the form side. Install the plugin, create a sync rule, select your form plugin, and map fields. Works the same way across all 12 core form plugins (plus the 5 added through the Integrations Bundle).

Each integration listens for the form plugin's built-in submission action, captures all field data, and sends it to your connected Google Sheet in real time. Column headers are generated automatically from the field names or labels defined in your form builder; Smart Mapping (bundled in the free core) also suggests cleaner column names when your form uses generic IDs.

The core 12 are covered below. JetFormBuilder, Bricks Builder, MetForm, Kali Forms, and HappyForms live under the Integrations Bundle section at the end.

E Elementor Pro Forms

WordPress Hook

elementor_pro/forms/new_record

How it works

SheetLinkWP listens to Elementor's elementor_pro/forms/new_record action, which fires every time a visitor submits an Elementor Pro form. The plugin captures all submitted field values and writes them to your mapped Google Sheet instantly.

Available fields

  • All form fields are captured by their field ID
  • Custom field IDs set in Elementor's form widget are used as column names
  • Supports text, email, number, textarea, select, radio, checkbox, date, time, and file upload fields
i

Use short, descriptive Field IDs in Elementor (e.g., 'name', 'email', 'phone') - these become your Google Sheet column headers.

!

Requires Elementor Pro (the free version doesn't include forms).

CF7 Contact Form 7

WordPress Hook

wpcf7_mail_sent

How it works

SheetLinkWP hooks into wpcf7_mail_sent, which fires after CF7 has successfully processed a submission and dispatched its notification email. All submitted mail-tag values are captured and synced to your Google Sheet.

Available fields

  • All mail-tags (form fields) are captured automatically
  • Field names like your-name, your-email, your-message are used as column names
  • Supports text, email, URL, tel, textarea, select, checkbox, radio, date, and file fields
i

CF7 field names include hyphens by default (e.g., your-name). These work fine as Sheet column headers.

!

File upload fields are captured as file names, not file contents.

GF Gravity Forms

WordPress Hook

gform_after_submission

How it works

SheetLinkWP hooks into gform_after_submission, which fires after Gravity Forms processes and stores a new entry. All field values from the entry are captured and synced to your Google Sheet in real time.

Available fields

  • All form fields are captured using their field labels
  • Multi-part fields (name, address) have sub-fields captured individually
  • Checkboxes are captured as comma-separated values
  • Multi-select fields are fully supported
  • File uploads are captured as URLs
i

Gravity Forms field labels become column headers. Keep them clean and descriptive.

!

Supports all field types including checkboxes (comma-separated values), multi-select, and file uploads (as URLs).

WP WPForms

WordPress Hook

wpforms_process_complete

How it works

SheetLinkWP hooks into wpforms_process_complete, which fires after WPForms finishes processing a submission. All field data is captured by field label and synced to your Google Sheet immediately.

Available fields

  • All form fields captured by field label
  • Supports all standard WPForms field types
  • Both WPForms Lite (free) and WPForms Pro are fully supported
i

Both WPForms Lite (free) and WPForms Pro work with SheetLinkWP. No premium license required for the Sheet sync.

FF Fluent Forms

WordPress Hook

fluentform/submission_inserted

How it works

SheetLinkWP hooks into fluentform/submission_inserted, which fires after Fluent Forms stores a new submission in the database. All field values are captured and synced to your connected Google Sheet.

Available fields

  • All form fields captured by field name/label
  • Supports text, email, number, textarea, select, radio, checkbox, file upload, and more
  • Clean field name conventions make column mapping straightforward
i

Fluent Forms uses clean field names by default, making column mapping straightforward.

FM Formidable Forms

WordPress Hook

frm_after_create_entry

How it works

SheetLinkWP hooks into frm_after_create_entry, which fires after Formidable Forms creates a new entry. All field values - including data from repeater fields and calculated fields - are captured and synced to your Google Sheet.

Available fields

  • All form fields captured by field name
  • Repeater fields are fully supported
  • Calculated fields are captured with their computed values
  • Supports all standard and advanced Formidable field types
i

Formidable's field names are used as column headers. Check Settings > Fields to see exact names.

NF Ninja Forms

WordPress Hook

ninja_forms_after_submission

How it works

SheetLinkWP hooks into ninja_forms_after_submission, which fires after Ninja Forms processes a submission. All field values are captured by their internal field key and synced to your Google Sheet.

Available fields

  • All form fields captured by field key
  • Supports text, email, number, textarea, select, radio, checkbox, and more
  • Field keys (not labels) are used as column headers
i

Ninja Forms uses field keys (not labels) internally. Check the field settings to see the key used for each field.

Need a different form plugin?

We're always adding new integrations. Let us know which form builder you'd like us to support next.

Contact support@sheetlinkwp.com

FR Forminator

WordPress Hook

forminator_custom_form_submit_before_set_fields

How it works

Forminator fires a custom action after every form, quiz, and poll submission. SheetLinkWP hooks into it, extracts the submitted field payload, and writes to your mapped Google Sheet. Works with contact forms, quizzes (including knowledge and personality quiz types), and polls.

Available fields

  • Form submissions captured by field name (set in the Forminator field editor)
  • Quiz answers + result categories are captured as separate columns
  • Poll responses captured with the option label as the value
  • Stripe and PayPal payment fields are captured as amount + status
  • File upload fields captured as public URLs
i

Forminator field names default to generic keys like name-1 and email-1. Rename them in the field editor (e.g. email, first_name) before mapping, so your Google Sheet columns are readable.

EV Everest Forms

WordPress Hook

everest_forms_process_complete

How it works

Everest Forms stores every submission in its own database table; SheetLinkWP listens for the save-complete action, copies the captured field values, and sends them to your sheet.

Available fields

  • All standard fields supported (text, email, number, textarea, radio, checkbox, select, date)
  • Multi-part form submissions delivered as one row with all steps combined
  • Conditional-logic fields are captured only if the user saw them
  • File upload fields sent as attachment URLs
i

Set custom field IDs in the Everest Forms field editor - the plugin uses the ID on the left side of your SheetLink mapping.

BB Beaver Builder Forms

WordPress Hook

fl_module_contact_form_after_send

How it works

The native Contact Form module inside Beaver Builder (and the richer form builder inside Beaver Themer) emits a submission action that SheetLinkWP reads. All field values set in the Beaver module are captured verbatim.

Available fields

  • Contact Form module fields captured by the Name attribute set in the module settings
  • Beaver Themer forms supported via the same hook (richer field types: file upload, checkboxes, date, etc.)
  • Multi-step forms deliver a single combined row after the final step
!

The free Beaver Builder Lite includes the Contact Form module. Beaver Builder Premium adds more field types and Beaver Themer form integration.

DV Divi Contact Form

WordPress Hook

et_pb_contact_form_submit

How it works

Divi's built-in Contact Form module emits a submission action when the form validates successfully; SheetLinkWP captures the payload and writes to your sheet. No second form plugin is required.

Available fields

  • Divi form fields identified by the Field ID set in the module
  • Custom-labelled fields use the Field ID as the column name
  • Divi Theme Builder forms supported by the same hook
  • Upload fields captured as URLs
i

Divi's default Field IDs are numeric (field_1, field_2). Replace them with readable IDs like name or email in the module settings for cleaner sheet columns.

WS WS Form

WordPress Hook

wsf_submit_post_complete

How it works

WS Form is a developer-focused builder with a rich hook API. SheetLinkWP uses wsf_submit_post_complete to capture every submission with validated field data.

Available fields

  • All field types supported (text, email, number, textarea, repeater, calculated)
  • Repeater field rows captured as JSON in a single cell (by design)
  • Calculated fields captured with their final computed value
  • Multi-column layouts and multi-step forms deliver one combined row per submission
i

WS Form's strict HTML output means every field has a stable name attribute. Use that exact name on the left side of your SheetLink mapping.

IB Integrations Bundle

Premium add-on

Requires the Integrations Bundle add-on ($19/mo). See License Activation to unlock.

Five more form builders

The Integrations Bundle adds five additional form builders on top of the 12 core integrations:

  • JetFormBuilder - Gutenberg-native form engine from Crocoblock (hook: jet-form-builder/form-handler/after-send)
  • Bricks Builder Forms - native form element inside the Bricks site builder (hook: bricks/form/custom_action)
  • MetForm - Elementor-native form widget from Wpmet (hook: metform_after_store_form_data)
  • Kali Forms - drag-and-drop builder with a generous free tier (hook: kaliforms_after_form_process)
  • HappyForms - accessibility-first form plugin (hook: happyforms_submission_success)

Three commerce and LMS event sources

Beyond form builders, the bundle also turns non-form events into rows in your sheet:

  • LearnDash - fires on course completion (hook: learndash_course_completed). Captured fields: user_id, user_email, user_login, course_id, course_title, completed_at.
  • MemberPress - fires on a completed transaction (hook: mepr-txn-store, status=complete). Captured fields: transaction_id, user_id, user_email, product_id, amount, gateway, subscription_id, status.
  • Easy Digital Downloads - fires on completed purchase (hook: edd_complete_purchase). Captured fields: payment_id, email, first_name, last_name, total, currency, status, gateway, date, items.

Alternate destinations

The bundle also adds Airtable and Notion as alternate destinations - route submissions to an Airtable base or Notion database instead of (or alongside) a Google Sheet. Configure per-destination API keys inside the SheetLink -> Features -> Extra Integrations page after activating the add-on.

i

Once activated, the 5 extra form builders and 3 event sources auto-appear in the Sync Rules source dropdown. No separate setup per plugin.

Debugging

Verifying the hook fires

If submissions aren't reaching your sheet, the first step is confirming the form plugin's action hook is firing at all. Each integration above shows the exact WordPress action SheetLinkWP listens on. Drop this snippet in your theme's functions.php or a code-snippets plugin to log a message every time your form plugin fires:

add_action('ninja_forms_after_submission', function($data) {
  error_log('[debug] ninja_forms_after_submission fired: form ' . $data['form_id']);
}, 5);

Replace ninja_forms_after_submission with the hook from the plugin card above, then submit a test form and check wp-content/debug.log. Priority 5 runs before SheetLinkWP's default priority 10, so you'll see the log line even if SheetLinkWP later throws.

If the log line does not appear: the form plugin itself is not firing the action - check the form plugin's own configuration, server error log, and plugin version. If the log line appears but no row lands in your sheet: the issue is downstream - check SheetLink -> Log in the admin for a Delivery Log entry and the Troubleshooting guide for common errors.

Ready to Get Started?

Install SheetLink Forms and connect your first form in under 10 minutes.