REUSABLE FORM WRAPPER · SETUP

One link. Every form.

Change sourceUrl in config.json to your Short.io link, then upload the ZIP to Cloudflare Pages. Add the same helper once to your form HTML for automatic sizing above the keyboard.

Change only the source link

This package uses https://nsi.s.gy/itassets as its source. Keep its destination set to your current Google Apps Script /exec URL. After changing that destination in Short.io, refresh the Cloudflare form: it resolves the link again on every fresh page load.

For another form, replace only sourceUrl in config.json with that form's source short link and upload the ZIP once. Later changes to the same short link's destination need no Cloudflare upload.

The source must use a normal redirect to Google. A direct Google /exec URL also works and skips the lookup, but changing that direct URL requires editing config.json and uploading again.

Checking the configured source…

Employee Login = Yes or No: the form reads its own Settings when it opens. Switch the value and refresh the form; no Cloudflare upload is needed. The title is picked up automatically after the helper connects.

1. Add the helper to Form.html

Copy the block below and paste it immediately before </body> in your existing Form.html. If Form.html lives in the FormEngine library, edit it there.

The Employee Login v5 Form.html already includes this helper. Add it only if your form does not have it yet. Keep the rest of Form.html. The Cloudflare wrapper needs no changes to Code.gs, Config, Settings, AddQuestion.html or the four sheet wrappers.

Download helper

Loading helper…

This helper works with your other Cloudflare form wrappers too. It sends layout dimensions, focus state and the public form title. Optional: list exact host origins in HOST_ORIGINS if you want to restrict it.

2. Publish the Apps Script change

  1. Save Form.html. If you use the FormEngine library, create a new library version and select that version in the active Sheet script.
  2. In the Sheet script, choose Deploy → Manage deployments → Edit → New version → Deploy. Update the existing deployment so its direct Google URL stays the same.
  3. Open the Cloudflare form with ?__fe_debug=1. The panel should show a measured top space. The value should return to 0 if Google's banner is absent.

3. Keep the source and public links separate

Keep the source short link pointing to Google. Share the Cloudflare URL, or use a second Short.io link for the public Cloudflare address.

For IT Assets: nsi.s.gy/itassets → Google /exec is the source. You may keep nsi.gy/itassets → Cloudflare Pages as the public address. Those are different links.

Optional: download the fixed Google configuration below to skip Short.io resolution. This pins the current deployment and turns off automatic destination updates. If you then retarget the source short link to Cloudflare, it will not create a loop because this optional configuration uses Google directly.

Normal visits resolve the source afresh. There is no saved destination or five-minute wrapper cache. A Short.io lookup and Google startup still take network time; there is no timed loading-screen delay.

Check automatic fit · Open form

Sheet wrapper code

Your four existing wrappers can stay as they are. FormEngine already allows embedding. A reference copy is included for your other Sheets.

Download HostStub.gs