Send Piotnet Forms data to Google Sheets instantly
Stream PAFE submissions - repeater fields, booking slots, and calculated totals - to Google Sheets while your Elementor page stays fast.
CMS: WordPress
Overview
Piotnet Forms (PAFE) extends Elementor with advanced capabilities like repeater fields, signature capture, booking calendars, and Stripe or PayPal payment fields. LeadToSheet captures the text field values from the submitted form data and sends them to Google Sheets, giving your team a structured lead log without needing to export from the WordPress admin.
Implementation checklist
- 1
Add the LeadToSheet SDK to your site footer
Insert the script tag into your WordPress footer via the theme or a code injection plugin. PAFE renders forms as Elementor widgets, so the SDK must be present before the page builder frontend script initialises the form DOM.
LeadToSheet snippet
<script async src="https://www.leadtosheet.com/api/sdk?k=YOUR_CLIENT_KEY"></script> - 2
Name fields and repeater rows explicitly
In the PAFE widget settings, set meaningful Name values for every field, including each row of a repeater group. LeadToSheet captures whatever field names and values are present in the form's submitted data, so clear naming helps produce readable spreadsheet columns.
Tip: Keep repeater field names short - long names combined with row indices can produce wide column headers.
- 3
Test with booking and text fields active
Submit a complete test entry that fills in all text fields, including booking date selection. Confirm each text field value appears in your Google Sheet with the correct column header. Note that signature pad images, file uploads, and payment transaction IDs are not captured by the SDK — these are handled server-side by PAFE.
Customization ideas
Flatten repeater groups into readable columns
PAFE repeater fields may produce multiple values under similar field names. LeadToSheet captures the text values as they appear in the form submission, so using clear, distinct field names for each repeater row helps produce readable spreadsheet columns.
Pair form submissions with payment records
LeadToSheet captures the text field values from the form submission. Payment transaction IDs from Stripe or PayPal are processed server-side and are not included in the browser-level form data. Use your payment provider's dashboard or webhooks to reconcile transactions with the lead data in your sheet.
Text field capture for PAFE forms
LeadToSheet captures all text-based form fields from PAFE forms. Note that file uploads and signature pad images are not captured — these are stored on your WordPress server by PAFE.
Troubleshooting
Multi-step PAFE form only sends partial data
PAFE fires the submission event only on the final step. If your sheet shows incomplete rows, verify the user completed every step. Abandoned multi-step entries are not captured by design.
Widget not detected after Elementor lazy-loads the section
If your PAFE form sits inside an Elementor section with motion effects or lazy rendering, the form DOM may inject after page load. The LeadToSheet SDK observes DOM mutations, but ensure the script loads before Elementor's frontend.min.js to guarantee detection.
Calculated field shows zero in the sheet
PAFE calculates field values client-side. If the calculated field has no input dependencies filled, it submits as zero. Run a test with all dependent fields populated to confirm the formula output reaches your sheet.
Frequently asked questions
- Does LeadToSheet handle PAFE's conditional field visibility?
- Yes. Fields hidden by PAFE conditional logic are excluded from the submission payload, and LeadToSheet only captures what PAFE actually submits. No phantom columns appear for hidden fields.
- Can I capture booking date and time slot data from PAFE?
- Absolutely. Booking field values are submitted as formatted date-time strings. LeadToSheet records them as text columns you can parse or reformat inside Google Sheets.
- Will the SDK work on pages where Piotnet Forms loads inside an Elementor popup?
- Yes. The SDK monitors the DOM for dynamically injected forms, including those rendered inside Elementor popups triggered by button clicks or scroll events.
