Home › Move Google Forms Between Accounts

Move Google Forms Between Accounts: Bulk Migration Without Losing Track

Updated November 12, 2026 · ~10 min read

"Move google forms between accounts" is the plural, operational version of a transfer: a teacher leaves, a school changes domain, or an account is about to be closed and there are a dozen or more forms to deal with. Doing them one at a time is how things get missed. This guide gives a runnable Drive inventory script, a per-form decision rule (native ownership transfer vs export/import), and the checklist for what must be saved before the source account disappears.

The thing people lose: The two-step export/import bridge moves questions, not responses. Before closing the source account, export each form's responses to Sheets or CSV and keep a link inventory. That is a separate step from the question export, and it is the one most bulk migrations forget.

Why bulk migration is a different problem

One form: you can eyeball it. Fifteen forms: you need an inventory, a per-form decision, and a verification pass. The complications are

Step 1 — inventory every form in Drive (runnable script)

Run this in Apps Script (standalone or Drive-bound). It lists every Google Form file with its ID, owner, URL, share status and last-updated date, so you can work through a real list instead of memory.

function inventoryAllForms() {
  const files = DriveApp.searchFiles(
    "mimeType = 'application/vnd.google-apps.form' and trashed = false");
  const rows = [["Name","File ID","Owner","Edit URL","Shared","Last updated","Done?"]];
  while (files.hasNext()) {
    const f = files.next();
    const owners = f.getOwner ? [f.getOwner().getEmail()] : [];
    rows.push([
      f.getName(), f.getId(), owners.join(","),
      "https://docs.google.com/forms/d/" + f.getId() + "/edit",
      f.getSharingAccess ? String(f.getSharingAccess()) : "",
      f.getLastUpdated().toISOString().slice(0, 10), ""
    ]);
  }
  const ss = SpreadsheetApp.create("forms-migration-inventory");
  ss.getSheets()[0].getRange(1, 1, rows.length, rows[0].length).setValues(rows);
  ss.getSheets()[0].setFrozenRows(1);
  Logger.log(ss.getUrl() + "  total=" + (rows.length - 1));
}

DriveApp.searchFiles() uses the Drive search syntax; the mimeType for a native Google Form is application/vnd.google-apps.form (not a .docx or PDF). Add a "Done?" column as shown and tick it per form — that single column is what makes a bulk migration verifiable.

Step 2 — per-form decision table

SituationUseKeeps responses / link?
Same Workspace domain, new owner in orgDrive → Transfer ownershipYes / Yes
Only a duplicate needed, same accountDrive → Make a copyNo (empty sheet) / No (new link)
External domain, personal Gmail, admin blocks transferExport .docx → import under destinationNo / No
Only need the questions as an archiveExport .docx, no importNo / N/A
Need historical answers preservedExport responses to Sheets/CSV in additionYes (as files) / N/A

Work down the inventory sheet: try native transfer first for each row, and only fall back to the bridge where Google refuses. Native transfer is free and lossless; the bridge is the escape hatch, not the default.

Step 3 — the two-step bridge for the rows that need it

The two-step migration bridge. ExamParser has two halves: Google Form to Word reads a form share link and writes the questions, options and answer key into an editable .docx; then the document-to-Google-Form importer accepts that .docx and builds a new Google Form under the account you sign in with. Sign in as the destination account before importing and the new form belongs to it. That is a genuine cross-account content migration — but it migrates the question structure, not the original form object.

For each such row: copy the form share link, use the Google Form to Word exporter to get the .docx, sign in as the destination account, and use the document-to-Google-Form importer to create the new form. Record the new URL back in the inventory sheet next to the old one.

What does and does not move

What the two-step bridge movesWhat it does NOT move
Question text, order and typeHistorical responses / submissions
Options A–EThe original form URL (a new link is generated)
Correct answer / answer keyEditors, collaborators and sharing permissions
Marks and images where supportedThe linked response spreadsheet and its formulas
—Publish state, theme, confirmation message, response validation settings

Move Google Forms between accounts in 7 steps

Before closing the source account: the archive checklist

Troubleshooting

1

Inventory all forms

Run the Drive script; freeze the header and add a Done? column.

2

Archive responses

Download each form's responses to XLSX/CSV into a restricted folder.

3

Try native transfer per row

Same-domain rows: Drive → Transfer ownership; owner accepts.

4

Bridge the blocked rows

Export .docx → sign in as destination → import to a new form.

5

Record old → new URLs

Fill the link map; update QR codes, LMS and emails.

6

Verify samples

Quiz mode, answer key, option order and images on each rebuilt form.

7

Only then close the source account

Re-run the inventory and confirm every row is Done.

Frequently asked questions

How do I move multiple Google Forms between accounts?

Build an inventory first (the Apps Script in this guide lists every native Form file in Drive), then work row by row: use Drive's Transfer ownership for same-domain forms, and the export-to-.docx / import-under-destination-account bridge for rows where Google blocks the transfer. Mark each row done and record the new URL.

Can I move a Google Form from one account to another if the domains differ?

Native Drive ownership transfer is commonly blocked across domains or to personal Gmail accounts. The reliable route is the two-step bridge: export the form's questions to a Word .docx, sign in with the destination account, and import the .docx to create a new form that account owns.

Does moving forms keep the responses?

Native ownership transfer keeps everything, including responses and the original link. Any duplicate or export/import rebuild starts with an empty response sheet, so download responses to Sheets or CSV before closing the source account.

What should I save before deleting the source account?

Each form's responses (XLSX/CSV), a map of old → new form URLs, and a copy of each question structure (.docx). Then verify quiz mode, answer keys and images on the rebuilt forms. Only close the account once every inventory row is marked done.

Why do my rebuilt forms have different URLs?

Step 2 of the bridge creates a brand new form rather than moving the Drive file. That is why a link map is essential — QR codes, LMS assignments, embeds and emailed links all need updating.

Google Form exporters (step 1)

Step 1 of a migration is getting the question structure out of the source form. ExamParser has a dedicated exporter for each format; the Word (.docx) one is the practical bridge because the importer accepts .docx directly.

Related guides

Export the question structure form by form

Work your inventory with a lossless native transfer wherever Google allows it, and a clean .docx export → import bridge wherever it does not. Questions, options and answer keys carried over exactly, no AI rewriting.

Export my Google Form to Word →