Title: SheetLink Forms for Google Sheets and Excel
Author: sheetlink
Published: <strong>Ẹrẹ́nà 12, 2026</strong>
Last modified: Ọwẹ́wẹ̀  29, 2026

---

Ṣàwárí àwọn plugin

![](https://ps.w.org/sheetlink-forms/assets/banner-772x250.png?rev=3620690)

![](https://ps.w.org/sheetlink-forms/assets/icon-256x256.png?rev=3513890)

# SheetLink Forms for Google Sheets and Excel

 Láti ọwọ́ [sheetlink](https://profiles.wordpress.org/sheetlink/)

[Ṣe ìgbàsílẹ̀](https://downloads.wordpress.org/plugin/sheetlink-forms.1.18.2.zip)

 * [Àwọn àlàyé](https://yor.wordpress.org/plugins/sheetlink-forms/#description)
 * [Àwọn àgbéyẹ̀wò](https://yor.wordpress.org/plugins/sheetlink-forms/#reviews)
 *  [Ìgbéwọlẹ̀](https://yor.wordpress.org/plugins/sheetlink-forms/#installation)
 * [Ìdàgbàsókè](https://yor.wordpress.org/plugins/sheetlink-forms/#developers)

 [Ìrànlọ́wọ́](https://wordpress.org/support/plugin/sheetlink-forms/)

## Àpèjúwe

SheetLink Forms sends your form submissions straight to Google Sheets or Excel. 
Every submission becomes a properly mapped row Ìtumọ̀ Yorùbá: – no manual exports,
no per-submission fees, no Zapier account.

#### Why SheetLink

 * **12 form plugins, one screen** Ìtumọ̀ Yorùbá: – one plugin and one set of rules
   for every form on the site, instead of a separate connector per form builder
 * **Free and unlimited** Ìtumọ̀ Yorùbá: – no per-task fees, no entry caps, no account
   to create
 * **Local-first** Ìtumọ̀ Yorùbá: – rows go from your server to Google; your form
   data never passes through ours
 * **Nothing gets lost** Ìtumọ̀ Yorùbá: – a delivery log for every send and a retry
   queue that recovers failed ones

Setup takes about three minutes: pick your form plugin, map fields to columns, and
connect Google in one click. SheetLink creates the sheet, or you pick an existing
one with GoogleÌtumọ̀ Yorùbá: ’s file picker. Prefer not to connect an account? 
Paste the generated Apps Script into your own sheet instead.

**Local-first.** Submissions go from your server straight to Google, never through
SheetLinkÌtumọ̀ Yorùbá: ’s servers. The one-click connection uses our sign-in broker
only to link and renew your account; your form data never passes through it. No 
telemetry, no activation pings, no required account.

#### Supported form plugins

Contact Form 7, WPForms, Gravity Forms, Elementor Pro, Fluent Forms, Formidable 
Forms, Ninja Forms, Forminator, Everest Forms, Beaver Builder, Divi and WS Form 
Ìtumọ̀ Yorùbá: – all from one admin screen.

Everything in this plugin is free and unlimited: every form integration, unlimited
sync rules, field mapping, the retry queue, delivery logs, attribution capture, 
conditional routing, mirrors to Excel Online, Airtable and Notion, local analytics
and a multisite overview. Additional features are available in SheetLink Pro, a 
separate plugin sold at sheetlinkwp.com, and two optional hosted services (the Lead
Inbox client portal and AI Lead Scoring) work with this plugin. The Features section
below lists all of it.

### Features

#### Free

 * All 12 form integrations, unlimited sync rules, field mapping
 * One-click Google Sheets connect, using GoogleÌtumọ̀ Yorùbá: ’s restrictive `drive.
   file` scope, so SheetLink only ever sees sheets it creates or you pick
 * Mirroring to Excel Online, Airtable and Notion alongside your sheet
 * Automatic retry queue, delivery logs and a test button
 * UTM, GCLID, fbclid, msclkid, IP, page URL and referrer capture
 * Conditional routing, smart mapping suggestions, guided setup wizard
 * Local analytics, stored in your own database
 * Export and deletion through the WordPress privacy tools
 * Multisite network overview

#### SheetLink Pro (separate plugin)

A separate plugin sold and downloaded from [sheetlinkwp.com/pricing](https://sheetlinkwp.com/pricing)
Ìtumọ̀ Yorùbá: – none of it is included in, or gated inside, this free plugin:

 * **Primary Destinations** Ìtumọ̀ Yorùbá: – make Excel Online, Airtable or Notion
   a ruleÌtumọ̀ Yorùbá: ’s only destination. Mirroring alongside Sheets is free 
   in this plugin
 * **Multi-CRM Routing** Ìtumọ̀ Yorùbá: – HubSpot, Salesforce, Zoho, Pipedrive, 
   Mailchimp, ActiveCampaign, Kit
 * **Two-Way Sync** Ìtumọ̀ Yorùbá: – edit a row in your sheet, the change arrives
   back in WordPress
 * **WooCommerce Sync** Ìtumọ̀ Yorùbá: – orders, refunds and customers in real time
 * **Extra Integrations** Ìtumọ̀ Yorùbá: – JetFormBuilder, Bricks Builder, MetForm,
   Kali Forms, HappyForms, plus MemberPress, LearnDash and Easy Digital Downloads
   events
 * **Agency tools** Ìtumọ̀ Yorùbá: – white-label admin, multisite dashboard, branded
   reports, role-based menus, network templates

#### Hosted services (optional, work with this free plugin)

 * **AI Lead Scoring** Ìtumọ̀ Yorùbá: – 0-100 scoring of captured leads through 
   the SheetLink API, off by default, behind a consent checkbox
 * **Lead Inbox client portal** Ìtumọ̀ Yorùbá: – a hosted portal where your clients
   work their leads without a WordPress login

Both are documented in the External services section below.

### External services

This plugin contacts the external services below. Google is core to the pluginÌtumọ̀
Yorùbá: ’s function; every other service is optional and is never contacted until
you enter its credentials and enable it. Each entry says what the service is for,
what data is sent and when, with links to the providerÌtumọ̀ Yorùbá: ’s terms and
privacy policy. Token storage and privacy-notice guidance are in the FAQ.

#### Google Sheets API and Google Drive (one-click connection)

GoogleÌtumọ̀ Yorùbá: ’s official Sheets and Drive APIs, used only after you click“
Connect Google” and grant consent at GoogleÌtumọ̀ Yorùbá: ’s own sign-in screen.
Per matching submission, the form field values you mapped (plus optional enrichment
such as timestamps, UTM parameters, IP address and page URL, if enabled) are written
from your server to `sheets.googleapis.com`; creating a sheet and listing tabs use
the same API, and the file picker uses `www.googleapis.com/drive/v3/` and loads 
GoogleÌtumọ̀ Yorùbá: ’s Picker script in wp-admin only. The scope is `drive.file`,
so SheetLink can only ever see spreadsheets it creates or that you pick. Sign-in
and periodic token renewal go through SheetLinkÌtumọ̀ Yorùbá: ’s broker at `sheetlinkwp.
com/api/sheetlinkwp/oauth/google/` so the Google client secret stays off your site;
your form data never passes through the broker. Disconnecting clears the stored 
token and stops all calls.
 [Google Terms of Service](https://policies.google.com/terms)
| [Google Privacy Policy](https://policies.google.com/privacy)

#### Google Apps Script (classic method)

A web app you deploy in your own Google Sheet receives the mapped field values (
plus optional enrichment, as above) on each matching submission. Receiver URLs are
validated to begin with `https://script.google.com/` or `https://script.googleusercontent.
com/`. This method uses no API keys and no OAuth Ìtumọ̀ Yorùbá: – nothing but your
own Google script is contacted.
 [Apps Script documentation](https://developers.google.com/apps-script)
| [Google Terms of Service](https://policies.google.com/terms) | [Google Privacy Policy](https://policies.google.com/privacy)

#### SheetLink License Server (only if you activate a licence)

Contacted only if you activate a paid licence: once when you paste the key, every
12 hours to refresh the cached entitlements, and when you click “Re-check entitlements”.
It sends your licence key (or purchase email as a fallback) and this siteÌtumọ̀ 
Yorùbá: ’s domain Ìtumọ̀ Yorùbá: – never form submissions, user accounts or site
content Ìtumọ̀ Yorùbá: – to `sheetlinkwp.com/api/sheetlinkwp/verify` and `/entitlements`.
Deactivating from the License page stops all calls; free features keep working with
no further requests.
 [SheetLink Terms](https://sheetlinkwp.com/terms) | [SheetLink Privacy Policy](https://sheetlinkwp.com/privacy)

#### SheetLink AI Lead Scoring (optional, off by default)

A hosted service that returns a 0-100 score, a hot/warm/cold band and a one-sentence
explanation per captured lead. It runs only when your licence includes it AND you
have ticked “Score incoming leads with AI” in Lead Settings, on WP-Cron rather than
during the submission. It sends the submitted field values with contact details 
removed first (exactly how is in the FAQ) plus this siteÌtumọ̀ Yorùbá: ’s activation
token to `sheetlinkwp.com/api/sheetlinkwp/lead-score`. Unticking the box stops all
requests immediately.
 [SheetLink Terms](https://sheetlinkwp.com/terms) | [SheetLink Privacy Policy](https://sheetlinkwp.com/privacy)

#### SheetLink AI Analytics extras (optional, off by default)

Three optional per-submission extras on the Analytics page Ìtumọ̀ Yorùbá: – sentiment,
summary and category Ìtumọ̀ Yorùbá: – computed by the same hosted service. Called
only when the specific extra AND AI consent in Lead Settings are both enabled. Sends
the field values scrubbed exactly as for AI Lead Scoring, your own category list
when the category extra is on, and the activation token to `sheetlinkwp.com/api/
sheetlinkwp/analytics`. Everything else on the Analytics page is computed locally
and sends nothing.
 [SheetLink Terms](https://sheetlinkwp.com/terms) | [SheetLink Privacy Policy](https://sheetlinkwp.com/privacy)

#### Microsoft Graph API (only when Excel Online is connected)

MicrosoftÌtumọ̀ Yorùbá: ’s OneDrive and Excel Online API. Used only after you click“
Connect Excel”, grant consent at MicrosoftÌtumọ̀ Yorùbá: ’s sign-in page, pick a
workbook and table, and enable Excel on a rule. Per submission, the field values
you mapped are inserted into your chosen Excel table at `graph.microsoft.com`. Token
refresh goes through SheetLinkÌtumọ̀ Yorùbá: ’s broker at `sheetlinkwp.com/api/sheetlinkwp/
oauth/microsoft/` so the Azure client secret stays off your site; form data never
passes through the broker. Disconnecting stops all calls and clears the stored tokens.

[Microsoft Services Agreement](https://www.microsoft.com/servicesagreement) | [Microsoft Privacy Statement](https://privacy.microsoft.com/)

#### Airtable API (only when an Airtable destination or mirror is configured)

Creates a record in your Airtable table at `api.airtable.com` once per matching 
submission and on “Send Test” Ìtumọ̀ Yorùbá: – but only after you enter an Airtable
personal access token, base and table and enable Airtable on a rule. It sends the
field values you mapped (or all captured fields if you set no mapping) with your
token as the credential. Disabling the rule or clearing the stored token stops all
requests.
 [Airtable Terms of Service](https://www.airtable.com/company/tos) | [Airtable Privacy Policy](https://www.airtable.com/company/privacy)

#### Notion API (only when a Notion destination or mirror is configured)

Creates a page in your Notion database at `api.notion.com` once per matching submission
and on “Send Test”; it also reads the database schema when you open the settings
page so your Notion properties can be offered for mapping. Requires a Notion internal
integration token and database ID. It sends the field values you mapped (or all 
captured fields if you set no mapping) with your token as the credential. Disabling
the rule or clearing the stored token stops all requests.
 [Notion Terms of Service](https://www.notion.com/terms)
| [Notion Privacy Policy](https://www.notion.com/privacy)

#### Twilio API (only when SMS Alerts are configured)

Sends you an SMS or WhatsApp alert per matching submission (and on test sends) after
you enter a Twilio Account SID, auth token, from-number and recipients, and enable
alerts on a rule. It sends the alert body you composed Ìtumọ̀ Yorùbá: – which by
default contains the form values you put in the template Ìtumọ̀ Yorùbá: – the sending
and recipient phone numbers, and your Twilio credentials to `api.twilio.com`. Disabling
alerts or clearing the credentials stops all requests.
 [Twilio Terms of Service](https://www.twilio.com/en-us/legal/tos)
| [Twilio Privacy Policy](https://www.twilio.com/en-us/legal/privacy)

#### Meta (Facebook) Conversions API (only when Meta CAPI is configured)

Reports a form submission to your Meta advertising pixel as a server-side conversion
event, after you enter a pixel ID and access token and enable it on a rule. It sends:
the submitterÌtumọ̀ Yorùbá: ’s email and phone number hashed with SHA-256 before
leaving your server (never in plain text), the `fbclid` click ID if present, the
submitterÌtumọ̀ Yorùbá: ’s IP address and browser user-agent as-is (Meta uses these
to match the event), the page URL, an event name, timestamp, currency and value,
and your access token Ìtumọ̀ Yorùbá: – to `graph.facebook.com`. Other form field
values are not sent. This shares personal data with Meta for ad measurement; see
the FAQ on privacy notices and consent before enabling it.
 [Meta Terms of Service](https://www.facebook.com/legal/terms)
| [Meta Privacy Policy](https://www.facebook.com/privacy/policy)

#### SheetLink Lead Inbox cloud sync (only when the client portal is enabled)

When the hosted client-lead portal is switched on for a site, each captured lead
is mirrored to `sheetlinkwp.com/api/sheetlinkwp/leads` Ìtumọ̀ Yorùbá: – including
the leadÌtumọ̀ Yorùbá: ’s name, email address and phone number in plain text, all
submitted field values, attribution data, capture time, status and value fields 
Ìtumọ̀ Yorùbá: – so your client can view and work leads in a browser without a WordPress
login. Unlike AI Lead Scoring this data is deliberately not scrubbed, because the
portal exists so your client can contact the lead. It pushes when a lead is captured
and when its status, owner or value changes. Switching the portal off stops all 
pushes; see the FAQ on privacy notices before enabling it.
 [SheetLink Terms](https://sheetlinkwp.com/terms)
| [SheetLink Privacy Policy](https://sheetlinkwp.com/privacy)

Every other feature Ìtumọ̀ Yorùbá: – smart mapping suggestions, local analytics 
charts, duplicate detection, conditional routing, ads conversion exports, the email
digest, and the setup wizard Ìtumọ̀ Yorùbá: – runs entirely on your own WordPress
server and contacts nothing.

## Àwọn àwòrán ìbòjú

[⌊Guided setup - five steps from install to your first WordPress form submission
in Google Sheets, about three minutes, no Apps Script and no Zapier.⌉⌊Guided setup-
five steps from install to your first WordPress form submission in Google Sheets,
about three minutes, no Apps Script and no Zapier.⌉[

Guided setup Ìtumọ̀ Yorùbá: – five steps from install to your first WordPress form
submission in Google Sheets, about three minutes, no Apps Script and no Zapier.

[⌊Connect Google once - sign in, create a new sheet or pick an existing one, and
SheetLink reads your header row. Then create the rule for that sheet from the same
screen.⌉⌊Connect Google once - sign in, create a new sheet or pick an existing one,
and SheetLink reads your header row. Then create the rule for that sheet from the
same screen.⌉[

Connect Google once Ìtumọ̀ Yorùbá: – sign in, create a new sheet or pick an existing
one, and SheetLink reads your header row. Then create the rule for that sheet from
the same screen.

[⌊A sync rule is three fields - name it, choose the form plugin, and one-click Google
is already selected. Field mapping, update mode and routing wait under Advanced 
options.⌉⌊A sync rule is three fields - name it, choose the form plugin, and one-
click Google is already selected. Field mapping, update mode and routing wait under
Advanced options.⌉[

A sync rule is three fields Ìtumọ̀ Yorùbá: – name it, choose the form plugin, and
one-click Google is already selected. Field mapping, update mode and routing wait
under Advanced options.

[⌊Per-form rules with a live delivery log - every send listed with its route, field
count, HTTP status and any error, plus a one-click Send Test.⌉⌊Per-form rules with
a live delivery log - every send listed with its route, field count, HTTP status
and any error, plus a one-click Send Test.⌉[

Per-form rules with a live delivery log Ìtumọ̀ Yorùbá: – every send listed with 
its route, field count, HTTP status and any error, plus a one-click Send Test.

[⌊Dashboard - total leads synced, estimated savings vs Zapier, active rules, the
retry queue, and the setup guide one click away.⌉⌊Dashboard - total leads synced,
estimated savings vs Zapier, active rules, the retry queue, and the setup guide 
one click away.⌉[

Dashboard Ìtumọ̀ Yorùbá: – total leads synced, estimated savings vs Zapier, active
rules, the retry queue, and the setup guide one click away.

[⌊Destinations - every rule writes to Google Sheets and can mirror the same row 
to Excel Online, Airtable or Notion.⌉⌊Destinations - every rule writes to Google
Sheets and can mirror the same row to Excel Online, Airtable or Notion.⌉[

Destinations Ìtumọ̀ Yorùbá: – every rule writes to Google Sheets and can mirror 
the same row to Excel Online, Airtable or Notion.

[⌊Retry queue - failed deliveries are retried automatically every 15 minutes, up
to 3 attempts, or with one click.⌉⌊Retry queue - failed deliveries are retried automatically
every 15 minutes, up to 3 attempts, or with one click.⌉[

Retry queue Ìtumọ̀ Yorùbá: – failed deliveries are retried automatically every 15
minutes, up to 3 attempts, or with one click.

[⌊Ad tracking - GCLID, wbraid, gbraid, fbclid and msclkid captured with each submission,
ready for offline conversion exports.⌉⌊Ad tracking - GCLID, wbraid, gbraid, fbclid
and msclkid captured with each submission, ready for offline conversion exports.⌉[

Ad tracking Ìtumọ̀ Yorùbá: – GCLID, wbraid, gbraid, fbclid and msclkid captured 
with each submission, ready for offline conversion exports.

## Ìgbéwọlẹ̀

#### From your WordPress admin (recommended)

 1. In your WordPress admin, go to **Plugins  Add New**.
 2. Search for “SheetLink Forms”.
 3. Click **Install Now**, then **Activate**.
 4. The setup wizard opens automatically and walks you through connecting your first
    form to Google Sheets in about three minutes.

#### Manual upload

 1. Download the `sheetlink-forms.zip` file.
 2. In WordPress, go to **Plugins  Add New  Upload Plugin** and upload the zip, or 
    extract it into `/wp-content/plugins/sheetlink-forms/`.
 3. Activate the plugin from the Plugins menu.
 4. The setup wizard opens automatically. If you dismissed it, visit **SheetLink** 
    in the admin menu and click **+ Add Rule** to configure your first sync rule manually.

#### What youÌtumọ̀ Yorùbá: ’ll need

 * One of the 12 supported form plugins (listed under Supported form plugins above)
 * A Google account with access to Google Sheets
 * About three minutes

## FAQ

### How do I send Contact Form 7 submissions to Google Sheets?

Install SheetLink Forms, create a sync rule, choose your Contact Form 7 form, connect
Google, and map the form fields to spreadsheet columns. New submissions are added
as rows automatically. Step-by-step guide: [Connect Contact Form 7 to Google Sheets](https://sheetlinkwp.com/how-to/connect-contact-form-7-to-google-sheets).

### Can I connect WPForms Lite to Google Sheets for free?

Yes. Both WPForms Lite and WPForms Pro are supported, and the free SheetLink plugin
sends unlimited WPForms submissions to Google Sheets. Step-by-step guide: [Connect WPForms to Google Sheets](https://sheetlinkwp.com/how-to/connect-wpforms-to-google-sheets).

### How do I connect Elementor Forms to Google Sheets?

Create a sync rule, select your Elementor Pro form, connect or pick a Google Sheet,
and map each Elementor field to a column. Step-by-step guide: [Connect Elementor Forms to Google Sheets](https://sheetlinkwp.com/how-to/connect-elementor-forms-to-google-sheets).

### Does SheetLink support Gravity Forms to Google Sheets?

Yes. Gravity Forms entries go to Google Sheets in real time, with custom field mapping,
delivery logs, and automatic retries. Step-by-step guide: [Connect Gravity Forms to Google Sheets](https://sheetlinkwp.com/how-to/connect-gravity-forms-to-google-sheets).

### Can WordPress forms send entries to Excel Online?

Yes. SheetLink mirrors submissions into an Excel Online workbook on Microsoft 365
or OneDrive for free, alongside your Google Sheet. Making Excel a ruleÌtumọ̀ Yorùbá:’
s only destination is a feature of the separate SheetLink Pro plugin. Note that 
MicrosoftÌtumọ̀ Yorùbá: ’s Excel API supports business accounts only Ìtumọ̀ Yorùbá:–
personal Outlook.com OneDrive is not supported by Microsoft for this. Step-by-step
guide: [WordPress forms to Microsoft 365](https://sheetlinkwp.com/how-to/wordpress-forms-to-microsoft-365).

### Do I need to create an account or register?

No. SheetLink Forms works immediately after installation. No account, no registration,
no license key required.

### Do I have to paste an Apps Script into my sheet?

Not anymore. Connect your Google account in one click and SheetLink writes rows 
through GoogleÌtumọ̀ Yorùbá: ’s official Sheets API Ìtumọ̀ Yorùbá: – it can create
the sheet for you, or you pick an existing one with GoogleÌtumọ̀ Yorùbá: ’s own 
file picker. The classic Apps Script method remains fully supported for users who
prefer a zero-account, script-only setup; both are free.

### Do I need a Zapier account?

No. SheetLink Forms sends data directly from WordPress to Google Sheets Ìtumọ̀ Yorùbá:–
through your one-click connected Google account or via a free Google Apps Script.
No third-party services needed.

### Does the plugin call home or track anything?

No telemetry, no analytics beacons, no activation pings. On a default install, form
submissions go only to the Google destination you configured Ìtumọ̀ Yorùbá: – never
through SheetLinkÌtumọ̀ Yorùbá: ’s servers. If you use the one-click Google or Microsoft
connection, the sign-in handshake and periodic token renewal go through SheetLinkÌtumọ̀
Yorùbá: ’s OAuth broker at sheetlinkwp.com; your form data never does.

Several optional features, each off until you configure it, do send submission data
elsewhere: the Excel Online, Airtable and Notion destinations send it to Microsoft,
Airtable and Notion respectively; SMS Alerts sends your alert text to Twilio; Meta
Conversions API sends a hashed conversion event to Meta; and three optional hosted
features route data through SheetLinkÌtumọ̀ Yorùbá: ’s own servers Ìtumọ̀ Yorùbá:–
AI Lead Scoring, AI Analytics extras, and the Lead Inbox client portal. See the “
External services” section below, which documents every one of them individually.

### What does AI Lead Scoring remove from a lead before sending it?

Names and phone numbers are replaced with the placeholder “provided”, email addresses
are reduced to their domain, and any email address or phone number typed into a 
free-text answer is redacted in place. Free-text answers are otherwise sent as written,
since that is what the rating is based on. The form identifier, the source form 
plugin name, the site URL and WordPress user account data are never sent.

### How are my Google and Microsoft tokens stored?

Refresh tokens are encrypted with AES-256-GCM (key derived from your siteÌtumọ̀ 
Yorùbá: ’s `wp_salt( 'auth' )` via HKDF) before being written to your own database,
and are cleared the moment you disconnect. Access tokens are short-lived (about 
an hour). Nothing is stored on SheetLinkÌtumọ̀ Yorùbá: ’s servers beyond what the
OAuth broker needs to complete the handshake.

### Do I need to update my privacy notice when I enable these features?

If your forms collect personal data: with the one-click Google or Excel connection,
list `googleapis.com` or `graph.microsoft.com` (and `sheetlinkwp.com` for the sign-
in broker) as processors. With AI Lead Scoring, AI Analytics extras or the Lead 
Inbox portal, list `sheetlinkwp.com` as a processor Ìtumọ̀ Yorùbá: – the portal 
transfers lead contact details in plain text, so satisfy yourself that you have 
a lawful basis first. Meta Conversions API shares an IP address and hashed contact
details with Meta for ad measurement, which in the EU/UK and similar jurisdictions
normally requires disclosure and consent Ìtumọ̀ Yorùbá: – list Meta as a recipient
and obtain consent where your local law requires it before enabling it.

### Which form plugins are supported?

Elementor Pro Forms, Contact Form 7, Gravity Forms, WPForms, Fluent Forms, Formidable
Forms, Ninja Forms, Forminator, Everest Forms, Beaver Builder, Divi, and WS Form.

### How do I set up the Google Sheet?

You donÌtumọ̀ Yorùbá: ’t have to. Click “Connect Google” and SheetLink creates the
sheet for you, or pick an existing one with GoogleÌtumọ̀ Yorùbá: ’s file picker;
the header row is read from the sheet. If you prefer the classic method instead,
click “Get Script” on a rule, paste the generated code into your sheetÌtumọ̀ Yorùbá:’
s Apps Script editor (Extensions > Apps Script) and deploy it as a web app.

### Can I send different forms to different sheets?

Yes. Create multiple sync rules, each pointing to a different Google Sheet (a different
connected sheet, or a different Apps Script URL with the classic method).

### Is my data secure?

Form submission data is sent directly from your WordPress server to Google over 
HTTPS: to `sheets.googleapis.com` (GoogleÌtumọ̀ Yorùbá: ’s official Sheets API) 
when you use the one-click connection, or to the Google Apps Script URL you configure
with the classic method (only `script.google.com` and `script.googleusercontent.
com` URLs are allowed as receivers). It never passes through SheetLinkÌtumọ̀ Yorùbá:’
s servers. If Ìtumọ̀ Yorùbá: – and only if Ìtumọ̀ Yorùbá: – you tick “Score incoming
leads with AI” on the Lead Settings page (AI Lead Scoring, a hosted service), a 
scrubbed copy of each submission is also sent over HTTPS to `https://sheetlinkwp.
com/api/sheetlinkwp/lead-score`. Every other feature of the plugin runs locally 
on your WordPress server.

### What happens if the Google Sheet is unavailable?

The submission is logged as failed and automatically retried up to 3 times (every
15 minutes). You can also retry manually from the Retry Queue page.

### Is SheetLink a free Zapier alternative?

For form-to-spreadsheet delivery, yes. Zapier charges per task on a paid plan. SheetLink
delivers unlimited form submissions from your WordPress site directly to Google 
Sheets at no cost Ìtumọ̀ Yorùbá: – no per-task fees, no subscription, no registration.
You own the entire pipeline.

### Does SheetLink work with Fluent Forms, Formidable, Ninja Forms and the others?

Yes. All 12 supported form plugins work in the free plugin with the same rule editor,
field mapping, delivery log and retry queue. Step-by-step guides for each are at
[sheetlinkwp.com/how-to](https://sheetlinkwp.com/how-to).

### Can I send WooCommerce orders to Google Sheets?

Yes, with WooCommerce Sync in the separate SheetLink Pro plugin. It pushes orders(
created, completed, refunded), customers, and product catalogue changes (price, 
SKU, stock, status) to Google Sheets in real time. The free plugin covers form submissions.

### How is SheetLink different from single-form connectors?

Most form-to-Sheets plugins handle one form builder, so a site with two builders
needs two connectors. SheetLink supports 12 form plugins from a single admin interface,
includes an automatic retry queue that recovers failed deliveries, captures UTM 
and click-ID parameters for marketing attribution, runs local analytics on your 
own WordPress database, and ships a guided setup wizard that takes new installs 
from zero to a working Google Sheet in about three minutes.

### Does SheetLink work with WordPress Multisite?

Yes. The free plugin includes a network-admin overview of all subsites. The Agency
Dashboard and bulk site management are part of the separate SheetLink Pro plugin
on the Agency plan.

## Àwọn àgbéyẹ̀wò

![](https://secure.gravatar.com/avatar/6d03fc76f4297d98582b58e3978cff302aad8b8912a8d585b8e6b1e653e21348?
s=60&d=retro&r=g)

### 󠀁[Great Support](https://wordpress.org/support/topic/great-support-6750/)󠁿

 [suzbrit1](https://profiles.wordpress.org/suzbrit1/) Ọwẹ́wẹ̀ 20, 2026

Excellent customer support. Installed today and had a issue with data not syncing
to the Google Sheet. Emailed, got a reply within two hours and the problem was fixed.
Many thanks to Paul for his fast and friendly response.

 [ Ka gbogbo àgbéyẹ̀wò 1 ](https://wordpress.org/support/plugin/sheetlink-forms/reviews/)

## Àwọn Olùkópa & Olùgbéejáde

“SheetLink Forms for Google Sheets and Excel” jẹ́ ètò ìṣàmúlò orísun ṣíṣí sílẹ̀.
Àwọn ènìyàn wọ̀nyí ti ṣe ìkópa sí plugin yìí.

Àwọn Olùkópa

 *   [ sheetlink ](https://profiles.wordpress.org/sheetlink/)

[Túmọ̀ “SheetLink Forms for Google Sheets and Excel” sí èdè rẹ.](https://translate.wordpress.org/projects/wp-plugins/sheetlink-forms)

### Ṣe o nífẹ̀ẹ́ sí ìdàgbàsókè?

[Ṣàwárí koodu](https://plugins.trac.wordpress.org/browser/sheetlink-forms/), ṣàyẹ̀wò
[ibi ìpamọ́ SVN](https://plugins.svn.wordpress.org/sheetlink-forms/), tàbí ṣe àgbékalẹ̀
sí [àkọsílẹ̀ ìdàgbàsókè](https://plugins.trac.wordpress.org/log/sheetlink-forms/)
nípasẹ̀ [RSS](https://plugins.trac.wordpress.org/log/sheetlink-forms/?limit=100&mode=stop_on_copy&format=rss).

## Àkọsílẹ̀ àwọn àyípadà

#### 1.18.2

 * Added: the one-click Google destination can write many rows in a single request.
   SheetLink Pro 1.1.2 uses it to import past entries in batches Ìtumọ̀ Yorùbá: –
   several hundred entries a minute instead of about 25. New submissions are sent
   exactly as before, one row each. Rules that use Update Mode or send some rows
   to another tab keep writing one row at a time, because each row there needs its
   own decision.

#### 1.18.1

 * Fixed: the Lead InboxÌtumọ̀ Yorùbá: ’s Google Sheet status sync (Lead Settings,“
   Keep each leadÌtumọ̀ Yorùbá: ’s status and owner in its row”) never did anything.
   A lead was never linked to the row its submission landed on, the code that writes
   to that row was missing, and rows on different tabs could not be told apart. 
   Now: when a submission is written to your one-click Google Sheet, its lead is
   linked to that row on that ruleÌtumọ̀ Yorùbá: ’s tab; changing the leadÌtumọ̀
   Yorùbá: ’s status or owner in the Lead Inbox writes it to the row, adding “Status”
   and “Assigned To” columns to the tab the first time if it does not have them.
 * Changed: the switch for the status sync is no longer greyed out without a licence.
   Writing lead status to your sheet works on its own; edits made in the sheet come
   back to the lead with Two-Way Sync in SheetLink Pro 1.1.1.
 * Changed: the Lead Inbox database gains one column (the sheet tab a leadÌtumọ̀
   Yorùbá: ’s row is on). It is added automatically on update.

#### 1.18.0

 * Changed: on the one-click Google destination, a new tab now gets a Timestamp 
   column when the rule has “Include timestamp column” ticked (the default), and
   every row fills it with the submission time. The box used to do nothing for one-
   click tabs, so rows carried no date. Tabs that already exist are not changed 
   Ìtumọ̀ Yorùbá: – their own header row still decides the columns Ìtumọ̀ Yorùbá:–
   so to add dates to an existing tab, add a column headed “Timestamp”.
 * Added: the building blocks SheetLink Pro 1.1.0 uses for Import past entries Ìtumọ̀
   Yorùbá: – a way to deliver an entry your form plugin saved earlier through a 
   rule, with its original date, without the alerts, conversions or Lead Inbox entry
   a new submission triggers, plus a place on each rule card for companion plugins
   to add a button. Nothing changes in this plugin on its own.
 * Changed: sending a row and recording it in the Sync Log now share one definition
   of a successful delivery. No change in behaviour.

#### 1.17.6

 * Fixed: on the Connect Google page, a field mapping typed as the labels shown 
   on the form (“Name”, “Comment/Message”) delivered a row of empty cells. WPForms,
   Gravity Forms and most other builders send fields under a generated key (“name”,“
   comment-message”), and the mapping was looked up by exact key only Ìtumọ̀ Yorùbá:–
   so every column came out blank, Google accepted the empty row, and the Sync Log
   showed a green HTTP 200. Send Test did not show it because its test row is keyed
   by the column names. A typed mapping is now matched to the submitted fields the
   same way routing and update mode already are: by key, or by the label as it appears
   on the form. If a typed entry matches nothing, the automatic name match fills
   that column instead of blanking it.
 * Changed: the mapping boxes on the Connect Google page now say a field label or
   a field key both work.

#### 1.17.5

 * Fixed: the “Google Sheets Ìtumọ̀ Yorùbá: – one-click” destination label ran into
   the Route column on the Dashboard, the Sync Log, the Retry Queue and Webhook 
   Health tables. Badges in those tables now wrap inside their own column, the “(
   recommended)” hint is shown only in the destination dropdown where it belongs,
   and “one-click” no longer breaks across two lines.
 * Changed: the plugin listing screenshots now show the current setup flow Ìtumọ̀
   Yorùbá: – the five-step guide, Connect Google, the three-field rule editor, the
   delivery log and the dashboard.

#### 1.17.4

 * Fixed: connecting a Microsoft 365 account for the Excel Online destination failed
   with “Could not verify the Microsoft connection bundle” on every site except 
   our own test installs. The connection was signed with a shared secret that no
   customer site ever received. It is now signed with a key the plugin can verify
   on its own, the same way the one-click Google connection already works. No settings
   change is needed Ìtumọ̀ Yorùbá: – open SheetLink -> Excel Online and click Connect
   Excel again.
 * Fixed: on the Connect Google page, saving a ruleÌtumọ̀ Yorùbá: ’s field mapping
   now pins the rule to the tab whose headings you mapped against. Before, a rule
   that had never delivered could be handed a brand-new tab seeded from the formÌtumọ̀
   Yorùbá: ’s field keys on its first delivery, so the mapping form suddenly showed
   field keys instead of your headings and the rows never reached the tab shown 
   as connected.
 * Fixed: deleting a sync rule now clears the tab it had claimed on the one-click
   Google destination. A deleted ruleÌtumọ̀ Yorùbá: ’s leftover entry used to keep
   the default tab “taken”, which pushed its replacement rule onto a new tab.

#### 1.17.3

 * Fixed: on the one-click Google destination, the sheetÌtumọ̀ Yorùbá: ’s own header
   row is now the authority for columns. SheetLink reads row 1 of the tab when a
   sheet is chosen, when the settings are saved, and on each delivery Ìtumọ̀ Yorùbá:–
   so a sheet you brought with your own headings, or one you reordered or renamed
   afterwards, gets every value under the right heading. Previously it wrote against
   a column list captured from the first submission and never looked at the sheet
   again.
 * Added: “Re-read columns from the sheet” on the Connect Google page, per rule 
   and for the default tab, for right after you change a header row.
 * Fixed: saving a ruleÌtumọ̀ Yorùbá: ’s field mapping on the Connect Google page
   wiped that ruleÌtumọ̀ Yorùbá: ’s stored tab and columns, so the next submission
   could be written against a freshly guessed column list.
 * Changed: the rule editorÌtumọ̀ Yorùbá: ’s Field Mapping (under Advanced options)
   now appears only for the manual Apps Script method. A one-click rule shows where
   its mapping actually lives instead Ìtumọ̀ Yorùbá: – it was easy to fill in the
   wrong one and see no effect.

#### 1.17.2

 * Changed: one-click Google is now the default destination for a new rule and is
   listed first as “Google Sheets Ìtumọ̀ Yorùbá: – one-click (recommended)”. The
   manual method is still available as “Google Sheets Ìtumọ̀ Yorùbá: – manual script(
   advanced)”. Existing rules are not changed.
 * Changed: the Apps Script fields (Receiver URL, the Get Script button, the re-
   deploy warning) now only appear on rules that use the manual method. One-click
   rules show their destination instead.
 * Changed: the rule editor opens with just the essentials Ìtumọ̀ Yorùbá: – name,
   form plugin, destination. Field mapping overrides, Update Mode, conditional routing
   and extra destinations sit under “Advanced options”, which opens automatically
   when you edit a rule that uses them.
 * Changed: the “Google Sheets (OAuth)” menu item is now “Connect Google”, with 
   an introduction written for people rather than developers.
 * Added: the setup guide can be reopened Ìtumọ̀ Yorùbá: – there is a Setup guide
   button on the Dashboard and in the empty Sync Rules screen. It used to run once
   after activation and could never be found again.
 * Changed: Features page descriptions rewritten in plain language, with the technical
   detail folded under “How it works” on each card.
 * Added: a sheetlink_rule_editor_after_source action under the Form plugin dropdown
   so companion plugins can explain a short list (SheetLink Pro 1.0.4 uses it).

#### 1.17.1

 * Fixed: on the one-click Google (OAuth) destination Ìtumọ̀ Yorùbá: – the default
   connection method Ìtumọ̀ Yorùbá: – Duplicate PreventionÌtumọ̀ Yorùbá: ’s reroute
   tab and conditional routingÌtumọ̀ Yorùbá: ’s resolved tab were ignored, so rows
   always landed on the ruleÌtumọ̀ Yorùbá: ’s main tab. Both are now honoured, matching
   the classic Apps Script path.
 * Fixed: Duplicate PreventionÌtumọ̀ Yorùbá: ’s suppress mode never suppressed duplicates
   on the one-click Google destination.
 * Fixed: routing conditions, Duplicate Prevention keys and Update Mode keys now
   match field names the way your form plugin actually emits them (exact key, normalized
   key, or field label). Previously a key typed the way the form displays it could
   silently match nothing Ìtumọ̀ Yorùbá: – and Update Mode quietly appended new 
   rows instead of updating.
 * Fixed: saving a rule whose id no longer exists now reports an error instead of
   reporting success and silently discarding what you typed.
 * Fixed: duplicate submissions suppressed by Duplicate Prevention are now labelled
   distinctly in the Sync Log instead of appearing as ordinary successful deliveries.
 * Changed: the Retry Queue page no longer claims every submission was delivered
   when the queue is empty Ìtumọ̀ Yorùbá: – it reports only what the queue can vouch
   for, and links to recent non-retryable failures in the Sync Log.

#### 1.17.0

 * Changed: **every paid feature has moved into SheetLink Pro, a separate plugin
   downloaded from sheetlinkwp.com.** This plugin now contains no locked or licence-
   gated functionality, in line with the WordPress.org plugin guidelines. Advanced
   Routing, White-Label, Branded Reports, Agency Dashboard, Role Access, WooCommerce
   Sync, Extra Integrations, Multi-CRM Routing, Two-Way Sync and Bulk Site Management
   all live in SheetLink Pro now. **If you have a licence and used any of these,
   install SheetLink Pro and everything comes back exactly as it was** Ìtumọ̀ Yorùbá:–
   same settings, same licence key, nothing to reconfigure. A notice with a download
   link appears in your admin after updating.
 * Changed: choosing Excel Online, Airtable or Notion as a ruleÌtumọ̀ Yorùbá: ’s
   ONLY destination is now offered by SheetLink Pro. The free mirrors to all three
   destinations are unchanged, and any existing rule already set up that way keeps
   delivering.
 * Changed: the Features page now lists this pluginÌtumọ̀ Yorùbá: ’s own (all free)
   features; SheetLink Pro adds its cards to the same page when installed.
 * Changed: readme rewritten Ìtumọ̀ Yorùbá: – every external service the plugin 
   can contact is now documented individually under “External services”, with what
   is sent, when, and links to each providerÌtumọ̀ Yorùbá: ’s terms and privacy 
   policy.
 * Fixed: a number of request values (credentials, field mappings, phone numbers,
   template and recipient fields) are now sanitized at the moment they are read,
   not only when used. Partial form-abandonment payloads and network templates are
   sanitized recursively after decoding.
 * Changed: changelog entries older than 1.16.0 moved to changelog.txt, bundled 
   with the plugin.
 * Tested up to WordPress 7.1.

#### 1.16.1

 * Changed: the pluginÌtumọ̀ Yorùbá: ’s display name is now “SheetLink Forms for
   Google Sheets and Excel” in both the readme and the plugin header, so the two
   match and the name leads with the pluginÌtumọ̀ Yorùbá: ’s own brand rather than
   a trademark.
 * Changed: the readme description has been shortened. It was long enough to be 
   trimmed when the directory parsed it, which meant part of it was never displayed.
 * Changed: changelog entries older than 1.14.8 moved to changelog.txt, bundled 
   with the plugin. No functional change.
 * Fixed: five places where a value was printed into admin HTML or a digest email
   without escaping, including the white-label name and accent colour.
 * Fixed: failed deliveries to Meta CAPI, Twilio SMS and Excel wrote the providerÌtumọ̀
   Yorùbá: ’s error message or response body to the PHP error log on every failure,
   in production. Those can carry the request URL and its credentials, or the submitted
   leadÌtumọ̀ Yorùbá: ’s own details. Now logged only under WP_DEBUG, and only the
   status Ìtumọ̀ Yorùbá: – matching what the Airtable and Notion destinations already
   did.

#### 1.16.0

 * Added: **the Lead Inbox now actually fills up.** The Leads, Lead Settings and
   Lead Reports screens arrived in 1.15.0, and nothing ever appeared in them, because
   SheetLink never announced a submission for them to record. Every submission now
   becomes a lead Ìtumọ̀ Yorùbá: – **including submissions that match no sync rule
   at all, and ones whose delivery fails**, which are exactly the enquiries that
   used to vanish without trace. Existing leads are unaffected; capture starts from
   this update.
 * Added: **AI Lead Scoring, working end to end.** Each new lead is rated 0-100 
   with a hot / warm / cold band and a one-line explanation of the rating, shown
   in the Leads list, on the lead itself, and in the CSV export. You can sort the
   list by score. Off until you switch it on in Lead Settings, and it only ever 
   scores leads captured after you do Ìtumọ̀ Yorùbá: – it will not work through 
   your back catalogue or spend your monthly allowance on old enquiries.
 * Added: **contact details are removed before anything is sent for scoring.** Names
   and phone numbers are replaced with a placeholder, email addresses are reduced
   to their domain (so “works at a company” survives but the person does not), and
   an email address or phone number typed into a message is redacted in place. The
   rating quality is unaffected Ìtumọ̀ Yorùbá: – scoring reads intent, not identity.
 * Added: **a Setup item in the SheetLink menu, so the setup guide is always one
   click away.** Activating the plugin already takes you straight into it, but that
   only happens once Ìtumọ̀ Yorùbá: – and it is skipped entirely if you activate
   several plugins together, install over WP-CLI, or switch SheetLink off and back
   on. Anyone who missed that first-run screen previously had no way back to it.
 * Added: **delivery outcomes now attach to the lead, including recovery.** A delivery
   that failed and then succeeded on a later retry used to read as “failed” on that
   lead forever, even though the row was sitting in your sheet. The lead now shows
   it recovered, and its history says when.
 * Changed: **AI scoring is switched on in Lead Settings.** It was previously only
   offered on the Analytics page, which does not exist unless you have separately
   enabled the free Local Analytics feature Ìtumọ̀ Yorùbá: – so a customer whose
   plan included scoring had no way to reach the switch. The Analytics page now 
   shows whether AI consent is on and links to it.
 * Changed: **scoring and the AI extras use your existing licence, not a second 
   token.** The “API Token” field on the Analytics page is gone. It asked you to
   paste in a value SheetLink already had, and leaving it blank silently disabled
   features you were paying for.
 * Fixed: **uninstalling left settings behind in your database.** Sixteen options
   survived a full uninstall, including a stored Google Sheets two-way state, every
   Lead Inbox setting, and cached diagnostics. Deleting the plugin now removes them.**
   Your captured leads are still kept on purpose** Ìtumọ̀ Yorùbá: – removing a plugin
   should not delete the enquiries you collected, so the three lead tables are only
   dropped if you explicitly ask for that.
 * Fixed: hidden `_sheetlink_id` column groundwork for linking a spreadsheet row
   back to its lead. It is only sent to sheets whose Apps Script is current, so 
   nothing appears in your existing sheets and no redeploy is required; if you do
   update your script it arrives hidden.

## Àkójọpọ̀ Meta

 *  Ẹ̀yà **1.18.2**
 *  Ìgbàgbọ́hùn tó kẹ́yìn **ọjọ́ 4 sẹ́yìn**
 *  Àwọn ìgbéwọlẹ̀ tó ṣiṣẹ́ **100+**
 *  Ẹ̀yà WordPress ** 5.8 tàbí ju bẹ́ẹ̀ lọ **
 *  Dánwò dé **7.1.2**
 *  Ẹ̀yà PHP ** 7.4 tàbí ju bẹ́ẹ̀ lọ **
 *  Èdè
 * [English (US)](https://wordpress.org/plugins/sheetlink-forms/)
 * Àwọn àmì
 * [excel](https://yor.wordpress.org/plugins/tags/excel/)[form entries](https://yor.wordpress.org/plugins/tags/form-entries/)
   [form submissions](https://yor.wordpress.org/plugins/tags/form-submissions/)[Google Sheets](https://yor.wordpress.org/plugins/tags/google-sheets/)
   [google sheets integration](https://yor.wordpress.org/plugins/tags/google-sheets-integration/)
 *  [Ìwòye Tó Péye](https://yor.wordpress.org/plugins/sheetlink-forms/advanced/)

## Àwọn ìbò

 5 lára àwọn ìràwọ̀ 5.

 *  [  1 5-star review     ](https://wordpress.org/support/plugin/sheetlink-forms/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/sheetlink-forms/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/sheetlink-forms/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/sheetlink-forms/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/sheetlink-forms/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/sheetlink-forms/reviews/#new-post)

[Wo gbogbo àwọn àgbéyẹ̀wò](https://wordpress.org/support/plugin/sheetlink-forms/reviews/)

## Àwọn Olùkópa

 *   [ sheetlink ](https://profiles.wordpress.org/sheetlink/)

## Ìrànlọ́wọ́

Nǹkan wà tí o fẹ́ sọ? Ṣé o nílò ìrànlọ́wọ́?

 [Wo àpéjọ ìrànlọ́wọ́](https://wordpress.org/support/plugin/sheetlink-forms/)