Use a supported provider
The embed provider list is fixed: Calendly, Cal.com, Typeform, Tally, Google Forms, Loom, Bandcamp, Figma, Airtable, Notion, Gumroad, Stripe Buy Button. Only recognized HTTPS addresses and supported embed formats are accepted; being on the list does not make every URL from that provider embeddable.
Create and configure the form, booking page, product, or other content with its provider first. Use your own external account and check the provider’s access settings, prices, and requirements. A shapes plan does not create or connect that account for you.
Paste code or an address
In the embed controls, paste the provider’s code or supported HTTPS address into “Embed code or address”, then choose “Add embed”. Use “Update embed” after changing an existing one. Set Title and Height to make the result readable in your page preview.
The Embed block parses the snippet into validated provider data and discards the pasted markup. It does not run arbitrary scripts or unsupported frames, so an address it rejects needs the provider’s supported embed format, a regular link, or the Custom code block (Pro).
Run your own code (Pro)
Pro includes a Custom code block for your own HTML, CSS, and JavaScript. Choose “Add”, then “Custom code”, paste your code, and set a height. While you edit, the code stays switched off until you choose “Load preview”.
Your code runs in an isolated frame inside the page. It cannot read or change the rest of your page, your cookies, storage, or your shapes account, and it cannot redirect visitors away. Links it opens go to a new tab. Because the frame has no access to your page, the code cannot change your page’s fonts, colors, or layout.
Code that needs to run on a real website address, set cookies, or use browser storage may not work. Stripe’s Buy Button is one example; use your Stripe Payment Link instead. The frame has a fixed height, so size it to fit your content. Add a fallback link for visitors whose browser blocks scripts. While you preview in the editor, a note under the block tells you when your code tried to use cookies, storage or a pop-up dialog, or hit an error; visitors never see those notes.
Only you can add or edit custom code, in the editor. Cove and AI assistants that build drafts cannot. If your plan drops below Pro, existing code is kept in your draft but is not shown on your public page, and you cannot publish a page that contains it until you upgrade or remove the block.
Keep the provider destination reachable
Set “Link if the widget can’t load” to a useful HTTPS destination. The editor distinguishes “Embedded widget” from “Opens on the provider”. Google Forms short links and Bandcamp album or track pages use a provider link rather than an inline widget.
Stripe Buy Button content opens Stripe checkout instead of running an inline buy button. Supply your Stripe Payment Link as the fallback address. shapes does not collect the payment, fulfill an order, or manage refunds; use the checkout provider’s tools for those actions.
Test both the widget and its fallback before publishing. Provider restrictions or browser settings can prevent an inline widget from loading. A working destination link lets visitors continue on the provider’s own page.