FormVue lets you add lead capture widgets to any page on your WordPress site. There are four independent widgets — pick the one you need and configure only its options:
- Inline button — a button that transforms into a phone number input.
- Modal — a trigger button that opens the form in a popup.
- Contact — an embedded contact form rendered directly on the page.
- Content — a coupon-gated content flow.
After a visitor submits, they receive an SMS with a personalized link to your FormVue video form.
You need a free FormVue account at formvue.com to obtain a Form ID.
Features:
- Four independent widgets — inline button, modal, contact form, content (coupon) — each with only its relevant options
- Works with Gutenberg, Elementor, Divi 5 (native modules), and any builder that accepts shortcodes (WPBakery, Beaver Builder, etc.)
- Shortcodes:
[fvlc_inline],[fvlc_modal],[fvlc_contact],[fvlc_content] - Four native Gutenberg blocks, each with a live visual preview
- Four Elementor widgets with drag & drop
- Global default settings in WP Admin
- Customizable colors, sizes, variants, and borders
- Campaign / UTM attribution and query-param passthrough
- Mobile-friendly (renders as a link on mobile devices)
- The widget runtime is bundled inside the plugin — no external script loader
External services
This plugin connects to the FormVue service (operated by FormVue) to capture and process leads. This connection is required for the plugin’s core functionality — without it, submitted forms cannot be delivered.
What is sent, and when:
- When a widget is shown, an impression event and, on interaction, a click event are sent to
https://formvue.com(proxied to FormVue’s API). Each event includes the configured Form ID, optional campaign/UTM attribution, the page URL, page title, referrer, and screen width. - When query-param passthrough is on, these same two events also carry the query parameters from the page URL. They are sent when the widget renders, before the visitor submits anything.
- The Extra Params you set on the widget or on the settings page are sent only with the submission and in the form link, as prefilled answers. They are not sent with impression or click events. Do not put personal or confidential values in the Extra Params field.
- When a visitor submits the form (e.g. a phone number or contact fields), those values are sent to
https://formvue.comto create a lead and trigger the SMS/email with the personalized form link. - The widget logo image is loaded from
https://api.formvue.com. - When a form has an address question, the address the visitor types is sent to
https://formvue.comas they type, to suggest matching street addresses. FormVue looks the address up with Mapbox, so the typed text is passed on to Mapbox to find the suggestions. If the visitor picks a suggestion, its street, city, state, and ZIP are submitted with the lead. - When the form requires a verified address (set per form in FormVue), the address is checked with the US Postal Service when the visitor submits: its street, unit, city, state, and ZIP are sent to
https://formvue.com, which verifies them with Lob (a USPS address-verification provider). The outcome is submitted with the lead. Forms that do not require a verified address send nothing for this.
No data is sent until a widget actually renders on a page. The plugin itself loads no JavaScript from any third-party server — the widget runtime ships inside the plugin.
- FormVue terms of service: https://formvue.com/legals/terms-of-service
- FormVue privacy policy: https://formvue.com/legals/privacy
- Mapbox terms of service: https://www.mapbox.com/legal/tos
- Mapbox privacy policy: https://www.mapbox.com/legal/privacy
- Lob terms of service: https://www.lob.com/terms
- Lob privacy policy: https://www.lob.com/privacy
Third-party libraries
The widget runtime bundled in build/sdk/ is compiled from the open-source FormVue Embed SDK and includes the following libraries, all under the MIT license (GPL-compatible):
- Preact and @preact/signals — https://preactjs.com (MIT)
- @formisch/preact — https://github.com/fabian-hiller/formisch (MIT)
- valibot — https://valibot.dev (MIT)
- openapi-fetch — https://github.com/openapi-ts/openapi-typescript (MIT)
- Tailwind CSS — https://tailwindcss.com (MIT)
Source code
This plugin ships some minified JavaScript. The complete, un-minified source for every compiled file is included inside this plugin, and can be rebuilt with standard tools.
Gutenberg blocks — build/blocks/{inline,modal,contact,content}/index.js
- Source: the
blocks/folder (React/JSX, built with @wordpress/scripts). - Rebuild, from the plugin folder:
npm installthennpm run build:blocks.
Widget runtime (SDK) — build/sdk/formvue-{inline,modal,contact,content}.js
- Source: the
sdk-src/folder (TypeScript + Preact + Tailwind CSS, built with Vite). - Rebuild:
cd sdk-srcthennpm installthen
FORMVUE_API_URL=https://api.formvue.com FORMVUE_SHARE_URL=https://formvue.com npm run build:cdn
(without those variables the build targets localhost, which is the development default). - The API type definitions in
sdk-src/src/shared/api/v1.d.tsare generated from FormVue’s public OpenAPI schema with theopenapi-typescripttool; they are type-only declarations and contain no runtime code.
The bundled libraries listed under “Third-party libraries” (Preact, @preact/signals, @formisch/preact, valibot, openapi-fetch, Tailwind CSS) are all MIT-licensed.