DocsProposal request pluginSquarespace

Add the form to Squarespace

One Code block on the page you want it on. If your plan cannot run a script inside one, a button to your hosted form does the same job and takes two minutes.

For service companies taking proposal requests on their own website.

Where the code goes
A Code block
How the form arrives
Inside your page
the visitor never leaves your site
What you paste
Two lines of HTML
Addresses per key
10
list every spelling your site answers on

Check which plan you are on

It is on the plugin page in your dashboard. Paste it here and every code example on this page carries it.

The plugin page is also where you list the web addresses your form is allowed to appear on, and it will not appear anywhere you have not listed. The overview walks through getting a key.

The Code block itself is on every Squarespace plan. What is not is the ability to run JavaScript or an iframe inside one. Squarespace lists that as Core, Plus, Advanced, and the legacy Business, Commerce Basic and Commerce Advanced plans. Our snippet is a script and a frame, so that is the line that matters.

The symptom is not a missing block.

On a plan without it, the Code block is right there in the list, it accepts your paste, and it saves without complaining. The live page then shows nothing. If that is what you are looking at, stop checking your address list and your key: it is the plan.

Squarespace renamed its tiers, so a site bought recently is on Basic, Core, Plus or Advanced and an older one is on Personal, Business or Commerce. Basic and Personal are the two that cannot run the snippet. Your plan is under Billing in Squarespace settings, and their own page on code blocks states the rule if you want to check it against the source.

If you are on one of those two, skip to Add a button on any plan below. It puts the same form in front of the same visitor as a full page instead of one sitting inside yours, and it takes two minutes with no code at all.

Paste it into a Code block

This is the code. Replace vrfp_embed_your_key_here with the key from your dashboard. That is the only edit it needs.

The snippet
<div data-vendorfp-proposal-form data-key="vrfp_embed_your_key_here"><a href="https://hoacrew.com/embed/w/vrfp_embed_your_key_here">Request a proposal</a></div>
<script src="https://hoacrew.com/embed/v1.js" async></script>

Two lines: where the form goes, and the script that loads it. The link inside the first line is a plain fallback for a visitor whose script never runs, cleared the moment it does. Its wording — Request a proposal — is yours to change; nothing else is affected.

  1. Open the page and press Edit

    In Pages, click the page you want the form on, then press Edit.

    A Squarespace page with the Edit button ringed at the top left of the page preview.
    Edit appears over the top left corner of the page itself, not in the panel beside it.
  2. Add a Code block where you want the form

    Hover where the form should go until the insert point appears, click it, and search the block list for Code.

    The insert point open between two blocks, its round plus button ringed, with Code found in the block search.
    The insert point is the line that follows the pointer; its round + opens the block list.
  3. Replace the sample content

    A new Code block arrives with a line of sample content in it. Select all of it, delete it, and paste the snippet in its place. Leave the mode set to HTML, and leave Display Source unticked. Ticking it shows your visitors the code instead of the form.

    The Code block editor with the snippet pasted in, the mode set to HTML, and the unticked Display Source box ringed.
    Display Source sits beside the HTML selector. Leave it unticked.
  4. Save, then open the live page

    Press Save. The editor shows a grey placeholder where the block is, because Squarespace does not run embedded code inside the editor. That is expected. Open your site in a normal browser tab to see the form.

    The editor after saving, with Save ringed at the top right and a grey placeholder where the Code block is.
    The grey block is the expected editor view. The form is on the live page.

Register both spellings of your address.

To a browser, acme-lawns.com and www.acme-lawns.com are two different places. If your site answers on both, list both on the plugin page. The same goes for http:// against https://. This is the reason behind almost every form that never appears.

How to tell it worked

  1. Open the live page in a normal tab, signed out of Squarespace if you can.
  2. The form is there with your company’s name on it. Send yourself a test, taking more than a few seconds over it. A submission completed unusually fast lands under suspected spam, not in the main list.
  3. Check Settings → Website plugin in your VendoRFP dashboard. Your test is in the list.

Squarespace trial and built-in addresses

A site still on a trial answers at an address like oak-hollow-lawns.squarespace.com. That is a different address from your real domain, so if you want to test before launch, add it to the plugin page too. Remove it once you are live.

If your site has a security policy

Most websites have no Content-Security-Policy and this section does not apply to them. If yours has one — a security plugin added it, your host sets it, or whoever built the site wrote one — it needs to allow two things from us:

The two allowances
script-src  https://hoacrew.com
frame-src   https://hoacrew.com

The first lets the loader script run. The second lets the form’s frame render. Allow the first and forget the second and you get a blank space where the form should be, with a line in the browser’s Console tab naming frame-src. Nothing else is needed: the form loads no fonts, no analytics and no other company’s code, so there is no third allowance hiding behind these two.

Squarespace does not give you a place to write one, so on a standard Squarespace site this section does not apply. It matters only if your domain sits behind something you added yourself, such as a Cloudflare rule, that adds headers on the way out.

The same form on another platform