Skip to main content

Why a website signup or confirmation email is not working

The failures that come up most often with website signups, what causes each one, and how to fix it.

Most problems with a website signup come from one of a handful of causes, and almost all of them are visible either in the consent status on the guest's profile or in the response code your website received. Start with those two. For the request itself, see Connecting your website signup form to Bookboost.

Nothing happens after the guest submits the form

No profile appears in Bookboost. Check what your backend received. A 401 means the API key is missing, invalid, expired, or revoked. A 404 means the list UUID or the consent UUID does not exist in your organisation, which usually means a value was copied from the wrong environment. A 422 means the request itself was rejected, most often for an invalid email address or a malformed UUID.

If your website shows a success message no matter what, you will not see any of this. Log the status code and the response body on every failure.

The guest is on the list but no email arrives

Check the campaign is published. An unpublished campaign is skipped without an error. This is the single most common cause, and the hardest to spot because nothing anywhere reports a failure. On the Journey board, DRAFT means it has never been published and UNPUBLISHED CHANGES means it was edited after publishing, so the edits are not live.

Check the trigger matches your setup. A welcome campaign on After consent was granted will not send for a double opt-in signup until the guest confirms, because the consent sits at pending until then. With double opt-in, the welcome campaign needs After double opt-in was confirmed.

Check the campaign's consent requirement. At the Review & Publish step each campaign states which consent it requires. A campaign requiring explicit consent reaches only granted guests, so a mismatch between that setting and the consent your signup records means the campaign runs and reaches nobody.

Check the consent status on the profile. If it is pending, the guest has not confirmed. If it is revoked, they unsubscribed and no campaign will reach them. See Guest consent statuses.

The confirmation email arrives with no way to confirm

The Confirmation URL token was left out of the confirmation campaign. The guest receives the email, has nothing to click, and their consent stays pending for good.

Add the token, publish the campaign again, and send yourself a test to a real address before relying on it.

The guest says they clicked, but they are still pending

The link may have expired. A confirmation link is valid for 30 days. Someone confirming later sees an error and their consent stays pending.

If a high share of your signups never confirm, add a reminder campaign scheduled a few days after After double opt-in was requested, so guests have a second chance well inside the 30 days.

The same guest appears twice

users/store-in-list creates a profile each time it is called. It does not look up an existing guest by email address first. Bookboost's Master Profile view brings records with matching contact details together into one view of the person, but the underlying records are separate.

One guard exists: if that email address has already granted the same consent, the request is rejected with 409 rather than creating a duplicate.

What to do. Debounce the form so a double-click does not send two requests, do not re-send the request when the page reloads, and treat 409 as success when you retry a request that timed out.

Your form shows an error to guests who are already subscribed

That is 409, and it should be a success path. Show exactly the same message you show a new subscriber. Telling a visitor that an address is already on the list reveals who is on it to anyone who can type an email address into your form.

Requests start failing under load

The API allows 500 requests per minute per key. Beyond that you receive 429. Retry with exponential backoff rather than immediately.

Separately, trigger-campaign caps API-triggered sends at two per campaign, per profile, per day, and returns 422 beyond that. If you are hitting it, a retry loop is usually the cause.

A guest unsubscribed but is still receiving messages

Unsubscribing is per consent. POST /api/v1/user/{uuid}/unsubscribe revokes the consents you name, or every consent if you send all: true. If the guest holds two consents and only one was revoked, the other still applies.

Removing a guest from a list does not revoke their consent, and revoking consent does not remove them from lists. Check both on the profile.

Getting help

Open Help at the bottom of the left menu and choose Talk to Us, or email support@bookboost.io. Include the email address of the guest, the name of the list and consent involved, the consent status shown on their profile, and the response status code and body your website received.

Did this answer your question?