Webflow to Brevo: sync forms without losing consent

Connect Webflow forms to Brevo with field mapping, double opt-in, duplicate handling and a repeatable test before you enable marketing.

Webflow Brevo integration

What's the short answer?

For newsletter signups, embed a Brevo form with double confirmation. For native Webflow forms, receive submissions on a server, map fields explicitly, and keep new subscribers pending until confirmation. Replaying a submission must not send another confirmation or undo a later unsubscribe. Test those cases before enabling marketing.

Learn more
On This Page

Submit one test signup twice. You should still have one subscriber, one confirmation request and a record of what happened. If the second delivery sends another welcome sequence, the connection needs more work.

A useful Webflow-to-Brevo integration has to handle the second delivery as carefully as the first. This guide gives you a field map, a confirmation boundary and a small acceptance test you can use with an automation service or your own backend.

Choose the shortest route

What you needStart hereWhat to check
A newsletter signupEmbed a Brevo formDouble confirmation, required fields and the destination list
Native Webflow submission recordsKeep the Webflow form and connect an automation serviceField mapping, confirmation handling and replay behavior
Custom routing or controlled recoveryReceive Webflow events on your backendAuthentication, pending state, deduplication and failure records

Brevo’s form builder supports double confirmation. New subscribers must click the emailed link before they are added to the contact database. That is a good default when a newsletter form is all you need.

“We already designed the form in Webflow.” Keep it if its layout or submission records matter. Webflow’s integration guide describes automation and API routes. Check the effect of a custom form action before changing it: bypassing Webflow’s handling also changes where submissions are stored.

Decide what each field means

Use a dedicated newsletter form, or a separate, unticked marketing choice on a general enquiry form. A request for a sales reply should not silently become a newsletter signup.

Here is an example map for a business newsletter. The required first name and business email are this form’s policy, not universal requirements imposed by Webflow or Brevo.

Source fieldDestinationRule
Work emailContact emailRequired; validate on the server
First nameFIRSTNAME attributeRequired; trim surrounding spaces
CompanyCOMPANY attributeOptional; do not erase a saved value with an empty submission
Marketing choiceConsent recordRecognize explicit values; unknown means stop
Submission IDProcessing recordUse it to recognize the same delivery again
Submission time and form IDProcessing recordKeep enough context to explain the source

Create matching Brevo attributes with the correct types before sending data. Brevo’s contact API accepts an attributes object and supports updating an existing contact with updateEnabled. Those fields move data; they do not establish permission to send marketing.

If you restrict the form to business addresses, enforce that policy on the server as well as in the interface. A business domain does not prove consent or guarantee that a mailbox belongs to a real customer.

Keep confirmation ahead of audience entry

For new subscribers, use this sequence:

  1. Validate the form and the explicit marketing choice.
  2. Save the request as pending, with its source and submission ID.
  3. Start one double opt-in request.
  4. Accept confirmation through the chosen confirmation system.
  5. Admit the confirmed subscriber to the marketing audience.

Brevo provides a dedicated double opt-in API endpoint, POST /v3/contacts/doubleOptinConfirmation, with a template, destination lists and a redirect URL. A regular POST /v3/contacts call is a different operation. Do not create a new contact first if your requirement is confirmation before contact creation.

Choose one system to own the confirmation. Connecting a Brevo form, a separate automation and your own confirmation sender to the same submission can produce duplicate messages. A successful API response also is not evidence that the person clicked the link.

For the broader subscription design, see our double opt-in guide. Test an existing unsubscribed address separately from a new address.

Receive events on a server

Keep the Brevo API key out of Webflow page code. The receiving backend, or your automation service’s credential store, should hold it.

Webflow documents the form_submission webhook, including the submitted fields, form identity and submission time. Verify the webhook according to the method used to create it. Webflow notes that dashboard-created webhooks do not include the signature headers described for its signed integration path.

Record a valid delivery durably before acknowledging it. If the destination is unavailable, retry the saved work. Track “received,” “pending confirmation,” “synced,” “skipped” and “failed” separately so an accepted webhook cannot masquerade as a completed sync.

Preserve a later unsubscribe

Reprocessing an old signup must not override a newer opt-out. Compare the event time and current subscription authority before updating the destination. An absent checkbox or an unrecognized value must not become a new opt-in. A new form submission alone must not unblock or resubscribe someone who opted out; Brevo treats blocklisting as a separate subscription status.

Be careful with identity changes too. Brevo’s update documentation warns that changing a blocklisted contact’s email can remove the blocklisting and resubscribe that contact. Treat an email-address change as a separate reviewed operation, rather than ordinary field mapping.

For a currently subscribed contact, updating a matching record can avoid another record. Still deduplicate the event itself: one contact can receive two messages even when no duplicate contact exists.

Run these six acceptance checks

TestExpected result
New valid signupPending until confirmation; no marketing before it
Same submission delivered twiceOne processing outcome; no duplicate confirmation
Missing or ambiguous marketing choiceNo subscription inferred
Old signup replayed after an unsubscribeThe later opt-out remains effective
Brevo temporarily unavailableVisible retryable failure; no false success
Company omitted on a later submissionExisting company remains unless clearing it was intentional

Run these against an isolated test list with addresses you control. Check both systems and the actual received messages. A green automation step alone is insufficient evidence.

Where Tajo fits

Tajo is in early access. Bring the source form, destination list, field map and the six expected outcomes to your integration review. Confirm that the chosen flow supports them before enabling it.

To compare a native form, an automation service and custom code, use the Brevo connector guide.

For a store rather than a website form, use the Shopify-to-Brevo setup guide. For a custom implementation, the Brevo API guide provides additional context.

Tell us which systems need to connect. Start with one form that survives a retry.

Frequently Asked Questions

What is the simplest way to connect Webflow to Brevo?

For a newsletter form, embed a Brevo sign-up form and enable double confirmation. Keep a native Webflow form when you need its submission records or custom routing, then use an automation service or a server-side integration.

Does creating a Brevo contact confirm their subscription?

No. A regular contact create or update call does not complete double opt-in. Use a confirmation flow and add a new subscriber to the marketing audience only after confirmation.

How do I stop retries from creating duplicates?

Record the Webflow submission ID and the processing result. Replaying that submission should not repeat its side effects. For an already confirmed contact, update the matching record rather than creating a second identity.

Request early access

Enter your first name and business email address. We will email you a link to confirm your request for Tajo access.

Get Brevo