Wix contact forms
beyond basic inbox delivery.
Use an HTML Embed or Velo fetch path to send Wix submissions to Form Plume. Get email, a dashboard, spam filtering, uploads, integrations, and webhooks without building a database collection or backend.
<form
action="PASTE_YOUR_FORM_PLUME_ENDPOINT_HERE"
method="POST"
target="_top"
>
<label>
Name
<input name="name" autocomplete="name" required>
</label>
<label>
Email
<input name="email" type="email" autocomplete="email" required>
</label>
<label>
Message
<textarea name="message" required></textarea>
</label>
<button type="submit">Send</button>
</form>The full guide
A hosted backend for Wix forms.
Choose HTML Embed for the cleanest no-code setup, use Velo only when native Wix inputs must stay, and test the published page before launch.
- 1Create your Form Plume accountStart free and give your Wix form a hosted endpoint for email, submissions, spam filtering, uploads, integrations, and webhooks.Start free
- 2Create the form and copy the endpointCopy the endpoint URL from Form Plume. It looks like
https://api.formplume.com/f/your-slug - 3Connect it inside WixUse an HTML Embed for a plain form, or a Velo fetch handler only when the existing Wix inputs must remain on the page. Publish the Wix site and test the live page because editor previews can behave differently for embeds and Velo.
You can use this AI prompt to hand the platform-specific wiring to an assistant without accidentally creating a backend.
Pick HTML Embed or Velo
Wix gives you a no-code editor, but the right Form Plume setup depends on how much control you need.
Use an HTML Embed when you can place a complete form inside the page. It is the simplest path: the embed contains a normal <form>, the action points at Form Plume, and Wix does not need a database collection or automation to deliver the message.
Use Velo only when the visible Wix inputs must stay as native page elements or when the site already depends on Velo code. In that case, submit the collected values to Form Plume with fetch.
Use an HTML Embed for the simplest setup
Add an HTML Embed element and paste a complete form.
<form
action="PASTE_YOUR_FORM_PLUME_ENDPOINT_HERE"
method="POST"
target="_top"
>
<label>
Name
<input name="name" autocomplete="name" required>
</label>
<label>
Email
<input name="email" type="email" autocomplete="email" required>
</label>
<label>
Message
<textarea name="message" rows="5" required></textarea>
</label>
<button type="submit">Send message</button>
</form>The target="_top" attribute helps the success or redirect page escape the embed frame when needed. If you use a hidden _redirect, point it at a published Wix page.
Use Velo only when native Wix inputs must stay
If the form is already built from Wix input elements, a Velo handler can collect values and post them to Form Plume.
import { fetch } from "wix-fetch";
export async function submitButton_click() {
const body = new URLSearchParams({
name: $w("#nameInput").value,
email: $w("#emailInput").value,
message: $w("#messageInput").value,
source: "wix-contact-page",
});
const response = await fetch("PASTE_YOUR_FORM_PLUME_ENDPOINT_HERE", {
method: "post",
headers: { "Content-Type": "application/x-www-form-urlencoded" },
body: body.toString(),
});
if (response.ok) {
$w("#statusText").text = "Thanks, we got your message.";
}
}This keeps the backend out of Wix. Form Plume still owns email, the submissions dashboard, spam filtering, integrations, and webhooks.
Prefer the HTML Embed path unless you need Velo for existing UI. It is easier for non-developers to inspect and replace a form action than to maintain page code.
Watch the no-code constraints
Wix editor previews and published pages can behave differently for embeds, scripts, and external requests. Test on the live published URL before declaring the form done.
If an embed cannot match the visual design, keep the embed focused on the form fields and style it with CSS inside the embed. If a Velo setup gets hard to maintain, simplify back to a plain embed.
Add uploads when the embed controls the form
For file uploads, the HTML Embed path is the most direct option.
<form
action="PASTE_YOUR_FORM_PLUME_ENDPOINT_HERE"
method="POST"
enctype="multipart/form-data"
target="_top"
>
<input type="file" name="attachment" accept=".pdf,.png,.jpg">
<button type="submit">Send file</button>
</form>Form Plume stores uploads outside email delivery so a large attachment does not break the notification.
Verify the final handoff
Submit from the published Wix page. Check the Form Plume dashboard entry, email notification, spam status, redirect behavior, and any integration that should receive the accepted submission.
Primary sources
FAQ
Wix form questions
for no-code builds.
One line. Zero backend.
