How to install LaunchList on WordPress

Add a LaunchList signup form to WordPress with the plugin, or paste the embed into a Custom HTML block, a theme template or a site-wide header script.

Updated ·11 min read

What the LaunchList plugin adds, what it sends and whether you need it are on the WordPress waitlist plugin page. This guide is the setup: the plugin first, then the embed pasted by hand, which needs no plugin, then the fixes.

  1. In WordPress, open Plugins → Add New Plugin, search for LaunchList, then click Install Now and Activate. The plugin's page in the directory is wordpress.org/plugins/launchlist.
  2. Open LaunchList in the WordPress menu and click Connect to LaunchList. Sign in to your LaunchList account (you need one to connect a site), choose the workspace the site belongs to and click Connect. You do this once per site, and the screen then says Connected to your workspace.
  3. Edit a page, click + and add the LaunchList form block. Choose your form in the Form list.
  4. In a page builder or the classic editor, use the shortcode instead, with your form ID from Embed & API → Your website: [launchlist form="frm_8Kd2Qm4Rp9xy"].
  5. Publish, or preview the page, then join with your own email to see the signup arrive in Audience. A signup made in a preview is real.
The LaunchList screen in WordPress before connecting, with a Connect to LaunchList button and the shortcode for adding a form without connecting.
Before you connect, the LaunchList screen offers Connect to LaunchList, and Show how gives the shortcode.

In the block's settings, Show switches between Form, Popup button, Widget and Updates; the inserter also offers each as its own variation, LaunchList form, LaunchList popup button, LaunchList widget and LaunchList updates. A form or a popup button takes a form: choose it in the Form list, which names each form with its project, or click Enter an ID instead and paste its form ID. A widget or updates takes a Project, and a widget also takes a Widget: one of yours from the list, or a type, counter, leaderboard, milestone or countdown. A form's Button text replaces the button text set on the form in LaunchList. A popup button has its own Button text, and its Opens as is a window in the middle of the page or a panel from the side. After you add a form in LaunchList, click Refresh in the block's settings to see it in the list.

The LaunchList block in the WordPress editor, showing a card for the chosen form, with Show set to Form and the form chosen from a list in the block settings.
The block shows a card in the editor. Show and Form are in the block's settings.

In the editor the block shows a card, so nothing typed there becomes a signup. The form itself appears on the published page and in a page preview, and a signup made in a preview is real. The block has no style settings: its look is the design you pick in the LaunchList form editor, under Design. The shortcode and the block work without connecting your site, because the embed is public; the lists in the block's settings need the connection, and without it you paste the form ID.

For a shortcode, open Add LaunchList to a page at the bottom of the LaunchList screen. It lists a Form, Popup, Widget and Updates shortcode for one of your forms, each with a copy button, and a list to switch forms when you have more than one. The widget shortcode shows a signup counter: put leaderboard, milestone or countdown in place of counter for the others.

Once your site is connected, the plugin loads LaunchList on every page, so a referral code is remembered for 90 days and follows a visitor from page to page. This is on by default. To load LaunchList only on pages with a LaunchList block or shortcode, clear Load LaunchList on every page at the foot of Your forms on the LaunchList screen and click Save. Where a consent plugin that uses the WP Consent API is active, it loads on every page only for visitors who allowed marketing cookies.

Send your WordPress forms#

If you already built a form in Contact Form 7, WPForms, Gravity Forms, Elementor Pro, Fluent Forms, Ninja Forms or Formidable Forms, keep it and send its signups to LaunchList.

  1. Connect your site, as in step 2 above. Sending your own forms needs the connection.
  2. On the LaunchList screen, Your forms lists every one of your forms with the form plugin it comes from. Beside the form you want to send, change Don't send to the LaunchList form its signups should go to. The list groups your LaunchList forms by project.
  3. Click Match fields under the form's name to choose which of your form's fields fills each LaunchList field. The plugin suggests matches: the first email field, and other fields by name. The field LaunchList identifies a person by, usually Email, must be matched, or LaunchList refuses the signup, and the row warns you until it is. A LaunchList field left on Don't send stays empty. Your form's fields that fill no LaunchList field are kept with the signup, up to 20, under a simplified version of their label, as Input data.
  4. Click Save, submit a test signup and check that it arrives in Audience. A form you add in LaunchList appears in the list the next time you open the screen.
The LaunchList screen in WordPress, connected to a workspace, with a LaunchList form chosen for two of six WordPress forms and three recent deliveries marked Sent.
Your forms, with a LaunchList form chosen for two of them, and Recent deliveries below.
Match fields open on a WPForms form, with the LaunchList fields Email and Name each filled by a field of the WordPress form and Role left on Don't send.
Match fields: each LaunchList field on the left, the field of your form that fills it on the right.

Your form plugin keeps working as before: its emails, messages and saved entries do not change, and it still shows its own success message, so a person's place in line and referral link are not shown there. Use the block when you want those. LaunchList receives each submission from your server after your form plugin accepts it. If LaunchList cannot take a signup right away, your site keeps it and tries again a minute later at first, then up to an hour apart, for 24 hours.

Recent deliveries on the LaunchList screen shows what happened to each one: Sent when LaunchList received it, Kept when your site kept it to try again, and Not added when LaunchList refused it, with the reason beside it. When signups are waiting, the card says how many, and Retry now tries them again.

To remove LaunchList, click Disconnect on the LaunchList screen and confirm, or open Embed & API → Your website in LaunchList and click Disconnect beside the site. Your forms stop reaching LaunchList, blocks and shortcodes keep working, and the signups already in LaunchList stay there. Any signup still waiting on your site to be sent is deleted. If the connection is removed in LaunchList, the screen says LaunchList no longer recognizes the site and offers Connect again. A copy of your site made by cloning its database, such as a staging site, does not send anything in the live site's name; its LaunchList screen offers to connect the copy as a site of its own. The table at the end of this page covers each message the screen can show.

The methods below do the same by hand, if you would rather not install a plugin.

The block editor, without the plugin#

  1. In LaunchList, open Embed & API → Your website, choose WordPress under What is your site built with?, pick your form if you have more than one, and copy the Inline snippet it shows.
  2. Edit the page or post, click +, and add a Custom HTML block.
  3. Paste the snippet.
<!-- frm_8Kd2Qm4Rp9 is an example ID; use your own from Embed & API → Your website -->
<div data-launchlist-form="frm_8Kd2Qm4Rp9"></div>
<script src="https://embed.getlaunchlist.com/v1/embed.js" async></script>
  1. Publish. Use the block's Preview tab to see it render inside the editor.

That is the whole integration.

Site-wide, for more than one form#

If you plan to use forms, popups or widgets on several pages, load the runtime once in your theme instead of repeating it in every block. The plugin does this for you: once your site is connected it loads LaunchList on every page, unless you clear Load LaunchList on every page on its screen.

Add this to your child theme's functions.php:

add_action('wp_enqueue_scripts', function (): void {
    wp_enqueue_script(
        'launchlist',
        'https://embed.getlaunchlist.com/v1/embed.js',
        [],
        null,
        ['strategy' => 'async', 'in_footer' => false],
    );
});

Then every Custom HTML block only needs the target element:

<div data-launchlist-form="frm_8Kd2Qm4Rp9"></div>

In a theme template#

To place the form in a template file such as front-page.php or footer.php:

<div data-launchlist-form="frm_8Kd2Qm4Rp9"></div>

With the script enqueued as above, nothing else is needed.

If your host strips script tags#

Some managed WordPress plans and page builders remove <script> from post content. Use the no-JavaScript method instead: a plain form that posts straight to our endpoint and needs no script at all. WordPress.com's free plan removes <form> too, so there, link a button to your hosted page.

<form
    action="https://embed.getlaunchlist.com/f/frm_8Kd2Qm4Rp9/submit"
    method="POST"
>
    <input type="email" name="email" required />
    <input type="hidden" name="_channel" value="html" />
    <button type="submit">Join</button>
</form>

Copy that action from Embed & API → Your website rather than typing it: it points at the embed host, which is the same origin the loader script comes from.

Page builders#

Elementor, Beaver Builder and Divi all have an HTML or Code widget. Drop the same snippet in. If the builder offers a "Shortcode" widget instead, it will not work without the plugin; with the plugin, put [launchlist form="frm_8Kd2Qm4Rp9xy"] in it.

If something is not working#

What you see What to do
The block shows the code as text You used a Paragraph block. Switch to Custom HTML.
Nothing renders on the live page Your host or a security plugin is stripping <script>. Use the no-JavaScript method.
The form shows twice The form block is on the page twice; each renders its own form. Remove the duplicate. A script enqueued site-wide and in the block is harmless.
A caching plugin serves an old version Purge the cache after publishing. The form itself is never cached by us.
Your WordPress form's signups never arrive Check that the LaunchList screen says Connected, that the form has a LaunchList form chosen instead of Don't send, and that the field LaunchList identifies a person by, usually Email, is matched under Match fields. Then look at Recent deliveries.
Not added in Recent deliveries LaunchList refused that signup, for the reason shown beside it. A missing field usually means a field is not matched under Match fields.
"LaunchList no longer recognizes this site" The connection was removed in LaunchList. Click Connect again, or Disconnect to stop the notice, which also shows across your WordPress admin. Signups from your forms are kept on your site for 24 hours in the meantime.
"LaunchList can't be reached right now" Nothing to fix on your site. Signups are kept and sent when LaunchList is back, or click Retry now.
"This looks like a copy of" another site This site was cloned from a connected one, so it sends nothing in that site's name. Click Connect this copy as its own site if it should send signups.
"This server's clock is off" Ask your host to sync the server clock, then click Check connection.

Using the classic LaunchList dashboard#

A waitlist made in the classic LaunchList dashboard has its own snippet: a <div class="launchlist-widget"> in a Custom HTML block, with widget.js added to the head through a header and footer plugin. That snippet keeps working for now and sends signups to the classic dashboard's waitlist, not to a project here. A classic form key does not work with the snippet on this page.

To bring that waitlist here, import it into a project, then replace the classic snippet on your WordPress site with the one from Embed & API → Your website. Your signups are copied, and the classic waitlist is not changed.


Next: every way to integrate · How to add a waitlist to Squarespace

Common questions

Do I need the plugin to add a waitlist to WordPress?

No. LaunchList is two lines of HTML, which the built-in Custom HTML block takes without a plugin. You need the plugin to send the signups of Contact Form 7, WPForms and the other form plugins to LaunchList.

Does this work on WordPress.com?

Yes, on any paid WordPress.com plan: Personal, Premium, Business or Commerce. Each can install plugins, the LaunchList plugin included, and once a plugin is installed the Custom HTML block keeps script tags. The free plan installs no plugins and removes script and form tags when you save, so on it, link a button to your LaunchList hosted page instead.

Where do I put the script tag on WordPress?

Either alongside the div in the same Custom HTML block, or once site-wide in your theme's header. Site-wide is better if you plan to use forms, popups or widgets on several pages.

Is there a LaunchList plugin for WordPress?

Yes. It is in the WordPress plugin directory: in WordPress, open Plugins, then Add New Plugin, search for LaunchList, install and activate it, and connect your site once. Then add the LaunchList block, or the shortcode in a page builder, or send the signups of your own Contact Form 7, WPForms, Gravity Forms, Elementor Pro, Fluent Forms, Ninja Forms or Formidable Forms to LaunchList.

Do referrals work with my own WordPress forms and the plugin?

Yes. Once your site is connected, the plugin loads the LaunchList script on every page, which remembers a referral code for 90 days and copies it into a first-party cookie named launchlist_attribution on your site. Your form's signup carries it, so the person who shared the link is credited even when the visitor signs up on another page. To turn the every-page loading off, clear Load LaunchList on every page on the plugin's screen and click Save. Where a consent plugin uses the WP Consent API, it waits for marketing consent.

Was this page helpful?