Why Google Sheets is the best free lead tracker
Many small businesses do not need a full CRM platform to track leads. What they need is a centralized, always-accessible place to see every form submission as it arrives. Google Sheets delivers exactly that - for free.
Unlike leads trapped inside a WordPress database (which requires admin access and a plugin to view), a Google Sheet is instantly shareable. Your sales rep can watch leads arrive from their phone. Your VA can sort by source. Your business partner in another timezone can add notes. Everyone sees the same data, in real time, without logging into WordPress.
Sheets also comes with built-in analysis tools that go beyond what most form plugins offer: pivot tables to count leads by source, conditional formatting to highlight hot prospects, and QUERY formulas to build filtered views. When you outgrow Sheets, the data exports cleanly to any CRM - but most businesses under 1,000 leads per month never need to.
How SheetLinkWP automates lead capture
SheetLinkWP connects your WordPress form plugin directly to Google Sheets through a lightweight Apps Script bridge. When someone submits a form on your site, the plugin fires the data to your spreadsheet in under two seconds. There is no middleware (no Zapier, no Make), no per-submission fee, and no 100-task monthly limit.
The plugin supports all seven major WordPress form builders: Elementor Forms, Contact Form 7, Gravity Forms, WPForms, Fluent Forms, Formidable Forms, and Ninja Forms. Whichever builder you already use, SheetLinkWP will work with it.
Because the connection goes directly from WordPress to Google (no cloud relay), your data never passes through a third-party server. This is important for businesses that handle personal information and want to keep their data pipeline short and auditable.
Step-by-step setup
- Install SheetLink Forms - Download SheetLink Forms from sheetlinkwp.com and upload it via Plugins → Add New → Upload Plugin. Activate the plugin and navigate to SheetLink > Settings in your admin sidebar.
- Create your Google Sheet - Open Google Sheets and create a new blank spreadsheet. Name it something descriptive like "Website Leads - 2026". You do not need to add headers - SheetLinkWP will create them automatically when the first submission arrives.
- Deploy the Apps Script webhook - In your Google Sheet, go to Extensions > Apps Script. Paste the SheetLink connector script (provided in the documentation), click Deploy > New deployment, choose "Web app", set access to "Anyone", and click Deploy. Copy the web app URL.
- Connect and map fields - Back in WordPress, paste the web app URL into SheetLink's settings. Select your form plugin from the dropdown, choose the specific form, and map each field to a column. SheetLinkWP shows a preview of your field mapping before you save.
- Test the connection - Submit a test entry through your form on the front end. Within seconds, you should see a new row appear in Google Sheets with all the mapped data.
What data gets captured
Beyond the form fields your visitor fills in (name, email, phone, message, etc.), SheetLinkWP automatically enriches each row with metadata that makes lead tracking far more powerful:
- Submission timestamp - exact date and time the form was submitted, in your configured timezone
- UTM parameters - utm_source, utm_medium, utm_campaign, utm_term, and utm_content, captured from the page URL
- Ad click IDs - GCLID (Google Ads), fbclid (Facebook Ads), and msclkid (Microsoft Ads)
- Referring URL - the page the visitor was on before arriving at your form
- Page URL - which page on your site the form was submitted from
- IP address - useful for fraud detection and geographic analysis (can be disabled for GDPR)
- User agent - browser and device information
This enrichment turns a basic contact form into a full attribution system. You can see not just who submitted a form, but where they came from, which ad they clicked, and what page converted them.
Building a lead pipeline view in Google Sheets
Once your leads are flowing into a sheet, you can build a simple pipeline without any additional tools.
Add a "Status" column to the right of your form data. Use data validation to create a dropdown with stages: New, Contacted, Qualified, Proposal Sent, Won, Lost. Your sales team updates this manually as they work leads.
Add a "Notes" column for free-text follow-up information. Because Sheets supports cell comments and edit history, you can track who changed what.
Use conditional formatting to color-code rows by status: green for Won, red for Lost, yellow for Qualified. This gives you an instant visual pipeline.
Create a filtered view (Data > Create a filter) so each team member can view only their assigned leads without changing what others see.
If you want to take this further, SheetLinkWP's AI Lead Scoring add-on can automatically assign a 0-100 score to each lead as it arrives, so your team knows which submissions to call first.
Frequently Asked Questions
Which WordPress form plugins work with SheetLinkWP for lead tracking?
SheetLinkWP supports Elementor Forms, Contact Form 7, Gravity Forms, WPForms, Fluent Forms, Formidable Forms, and Ninja Forms. All seven plugins can send leads to Google Sheets automatically.
Is there a limit on how many leads I can track?
SheetLinkWP has no per-submission limits. Google Sheets supports up to 10 million cells per spreadsheet, which means tens of thousands of lead rows before you need to start a new sheet.
Can I track UTM parameters alongside lead data?
Yes. SheetLinkWP automatically captures utm_source, utm_medium, utm_campaign, utm_term, utm_content, plus GCLID, fbclid, and msclkid values when present in the page URL.
What happens if Google Sheets is temporarily unavailable?
SheetLinkWP includes a built-in retry queue. If a delivery fails, the plugin retries automatically up to 5 times with exponential backoff. Submissions are retried automatically to minimize data loss.
Do I need Zapier or any third-party automation tool?
No. SheetLinkWP connects directly to Google Sheets via Apps Script - no Zapier, Make, or other middleware required. This eliminates per-task fees and reduces latency.