SheetLink Forms beta

Wix forms to Excel

Drop a plain HTML form into a Wix code embed and every submission is inserted as a live row in an Excel table on OneDrive - no Zapier tasks, no CSV exports.

Wix files form submissions into its own dashboard and contact list, which works right up until your actual system of record is an Excel workbook on Microsoft 365. Then you are stuck exporting and re-importing, or renting an automation layer - Zapier, Power Automate - that charges for every submission it moves. Neither is a pipeline; both are a tax.

SheetLink Forms goes direct. A plain HTML form on your Wix site posts to a permanent hosted endpoint, https://sheetlinkforms.com/f/YOUR_TOKEN, and an asynchronous worker inserts each submission into your Excel table through a Microsoft Graph table-row insert. The row lands in the real workbook on OneDrive - open it in Excel on the web or the desktop app and it is already there, and Power BI can sit on the same workbook for a live lead dashboard. No other hosted form backend offers a native Excel Online destination. Retries run at 5 minutes, 30 minutes, and 2 hours, every submission appears in a delivery log, and a formula-injection guard escapes leading =, +, -, and @ in cell values.

Spam is handled by quarantine, not deletion: suspicious submissions wait for one-click review, so a false positive costs seconds rather than a lead. Google Sheets is also available as a destination for forms that should live there. The pipeline is described on how it works, and the live demo feeds a public sheet you can watch.

The best path for Wix

The best path for Wix is a plain HTML form added through Wix's code features, with its action pointing at your /f/ endpoint. To be plain about the requirement: Wix gates serious custom code behind its premium tiers - the site-level Custom Code panel requires a premium plan with a connected domain. The Embed HTML element (Add Elements -> Embed Code -> Embed HTML) is the practical carrier for the form itself; note that Wix renders it inside an iframe, which is fine for submissions but limits what sl.js can see of the surrounding page (more in the FAQ).

Endpoint behavior, field mapping, and the embed script are documented in the developer docs.

<form action="https://sheetlinkforms.com/f/YOUR_TOKEN" method="POST"> <input name="_slhp" tabindex="-1" autocomplete="off" style="position:absolute;left:-9999px"> <label>Name <input name="name" required></label> <label>Email <input name="email" type="email" required></label> <label>Message <textarea name="message"></textarea></label> <button type="submit">Send</button> </form> <script src="https://sheetlinkforms.com/sl.js" data-token="YOUR_TOKEN"></script>

1. Connect your Microsoft account and pick a table

Create a form in the SheetLink Forms dashboard and connect Excel Online via OAuth - a Microsoft 365 account or a personal Microsoft account with OneDrive, whichever owns the workbook. Pick the workbook and the Excel table that should receive rows. SheetLink Forms syncs the column names from that table, and the table's columns define the row shape, so create the table with your columns before testing (select the headers in Excel, press Ctrl+T). This is the one difference from the Google Sheets destination, where empty sheets get their header row seeded automatically; Google Sheets is selectable on the same screen if you want it.

2. Add an Embed HTML element in the Wix editor

  1. In the editor, open Add Elements.
  2. Choose Embed Code -> Embed HTML.
  3. Paste the form snippet, keeping the hidden _slhp honeypot input, and set the action to your endpoint URL.
  4. Drag the element's frame large enough that the whole form is visible - the embed renders inside an iframe with a fixed size.

3. Name your fields after your table columns

Each input's name becomes a field, and matching against your Excel table's columns is name-based, case- and punctuation-insensitive - Email, email, and E-mail all land in Email. When a name cannot match a column, set an explicit per-field mapping in the dashboard rather than fighting the markup.

4. Decide where sl.js should live

Inside the Embed HTML iframe, sl.js still gives you AJAX submit with inline success text, honeypot handling, and the timing signal. What it cannot do from inside an iframe is read the parent page's URL, so automatic UTM and click-ID capture is limited on this path. If ad attribution matters and your plan includes the site-level Custom Code panel (premium plan with a connected domain), place the form and sl.js there so the script sees the real page URL and persists attribution across pages - and give your Excel table columns for the attribution fields you want to keep.

5. Publish, test, and open the workbook

Publish the site and submit a test. With sl.js in the embed, success text appears inline; a bare form follows a 303 redirect to the hosted thank-you page or your custom redirect URL. Open the workbook in Excel on the web or the desktop app - the row was inserted into the live table, so there is nothing to import. Then check the delivery log in the dashboard, plus the quarantine view, where anything the heuristics flagged waits for one-click approval instead of being dropped.

FAQ

Which Wix plan do I need?

The Embed HTML element carries the form on most Wix sites, but Wix's site-level Custom Code features - the route you want for full attribution capture - require a premium plan with a connected domain. On a free Wix site, treat the iframe embed as the available path and upgrade when attribution starts to matter.

Does this write to my actual Excel file, or export something I import?

It writes to the actual file. Each submission is inserted into your Excel table with a Microsoft Graph table-row insert, so the row exists in the workbook on OneDrive the moment delivery completes - instantly visible in Excel on the web and the desktop app. Because it is the same workbook, Power BI can connect to it and your Wix form becomes the front end of a live dashboard.

Do I need a Microsoft 365 subscription?

Not necessarily. You connect a Microsoft 365 account or a personal Microsoft account with OneDrive - either can own the workbook. What must exist is an Excel table inside that workbook, because the table's columns define the row shape: SheetLink Forms syncs the column names from your table rather than seeding headers the way the Google Sheets destination does.

Is it free on the SheetLink side?

Yes - free during the beta, invite required via the waitlist. No per-submission or per-task fees, ever, which is precisely what the Zapier and Power Automate routes to Excel cannot say. Planned post-beta pricing (planned, not final): a free tier around 50 submissions a month, paid around $15-19/mo, unmetered.

Will UTM parameters and ad click IDs be captured on Wix?

Honestly: it depends on where the form lives. sl.js captures utm_* and gclid/wbraid/gbraid/fbclid/msclkid from the page URL and persists them in localStorage - but inside Wix's Embed HTML iframe it cannot see the parent page's URL, so capture is limited there. Placing the form via the site-level Custom Code panel (premium plans) restores full attribution, and matching columns in your Excel table pick the values up automatically.

Does this replace the Wix Forms app?

For the forms you embed, yes - submissions go to your endpoint and your Excel table, not to the Wix dashboard or contact list. Forms you leave on the Wix Forms app keep working as before, and the two can coexist on one site.

How is spam handled?

The _slhp honeypot in the snippet is the only check that marks spam outright. Everything else - per-form and per-IP rate limits, an origin allowlist, content heuristics for link stuffing, disposable email domains, and empty payloads, plus optional Cloudflare Turnstile - routes suspicious submissions to quarantine for one-click review. Approve and the row is inserted; nothing is silently dropped.

Also on: Wix · Squarespace · Plain HTML · Carrd

Request an invite See the live demo