Brevo Integration
Connecting Brevo to a quiz creates or updates a contact in a Brevo list each time the quiz is submitted. This page documents what's synced by default, the contact attributes FluoTest creates in the Brevo account, and how field mapping changes what's sent.
Last updated
What happens when I connect Brevo to a quiz?
FluoTest creates 4 custom contact attributes in the Brevo account (FLUOTEST_SCORE, FLUOTEST_MAX_SCORE, FLUOTEST_SCORE_PERCENT, FLUOTEST_QUIZ) and, on each submission, creates or updates a Brevo contact by email with the respondent's name and those score attributes — or with mapped fields, if field mapping is configured.
Configuration
A Brevo integration is configured with an API key from the Brevo account (Account settings → API Keys), an optional Brevo list ID to add contacts to, and an optional score tier that limits which respondents get synced. The API key is stored server-side.
Attributes created automatically
Connecting a Brevo API key creates the following custom contact attributes in the Brevo account, if they don't already exist. This happens once, when the key is connected — the attributes then appear in the Brevo contacts interface even before any quiz is submitted.
| Attribute | Type | Description |
|---|---|---|
| FLUOTEST_SCORE | float | The respondent's total score. |
| FLUOTEST_MAX_SCORE | float | The maximum possible score for the quiz. |
| FLUOTEST_SCORE_PERCENT | float | The score expressed as a percentage. |
| FLUOTEST_QUIZ | text | The name of the quiz the contact came from. |
Default synced fields (no field mapping)
Without field mapping configured, each submission creates or updates a Brevo contact using the respondent's email as the identifier (existing contacts with that email are updated rather than causing an error) and sends the following attributes:
| Field | Source |
|---|---|
| FIRSTNAME | Respondent's first name, or full name if no separate first/last name was collected. |
| LASTNAME | Respondent's last name, if collected. |
| FLUOTEST_SCORE | Total score. |
| FLUOTEST_MAX_SCORE | Maximum possible score. |
| FLUOTEST_SCORE_PERCENT | Score percentage. |
| FLUOTEST_QUIZ | Quiz name. |
Synced fields with field mapping
If field mapping is configured for the Brevo integration (see Field Mapping & Sync Retries), the mapped EMAIL field is used as the contact identifier instead of the respondent's email, and every other mapped field is sent as a Brevo attribute in place of the 4 default fields above. The destination schema offered for mapping is read live from the Brevo account's contact attributes, so custom attributes already created in Brevo are available as mapping targets.
List targeting
A quiz-level list ID overrides the account-level default list, so different quizzes connected to the same Brevo account can add contacts to different lists.
IP authorization errors
If the Brevo account has "Authorised IPs" enabled under Security, Brevo rejects sync requests because FluoTest's servers use rotating IP addresses that can't be added to a fixed allow-list. This failure is treated as permanent and is not retried. Removing the IP restriction in Brevo (Security → Authorised IPs) resolves it.
Frequently asked questions
Does connecting Brevo create new fields in my Brevo account?
Yes. Connecting a Brevo API key creates 4 custom contact attributes (FLUOTEST_SCORE, FLUOTEST_MAX_SCORE, FLUOTEST_SCORE_PERCENT, FLUOTEST_QUIZ) in the Brevo account if they don't already exist.
What email address is used to create the Brevo contact?
The respondent's email by default, or the field mapped to Brevo's EMAIL target if field mapping is configured.
Why do my Brevo syncs fail with an IP authorization error?
This happens when the Brevo account has IP restrictions enabled under Security → Authorised IPs. FluoTest's servers use rotating IPs that can't be whitelisted, so the restriction needs to be removed for the sync to succeed.
Can I control which respondents get synced to Brevo?
Yes. A Brevo integration can be limited to a specific score tier, so only respondents in that tier are synced.
See also