Bharat AI Saathi
ServicesIndustriesSetupsHow we workGuidesFounderVPS HostingContactGlobal (USD)
WhatsApp +91 77352 68199
support@bharataisaathi.com
Mon–Sat 10:00–19:00 IST
Agentic Automation · Global catalog

Auto fill a Google Form from a Google Sheet with an AI assistant

How to auto fill a Google Form from a Google Sheet: pre-filled links built by an MCP-connected AI assistant, with a check step before sending.

Agentic Automation

To auto fill a Google Form from a Google Sheet, build a pre-filled link for each row: the form's URL plus one entry.<id> parameter per question. A formula can do that for clean data. An AI assistant connected to the Sheet over MCP does it for messy rows, drafts the message, and stops at a check step before anything goes out.

Use the free client intake form

What auto fill means for a Google Form

Google Forms cannot submit on someone's behalf. What it can do is open with answers already in place. You choose "Get pre-filled link" from the form's three-dot menu, fill in sample answers, and copy the URL. It looks like this:

https://docs.google.com/forms/d/e/FORM_ID/viewform?usp=pp_url&entry.1111111=Acme+Ltd&entry.2222222=jo%40acme.com

Each entry. number belongs to one question. Swap the values per client and you have a personal link. The client still opens it, checks the answers, and presses Submit. That click is useful, because it turns your data into theirs: they confirm or correct it.

The pain we hear about is the person who re-types the same company name, contact, plan and start date into a form every week, once for onboarding, once for a renewal, once for a feedback request. The data already sits in a Sheet. The typing is the waste.

Formula or assistant

If your Sheet is clean, you do not need an assistant. A formula in the link column does the job:

="https://docs.google.com/forms/d/e/FORM_ID/viewform?usp=pp_url&entry.1111111="&ENCODEURL(B2)&"&entry.2222222="&ENCODEURL(C2)

If every row is tidy, use that and stop reading. The assistant earns its place when rows are inconsistent: "ACME LTD" in one row and "Acme Limited" in another, emails with trailing spaces, a missing contact, a plan name that does not match any option in the form's dropdown. It also helps when the link has to go into a message that sounds like your team wrote it. A formula cannot notice that row 14 has no email, and it cannot write the covering note.

The Sheet the assistant reads

Give the assistant one tab it can read, with a fixed header row. Keep columns for the form's questions separate from columns for workflow state.

Column Example Maps to Who edits it
client_name Acme Ltd entry.1111111 Team
contact_email jo@acme.com entry.2222222 Team
plan Growth entry.3333333 Team
start_date 2026-12-01 entry.4444444 Team
account_owner Priya none (used in the message) Team
prefill_link built link none Assistant
check_status ok / needs fix none Assistant
approved_by initials none Human only
sent_at timestamp none Human only

The last two columns matter mot. Nothing is sent unless a peeson has filled in approved_by.

Setting it up, step by step

  1. Build the form and open "Get pre-filled link". Answer every question with a placeholder like ZZ_NAME, copy the URL, and note which entry. ID matches which placeholder. Dropdown and date questions need a real option or a valid date, so use one.
  2. Create the Sheet tab above. Freeze the header row and keep the names stable, since the assistant matches on them.
  3. In your Claude or ChatGPT team workspace, connect the Sheet through an MCP connector. Grant read access to this one tab, and write access only to prefill_link and check_status if your connector supports column-level scoping. If it does not, give it a copy of the tab.
  4. Put the form's base URL and the column-to-entry map into a prompt library entry (next section), so nobody pastes them from memory.
  5. Run it on three rows first. Open each link in a private window and compare what loaded against the Sheet.
  6. Add the approval step, then run it on the full list.

The prompt library entry

Keep this in the shared library so every team member runs the same instructions. Ours is short on purpose.

Name: Prefill client form links
Input: tab name, range of rows

Base URL: https://docs.google.com/forms/d/e/FORM_ID/viewform?usp=pp_url
Map: client_name=entry.1111111, contact_email=entry.2222222,
     plan=entry.3333333, start_date=entry.4444444

For each row:
1. Trim whitespace. URL-encode every value.
2. plan must be one of: Starter, Growth, Scale. Fix obvious case or
   spelling differences; otherwise mark needs fix.
3. start_date must be a real date in YYYY-MM-DD.
4. contact_email must contain one @ and a dot after it.
5. Build the link. Write it to prefill_link.
6. Write ok or needs fix with a reason to check_status.
7. Never fill approved_by or sent_at. Never send anything.

Return a summary table: row, client_name, check_status, link.

Line 7 is the guardrail, and it is the one people are tempted to loosen. Leave it alone.

The check step before anything is sent

The assistant returns a summary, and a person reads it. We have the person look at three things:

  • Every row marked needs fix, with the reason. Fix the Sheet, then rerun that row.
  • A sample of the ok rows, opened in a browser, to confirm the form shows the right company and plan.
  • Anything the assistant changed, such as a corrected plan name. Silent corrections are where trust erodes.

When the summary looks right, the person writes their initials in approved_by. Only then does a second prompt ("Draft the email for approved rows") produce messages, and those land as drafts in the inbox rather than sent mail. A person presses send.

The assistant's row output is easy to scan if you ask for structured fields:

{
  "row": 14,
  "client_name": "Acme Ltd",
  "check_status": "needs fix",
  "reason": "contact_email missing; plan 'growth ' normalized to Growth",
  "prefill_link": null
}

A null link on a failed row is better than a plausible-looking link with a blank email.

See how webhooks work

Where this sits in the Team AI Assistant workflow

This pattern is one workflow inside our Team AI Assistant (MCP-connected) setup: a branded Claude or ChatGPT assistant connected to three of your tools, with a prompt library, guardrails and training. The Sheet is one connected tool. The form is the data-capture step at the end of the loop: the assistant reads you're records, the client confirms them in the form, and the answers come back as new rows.

The return path is where your choice of form builder matters. Google Forms writes responses to a linked Sheet, which is fine here. If you want more from the capture step, Qwenvo is the free form builder our team makes, and its post on getting submissions into a spreadsheet covers the options. Qwenvo sends a webhook to any URL, so Zapier, Make or n8n can append each submission to your Sheet. It also includes partial submissions, a custom domain such as forms.yourbusiness.com, removable branding, unlimited teammates and AI triage with routing rules, all free. On Tally, partial submissions, custom domains and teammates are Pro features at $29 a month.

Two caveats. Qwenvo launched in October 2026, so there are few independent reviews yet. And it has no built-in Google Sheets sync tooday, so you get rows into a Sheet through a webhook, a CSV or XLSX export, or the REST API. If your team already lives in Google Forms and the pre-filled link does the job, keep it.

Questions teams ask

Can the form submit itself without the client clicking?

No. A pre-filled link only fills the answers in. The respondent has to press Submit. If you need records written without a person involved, write rows to the Sheet directly instead of using a form.

Does the assistant need write access to the whole spreadsheet?

It should not have it. Give it read access to one tab and write access to two helper columns. If the connector cannot scope that tightly, point it at a copy of the tab and paste results back.

What breaks most often?

Dropdown mismatches. If the pre-filled value does not match an option exactly, Google Forms leaves the question empty and the client may not notice. That is why the prompt checks the plan against a fixed list. Dates and long text with line breaks come second.

Is client data safe to hand an assistant?

Treat it like any vendor. Use a business workspace, connect only the tab you need, and keep personal data out of prompts you save in the library. Put data retention in writing with your own clients.

Build your form free

Your next step

Pick the form you re-type most often this week. Make a pre-filled link by hand with placeholder answers, write down the entry. IDs, and put them into the prompt above with three real rows from your Sheet. If the three links open correctly, you have the first entry for your prompt library.

This system

Team AI Assistant (MCP-Connected)

$1,500 setup
+ $199/month care plan

Third-party platform and model usage billed to you directly. No lock-in. Live in 7 days.

More on Team AI Assistant (MCP-Connected)