Every Tooliqo template ships with a newsletter form already built in. All it needs is a place to store each subscriber's email address. This guide explains how the system works and how to connect it, for free, to a Google Sheets spreadsheet you own: through a Google Form, which needs no code at all, or, in templates that support it, through a small Apps Script that can also send welcome emails and your new posts automatically. No paid service, and no changes to your template code.
Just want the setup steps?
The newsletter setup guide takes you through either method one stage at a time, with illustrated screens, link checks and ready-made code, in six languages.
How the Tooliqo newsletter works
Understanding the flow makes setup easier and helps you spot a mistake right away.
- When a visitor clicks Subscribe, the template sends the address in the background, so the visitor never leaves your page.
- The address goes to the connection you set up, a Google Form or an Apps Script web app, and appears as a new row in a Google Sheets spreadsheet in your own account, usually within seconds.
- You set the connection in Blogger's Layout, inside the newsletter widget. The template's code never changes.
- A Google Form only collects the list, and you send your newsletter yourself. The Apps Script can also send a welcome email and your new posts automatically.
Google Form or Apps Script?
| Google Form | Apps Script | |
|---|---|---|
| Setup | No code: create a form and copy one link | Paste a ready-made script and deploy it once |
| Works with | Both newsletter widgets | Newsletter Settings only |
| What your sheet records | Email and date, plus any optional questions | Email, date, language, page, site, source and status |
| Duplicate signups | Recorded again | Rejected automatically |
| Emails to subscribers | You send them yourself | Optional welcome email and new posts, sent automatically |
| Unsubscribing | You delete the row | A link in every email updates the status |
Part 1: Check which newsletter widget your template has
It takes ten seconds and decides the last step of the setup.
Blogger › Layout › look for “Newsletter”
| What you find in Layout | Examples | How you connect it |
|---|---|---|
Newsletter Settings, a list with the rows endpoint, form and consentUrl | Read Rich, SeoSpeed, Coming Soon | Paste a Google Form link in form, or an Apps Script address in endpoint |
A Newsletter widget in the footer whose content includes id="news-form" | Biz Pro, Blog Plus | Paste the form code built from your Google Form |
Both types use the same Google Form, so Parts 2 and 3 are identical for everyone. Only step 6 differs.
Not sure what you're looking at? The setup guide's first stage shows you where to look, then tailors every following step to your template.
Open the guidePart 2: Create the Google Form
Required. Done once.
Create a form with one Email question
Open Google Forms with the Google account that should own your subscriber list, click Blank form, and give it a name you'll recognize, such as “Newsletter – My Blog”. Visitors never see this name.
- Title the first question
Emailand set its type to Short answer. - Turn on Required.
- Optional but useful: open ⋮ under the question and choose Response validation › Text › Email address, so Google rejects anything that isn't an email.
Delete any other question Google added. One question is enough; optional extra questions are covered in One list for several blogs.
- Title the first question
Turn off everything that requires a Google sign-in
Settings › Responses
- Collect email addresses: Do not collect. Your own Email question already collects the address.
- Limit to 1 response: off.
- Restrict to users in your organization: off (Google Workspace accounts only).
Why this step matters most
Each of these options forces visitors to sign in with a Google account. Because your site submits the form in the background, Google silently rejects the submission: the visitor sees a confirmation, but nothing reaches your sheet.
Publish the form to anyone with the link
Publish › Manage › Responder view: Anyone with the link › Done › Publish
New Google Forms stay in draft until you publish them, and a draft refuses every submission. Once the form is published, the button at the top right reads Published: click it and check that Accepting responses is on.
An older form may still show a Send button instead. In that case, just make sure Accepting responses is on in the Responses tab.
Link the form to a Google Sheets spreadsheet
Responses › Link to Sheets › Create a new spreadsheet › Create
A spreadsheet opens with a Timestamp column and an Email column, in a sheet named Form Responses 1. From now on, this is your subscriber list.
Get an alert for every new subscriber
In the Responses tab, open ⋮ and choose Get email notifications for new responses.
Part 3: Copy the pre-filled link
This one link carries everything the template needs.
Get the pre-filled link
⋮ at the top of the form editor › Get pre-filled link
Type a test address containing
@, such asyou@example.com, in the Email question, then click Get link › Copy link. The link looks like this:https://docs.google.com/forms/d/e/1FAIpQLSd…Xw/viewform?usp=pp_url&entry.123456789=you@example.com
It contains the two values the template needs: the form ID, after
/d/e/, and the email field ID, theentry.followed by digits.Don't copy the address bar
The edit link in your browser (
/forms/d/…/edit) is not the one you need: it has no/e/, and its ID is different. Always use the pre-filled link; its form ID usually starts with1FAIpQL.Setup guidePaste this link into the setup guide and it checks it for you, warning you if something looks wrong before you go any further.
Part 4: Connect the form to your template
From Blogger's Layout. You won't open the HTML editor.
Paste the link or the code into the newsletter widget
Follow the variant that matches what you found in Part 1.
ATemplates with Newsletter Settings
Blogger › Layout › Newsletter Settings › ✎
Name (keep as is) URL (what to paste) endpointLeave #. This row is for the Apps Script (Part 5).formYour full pre-filled link from step 5 consentUrlYour privacy page, such as /p/privacy.html(#hides the line)That's all: the template extracts the form ID and the email field ID from the link itself. Templates with a popup also have an
autoOpenrow: the number of seconds before the popup opens on its own, or0to open it only from a Subscribe button.BTemplates with the footer Newsletter widget (
news-form)Blogger › Layout › Newsletter widget in the footer › ✎ › Content
Replace the widget's content with the code below. To do it by hand, change just two values: your form ID in place of
FORM_ID, and your email field ID in place ofentry.123456789.Setup guideSkip the manual part: paste your pre-filled link into the setup guide and it writes this whole code for you, in your blog's language.
<p>Get the latest tools and articles delivered to your inbox every week</p> <form action="https://docs.google.com/forms/d/e/FORM_ID/formResponse" id="news-form" method="POST"> <input type="email" name="entry.123456789" placeholder="Enter your email address" required="required" aria-label="Email address"/> <button type="submit"><i class="fa-solid fa-paper-plane"></i> Subscribe now</button> </form>
Three things not to change
id="news-form"is how the template recognizes the form and submits it without leaving the page. Without it, visitors are sent to a Google page.- The address ends with
formResponse, notviewform. name="entry.…"matches your email field ID digit for digit.
You can edit or translate the visible texts freely.
In both variants, save the widget, then save the Layout.
Test it with your own email
- Open your live blog, not the preview, and hard-refresh: Ctrl + F5, or Cmd + Shift + R on Mac.
- Subscribe with one of your addresses: a confirmation appears and you stay on the page.
- Open the spreadsheet: a new row with your email and the date should appear within seconds.
Google doesn't let a website read the result of a form submission, so the confirmation can appear even when something is wrong. This test is your only proof that addresses really reach your sheet. Delete the test row afterwards if you like.
Part 5: Go further with Apps Script
Optional. Only in templates with Newsletter Settings, through the endpoint row.
Instead of a Google Form, you can connect the newsletter to a small Apps Script attached to your spreadsheet. The template sends subscribers to it the same way, and the script adds what a form can't do:
- A Subscribers sheet with Date, Email, Language, Page, Site, Source and Status columns.
- Duplicates rejected automatically, even when someone subscribes from two of your blogs.
- An unsubscribe link in every email it sends, with the Status column updated on its own.
- Three modes you can switch at any time:
| Mode | What happens | Cost |
|---|---|---|
collect | Saves addresses to the sheet only. Nothing is sent. | Free |
free | Sends an instant welcome email, then your new posts, from your own Gmail. The script checks your blog every hour and groups up to three posts per email. | Free, within Google's daily limit (about 100 recipients a day for a free Gmail account). The rest go out the next day. |
service | Brevo: the script sends the welcome email and new posts through Brevo. Mailchimp: the script adds each subscriber to your audience, and Mailchimp sends the emails itself. | Depends on the service's plan; both offer a limited free plan. |
In short: paste the ready-made script into Extensions › Apps Script in your spreadsheet, deploy it as a Web app with Execute as: Me and Who has access: Anyone, then paste the address ending in /exec into the endpoint row. Opening that address in a browser should show newsletter endpoint ready. To change the mode later, add MODE (and SERVICE) under Project Settings › Script Properties: it applies to the next subscriber, with no redeployment.
If both endpoint and form are filled in, the template uses endpoint.
The full script and every screen are in the setup guide, which writes the script with your blog's details already filled in.
Open the guideOne list for several blogs
You don't need a separate newsletter for each blog. The same Google Form link, or the same /exec address, works everywhere: paste it into each blog's Layout and every subscriber lands in one sheet. To know where each one came from:
- Apps Script: nothing to do. Each row records the site, such as
myblog.blogspot.com, along with the language and the page. - Google Form in Newsletter Settings: add optional Short answer questions named Site and Language, and type
{site}and{lang}in them when you get the pre-filled link. The template fills them in on every blog. - Google Form in the
news-formwidget: this code doesn't fill placeholders. Add a Short answer question named Source, get itsentry.ID from a new pre-filled link, and add a hidden line carrying the blog's name inside each blog's form, before the button:
<input type="hidden" name="entry.987654321" value="blog-en"/>
Managing your subscriber list
- Where it lives: the Form Responses 1 sheet with a Google Form, or the Subscribers sheet with the Apps Script.
- Remove duplicates (Google Form): select the Email column, then Data › Data cleanup › Remove duplicates.
- Unsubscribe requests: with a Google Form, delete the person's row. With the Apps Script, the unsubscribe link updates the Status column by itself.
- Export: File › Download › Comma-separated values (.csv) gives you a file any email service can import.
Sending your newsletter
A Google Form only stores addresses. To send an issue, pick the option that fits the size of your list:
- Automatically: the Apps Script's
freeorservicemode sends a welcome email and your new posts for you (Part 5). - A small list, by hand: send from Gmail with the addresses in Bcc, never in “To”, so subscribers can't see each other. A personal Gmail account can reach about 500 recipients a day, and Bcc addresses count toward that limit.
- A growing list: import your CSV file into a service such as Brevo, Mailchimp or MailerLite. They add an unsubscribe link automatically and protect your sender reputation.
Respect your subscribers' privacy
Show a short line under the form explaining how you'll use the address, with a link to your privacy policy. In Newsletter Settings, that's the consentUrl row. In the news-form widget, add a line like this right after the button:
<small>We'll never share your email. <a href="/p/privacy.html">Privacy policy</a></small>
Many laws, including the EU's GDPR, require clear consent and an easy way to unsubscribe. And never share your spreadsheet's link: it contains your visitors' personal data.
Limits you should know
- No double opt-in: subscribers don't confirm their address, so a mistyped email can be recorded. Clean the list from time to time; email services also flag invalid addresses.
- A confirmation isn't proof of delivery with a Google Form, because Google doesn't return the result to your site. Test again after any change to the form.
- Gmail quotas: about 500 recipients a day when you send by hand, and about 100 a day for emails the Apps Script sends from a free account.
- Capacity: a spreadsheet holds up to 10 million cells, far more than any blog's list will ever need.
Troubleshooting
| What you see | Cause and fix |
|---|---|
| The form says subscriptions aren't open yet | Newsletter Settings: endpoint and form are both still #. Fill one of them (step 6) and save. |
| A confirmation appears, but nothing reaches the sheet | The form isn't published to anyone with the link (step 3), a setting forces sign-in (step 2), or the email field ID doesn't match. |
| Visitors are sent to a Google page | news-form widget: id="news-form" is missing or misspelled. |
| Google says the form is no longer accepting responses | Turn Accepting responses back on (step 3). |
| 404 error or “File not found” | You used the ID from the edit link instead of the one after /d/e/, or, in the news-form code, the address doesn't end with formResponse. |
| A row appears but the email is empty | The field ID doesn't match the Email question. Copy the pre-filled link again with an address containing @ (step 5). |
The /exec address doesn't show “newsletter endpoint ready” | Deploy the script as a Web app with Who has access: Anyone, and use the address ending in /exec. |
| Changes to the script don't take effect | Deploy › Manage deployments › Edit › Version: New version. The address stays the same. |
Emails stop partway through the day (free mode) | Gmail's daily quota has been reached. The script sends the rest the next day on its own. |
| The form doesn't appear on the site | The widget is hidden or the Layout wasn't saved. Save it, then hard-refresh the page. |
| The paper-plane icon doesn't show | It's purely decorative. Remove <i …></i> from the news-form code if your template doesn't load the icon library. |
Still stuck? Start again from the setup guide: it saves your progress in your browser and checks each link you paste.
Open the guideFrequently asked questions
Can I add a newsletter to Blogger for free?
Yes. Tooliqo templates include the form, and a Google Form or an Apps Script stores your subscribers in Google Sheets at no cost. The Apps Script can even email your new posts through Gmail.
What replaced Blogger's Follow by Email gadget?
Google switched off FeedBurner's email subscriptions in 2021, so Blogger's old Follow by Email gadget no longer sends anything. A form that saves subscribers to Google Sheets, with Gmail or an email service to send, is the usual replacement, and it's built into Tooliqo templates.
Do subscribers need a Google account?
No, as long as the form is published to anyone with the link and doesn't collect verified emails or limit responses to one per person.
Can I switch from a Google Form to the Apps Script later?
Yes, in templates with Newsletter Settings: fill in the endpoint row, and the template uses it instead of form. Subscribers collected by the form stay in the form's sheet.
Does Google Sheets send the emails?
No. A spreadsheet only stores the list. Emails go out through the Apps Script's modes, through Gmail, or through an email service.
Is there a shorter, step-by-step version of this guide?
Yes. The newsletter setup guide takes you through either method one stage at a time, with illustrated screens and ready-made code, in six languages.
Quick checklist
- You know which newsletter widget your template has: Newsletter Settings or
news-form. - The Google Form has one required Email question of type Short answer.
- “Collect email addresses” is set to Do not collect, and “Limit to 1 response” is off.
- The form is published to anyone with the link and accepting responses.
- The form is linked to a Google Sheets spreadsheet.
- Newsletter Settings: the full pre-filled link is in the
formrow.news-form: the code carries your form ID, ends withformResponse, keepsid="news-form"and uses yourentry.ID. - The Layout is saved, and the live site refreshed.
- A test subscription appeared as a row in the sheet.
- Apps Script (optional): the
/execaddress is inendpointand shows “newsletter endpoint ready”.
Want visitors to create accounts on your site, unlock protected downloads and rate your posts? Read the next guide: the Firebase sign-in tool.
Ready to connect your newsletter?
Open the setup guide in a new tab: it starts by checking which newsletter widget you have, then writes your code for you.
