𝗖𝗙𝟳 𝗕𝗿𝗲𝘃𝗼 𝗜𝗻𝘁𝗲𝗴𝗿𝗮𝘁𝗶𝗼𝗻 𝗜𝘀𝘀𝘂𝗲: 𝗪𝗵𝘆 𝗪𝗲𝗹𝗰𝗼𝗺𝗲 𝗘𝗺𝗮𝗶𝗹𝘀 𝗙𝗮𝗶𝗹

Your Contact Form 7 (CF7) adds contacts to Brevo but fails to send welcome emails. You checked everything. The contacts appear in your list. The Brevo support team sees no email requests from your site.

The problem is not a plugin conflict. It is a limitation of the built-in integration.

CF7 uses one API call to add contacts to Brevo. It hits the contacts endpoint. This works fine.

Sending a welcome email requires a different API call. It must hit the transactional email endpoint. CF7 does not make this second call. The built-in integration simply lacks this feature.

The "Send a welcome email" checkbox in CF7 settings is misleading. It likely only triggers Brevo's list-level confirmation emails. It does not trigger your custom transactional template.

You have two ways to fix this.

Option 1: Use a PHP function

You can hook into the CF7 submission event. This allows you to send the required API call manually.

Use this code structure:

add_action('wpcf7_before_send_mail', 'send_brevo_welcome_email');

function send_brevo_welcome_email($contact_form) { if ((int) $contact_form->id() !== YOUR_FORM_ID) return;

$submission = WPCF7_Submission::get_instance();
if (!$submission) return;

$data = $submission->get_posted_data();
$email = sanitize_email($data['your-email'] ?? '');
$name = sanitize_text_field($data['your-name'] ?? '');

if (empty($email)) return;

$api_key = defined('BREVO_API_KEY') ? BREVO_API_KEY : '';
$template_id = 12; 

wp_remote_post('https://api.brevo.com/v3/smtp/email', [
    'headers' => [
        'api-key' => $api_key,
        'Content-Type' => 'application/json',
    ],
    'body' => wp_json_encode([
        'templateId' => $template_id,
        'to' => [['email' => $email, 'name' => $name]],
        'params' => ['FIRSTNAME' => $name],
    ]),
    'timeout' => 15,
]);

}

Option 2: Use a specialized plugin

If you do not want to manage code, use a plugin like Contact Form to API. This connects CF7 directly to the Brevo transactional endpoint via your dashboard. You map your fields and set your template ID without writing PHP.

One final check: Ensure your Brevo template status is "Active." Brevo will not send emails for draft templates.

Source: https://dev.to/rahul_sharma_15bd129bc69e/cf7-brevo-integration-adds-contacts-but-never-sends-the-welcome-email-here-is-why-1e18