Metadata-Version: 2.4
Name: djangocms_form_builder_brevo
Version: 0.0.4
Summary: Add-on djangocms-form-builder to send form submissions to Brevo (newsletter)
License: GNU GPLv3
License-File: LICENSE
Author: Kapt dev team
Author-email: dev@kapt.mobi
Requires-Python: >=3.10,<4
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Requires-Dist: Django (>=3.2)
Requires-Dist: djangocms-form-builder (>=0.5,<0.6)
Requires-Dist: sib-api-v3-sdk (>=7.6,<8.0)
Project-URL: Repository, https://gitlab.com/kapt/open-source/djangocms_form_builder_brevo
Description-Content-Type: text/markdown

# djangocms_form_builder_brevo

Greffon pour [djangocms-form-builder](https://github.com/fsbraun/djangocms-form-builder) permettant d'envoyer les soumissions de formulaire vers Brevo (ex-Sendinblue) pour l'inscription à des listes newsletter.

![preview djangocms_form_builder_brevo](https://gitlab.com/kapt/open-source/djangocms_form_builder_brevo/-/raw/main/preview.png)

## Fonctionnalités

- **Onglet Brevo dédié** dans l'admin du plugin Formulaire :
  - ID de la **liste Brevo** (ex : 2, 5, 12)
  - **Memo CRM** optionnel : crée une note Brevo à partir d'un champ du formulaire
  - **Mapping des champs** vers les attributs Brevo (email, prénom, nom, téléphone, etc.)
- **Normalisation téléphone** : mobiles en `SMS`, fixes en `LANDLINE_NUMBER`, reprise sans téléphone si Brevo rejette le numéro
- **Action Brevo** à cocher dans l'onglet Actions pour exécuter l'envoi à la soumission

## Requirements

- Python 3.10+
- Django 3.2+
- djangocms-form-builder
- django-cms

## Installation

```bash
pip install djangocms_form_builder_brevo
```

## Configuration

1. Ajoutez `djangocms_form_builder_brevo` à `INSTALLED_APPS` (après `djangocms_form_builder`) :

```python
INSTALLED_APPS = [
    # ...
    "djangocms_form_builder",
    "djangocms_form_builder_brevo",
    # ...
]
```

2. Configurez votre clé API Brevo dans `settings.py` :

```python
BREVO_API_KEY = "votre-clé-api-brevo"
```

3. Personnalisez le mapping des champs Brevo si besoin :

```python
BREVO_FIELD_LIST = [
    {"field": "email", "required": True, "help_text": "Champ formulaire pour l'email"},
    {"field": "first_name", "required": False, "help_text": "Champ formulaire pour le prénom"},
    # ...
]
```

4. Dans le plugin **Form** du CMS :
   - Onglet **Actions** : cochez **Brevo** pour activer l'envoi à la soumission
   - Onglet **Brevo** : configurez la liste, le memo (optionnel) et le mapping des champs
   - **Enregistrez** le plugin après modification

Les noms de champs doivent correspondre exactement à ceux définis dans les champs du formulaire (propriété "Field name" de chaque champ).

Les notes CRM apparaissent dans la fiche contact Brevo (section Notes), pas dans les attributs du contact.

