Landing page with a COD order form that sends orders to Google Sheets

Yes: LandEmpire hosts a one-product landing page with a cash-on-delivery order form, and a short Apps Script in your own Google Sheet adds every order as a new row within seconds, with no Shopify store and no Zapier. The connection is part of the Pro plan ($19 a month) and of the 7-day Pro trial that a new account gets without a card.

Amazon, AliExpress, eBay, Shopify or any online store. No sign-up — see the result right away.

No signup needed to try · 7 days of Pro free, no card

How the Google Sheets connection works

LandEmpire never asks for your Google password or for access to your Drive. Instead, you put a small script inside the spreadsheet itself and give LandEmpire the address of that script. Our server sends each new order to that address, and the script writes it into the sheet it is attached to.

The script carries a private token for your account. A Google Apps Script web app has to be open to receive data, so the token is what tells your sheet that a request really came from LandEmpire: anything without it is rejected. Setup takes a few minutes:

  • In LandEmpire, open Settings > CRM > Google Sheets and copy the script
  • In your spreadsheet, open Extensions > Apps Script, replace everything in the editor with the script and save
  • Click Deploy > New deployment, choose Web app, set Execute as: Me and Who has access: Anyone
  • Paste the web app URL (it ends in /exec) back into LandEmpire and check the connection: one test row appears, and you can delete it

What each order row contains

On the first order the script creates a sheet called Leads with a bold, frozen header row. Column names are in English for international accounts. Each order becomes one row:

  • Date and time in your account's time zone, and a unique Lead ID
  • The landing page name and its URL
  • Name and phone
  • Form fields: your extra fields, such as address, size or color, in one cell as label: value pairs
  • The bundle the buyer picked and the quiz answers, if the page has those blocks
  • utm_source, utm_medium, utm_campaign, utm_content, utm_term, sub1 and the click ID (clickid, fbclid, ttclid or gclid)
  • Two delivery columns (city and branch) for Ukrainian pages with Nova Poshta or Ukrposhta, which stay empty for other countries

Work the orders right in the sheet

Values are written as plain text, so a phone number keeps its leading + and a form entry that starts with = never turns into a formula. The script finds columns by their header, not by position, so you can add your own columns (Status, Courier, Tracking, Notes), sort and color rows and move columns around. New orders still land under the right headers, and if LandEmpire adds a column later, it goes at the end.

The connection only writes. It does not read the sheet back, so a status you type in the sheet stays in the sheet and does not change the order in LandEmpire.

Old orders, duplicates and failed sends

Connected the sheet after orders started coming in? Run the export of old orders: LandEmpire sends your existing orders oldest first, in batches of 50, up to 5,000 orders. Exporting twice is safe, because the script skips any row whose Lead ID is already in the sheet. Orders hidden by the monthly limit of the Free or Start plan are not exported, just as they are not shown in the dashboard.

If Google does not answer or returns a server error, LandEmpire retries once after a few seconds. A send that still fails is shown in the integration settings with the reason, for example access not set to Anyone, and you can send that order again. A failed send does not lose the order: it is already saved in your dashboard and goes to your email or Telegram notifications, if you turned them on, whether or not the sheet accepted it.

The order form that feeds the sheet

The sheet is only as clean as the form. Every LandEmpire order form has name and phone, plus up to 8 fields of your own (short text, long text or a dropdown). Set the buyer's country in the page settings and the form checks phone numbers in that country's format; one click in the form block adds the address fields couriers need there. There are presets for 77 countries.

Phone numbers are checked before the order is sent, and obvious junk such as too few digits or one repeated digit is rejected. A double tap does not create two rows: the same name and phone on the same page within five minutes count as one order. You can add a consent checkbox and a Confirm in WhatsApp button that opens a chat with you after the order. Try the form on a real product page on the demo, no account needed.

Other ways to get orders into Google Sheets (as of November 2026)

If all you need is rows in a sheet, there are several options. The difference is whether you also get a product page that sells, and whether you need a Shopify store. Tool - needs Shopify? - COD order form? - price:

  • Google Forms - no Shopify - a generic form that saves responses to Sheets natively, but no product page, price block or countdown - free
  • Tally - no Shopify - a form builder whose free plan includes the Google Sheets integration, not a sales page - free, Pro $24 a month
  • EasySell COD Form - needs Shopify - a COD order form for Shopify stores with Google Sheets sync on the free plan (60 orders a month) - paid plans from about $10 a month in the Shopify App Store
  • Carrd - no Shopify - custom forms need Pro Plus and send to email, a URL, Zapier, Make, n8n or Airtable, so Sheets needs one of those in between - Pro Plus $49 a year
  • LandEmpire - no Shopify - a one-product landing page with a COD order form and a built-in Google Sheets connection - Pro $19 a month, free plan without Sheets

What it doesn't do

Google Sheets is a Pro and Business feature, and part of the 7-day Pro trial; on Free and Start, orders go to the dashboard and, if you turn them on, to email and Telegram. The connection depends on your Apps Script web app: it must stay deployed with access set to Anyone, and Google's daily Apps Script quotas for your account apply. It adds new rows only and does not sync edits or statuses back from the sheet.

There is no card checkout on the page: buyers leave their details for cash on delivery or payment after confirmation, and you can send them to your own payment link after the order. Plans are billed in USD through Paddle, our merchant of record (cards, Apple Pay, Google Pay, PayPal). Pages are left-to-right only; Arabic and Hebrew layouts are not supported yet.

Frequently asked questions

How do I send landing page orders to Google Sheets without Zapier?

Use a builder that writes to the sheet directly. In LandEmpire you paste a short Apps Script into your spreadsheet, deploy it as a web app and paste its URL into Settings > CRM > Google Sheets. Each new order then becomes a row, with no Zapier, no Make and no Google API keys.

Can I collect cash on delivery orders in Google Sheets without Shopify?

Yes. LandEmpire hosts the product page and the order form itself, so there is no store to run. Buyers leave a name, phone and address for cash on delivery, and each order is added to your sheet within seconds.

Which LandEmpire plan includes Google Sheets?

Pro ($19 a month or $190 a year) and Business ($39 a month). A new account gets 7 days of Pro without a card, so you can connect a sheet and test it before paying. On Free and Start, orders arrive in the dashboard and, if you turn them on, by email and Telegram.

Does LandEmpire get access to my Google account?

No. The script runs in your own Google account and writes only to the spreadsheet it is attached to. LandEmpire only knows the web app address, and the script rejects any request that does not carry your account's private token.

Why does LandEmpire say my sheet is closed or the address is wrong?

Usually the deployment is not set to Who has access: Anyone, or you pasted the spreadsheet link or the /dev test link instead of the /exec web app URL. LandEmpire tells you which of these it sees. Set access to Anyone, deploy, and paste the address that ends in /exec.

Can I export orders I received before connecting the sheet?

Yes, up to 5,000 past orders, oldest first. Running the export again does not create duplicates, because rows are matched by Lead ID.

What if I already have a Shopify store?

Then a Shopify COD form app with Sheets sync, such as EasySell, keeps orders inside Shopify. LandEmpire fits when you want standalone landing pages for ads without a store; see page builders that work without Shopify.

More guides

Build my COD order page

Free plan forever · paid plans from $8/month