Cinq actions à glisser dans vos workflows, deux identifiants à coller, et vos SMS partent depuis votre app — sans passer par Twilio. Comptez deux minutes de configuration.
api_key. L'App ID (court) dans app_id.Les quatre champs à remplir une seule fois
C'est la différence essentielle avec nos intégrations e-commerce. Sur Shopify ou WooCommerce, Conexteo écoute les événements de la boutique et envoie seul. Bubble n'a pas d'événements standards : c'est vous qui définissez votre structure de données et votre logique.
Le plugin fournit donc des briques d'envoi que vous branchez dans vos propres workflows. Quand le statut d'une commande passe à « Payée » dans votre app, c'est vous qui construisez le déclencheur — le plugin se charge de l'envoi.
Un SMS vers un ou plusieurs destinataires.
Message RCS texte, avec repli SMS automatique possible.
Carte enrichie : image, titre, description et jusqu'à 4 boutons.
Carrousel de 2 à 10 cartes.
Crédits restants — sert aussi de test de connexion.
Le plugin est gratuit, publié en licence open source MIT sur le Bubble Plugin Marketplace. Seuls les messages envoyés sont décomptés de vos crédits Conexteo, selon votre forfait. Voir les tarifs SMS et les tarifs RCS.
Un compte Conexteo, et une app Bubble. C'est tout. L'inscription est gratuite avec des messages de test offerts, sans carte bancaire : créer un compte.
Aucune compétence particulière n'est requise : le plugin s'installe depuis l'éditeur Bubble et se configure dans une interface, sans écrire de code.
Dans votre app Bubble : onglet Plugins → Add plugins → rechercher « Conexteo » → Install. Le plugin apparaît en Free / For everyone avec la mention « This plugin does not collect or track your personal data ».
Connectez-vous sur app.conexteo.com puis allez dans Mon Compte → Api / Webhook. Deux valeurs y sont affichées :
| Valeur Conexteo | Aspect | Champ du plugin |
|---|---|---|
| App ID | chaîne courte, environ 13 caractères | app_id |
| Clef API | chaîne longue, environ 28 caractères | api_key |
Si vous collez la Clef API dans app_id et l'App ID dans api_key, toutes les actions échouent avec le message Unauthorized.
Le symptôme est trompeur : c'est exactement le message d'une clé invalide ou absente. Rien n'indique qu'il s'agit d'une inversion. Ce piège nous a coûté plusieurs heures de diagnostic pendant le développement du plugin — nous avons cherché du côté du réseau, des restrictions d'IP et des crédits avant de trouver. Si vous voyez cette erreur, vérifiez ce point avant tout le reste.
api_key.Toujours dans l'onglet Plugins, sélectionnez « Conexteo SMS RCS » et remplissez api_key avec la Clef API, puis app_id avec l'App ID.
Bubble crée automatiquement deux variantes : api_key - dev. et app_id - dev. En version de test — l'URL en version-test —, ce sont ces champs-là qui sont utilisés. Les laisser vides fait échouer les actions, ce qui donne l'impression que le plugin ne fonctionne pas alors que la configuration de production est correcte.
Avant de construire quoi que ce soit, vérifiez que vos identifiants passent. L'action Get Credits ne prend aucun paramètre et renvoie summary, un résumé lisible de vos crédits restants. Branchez-la sur un bouton « Tester ma connexion » le temps de la configuration : si elle répond, tout le reste fonctionnera.
Dans l'éditeur de workflow : Click here to add an action → Plugins → choisissez l'action Conexteo souhaitée. Exemple typique : quand le statut d'une commande passe à « Payée » dans votre app → Send SMS. C'est vous qui définissez la condition de déclenchement, le plugin exécute l'envoi.
Le champ recipients accepte un ou plusieurs numéros séparés par des virgules.
Le format national suffit.
Hors France métropolitaine, le format international est obligatoire.
Exemple multi-destinataires : 0612345678,+393331234567
Le champ est dynamique : vous pouvez y brancher n'importe quelle expression Bubble, comme Current User's phone ou un champ d'une Thing. Pour envoyer à une liste Bubble, utilisez l'opérateur :join with comma.
| Champ | Requis | Description |
|---|---|---|
| content | oui | Texte du message |
| recipients | oui | Voir « Format des destinataires » |
| sender | non | Expéditeur affiché, 11 caractères alphanumériques maximum |
| external_id | non | Votre identifiant interne, renvoyé tel quel |
| Champ | Requis | Description |
|---|---|---|
| name | oui | Nom de la campagne, à usage interne Conexteo |
| text | oui | Texte du message |
| recipients | oui | Voir « Format des destinataires » |
| fallback_content | non | SMS de repli si le destinataire ne supporte pas le RCS |
| fallback_sender | non | Expéditeur du SMS de repli |
Il n'y a volontairement pas de champ expéditeur pour le RCS : c'est l'agent RCS vérifié de votre compte Conexteo qui l'assigne automatiquement. C'est ce qui permet d'afficher le nom et le logo de votre marque plutôt qu'un numéro.
Reprend les champs de Send RCS Text et ajoute title (requis), media_url (requis), description et choices_json.
media_url attend l'URL publique d'une image, PNG ou JPG uniquement. Les WebP sont refusés par l'API. Un champ image Bubble expose une URL utilisable directement.choices_json accepte jusqu'à 4 boutons, avec un titre de 25 caractères maximum.[
{"type": "url", "title": "Voir", "url": "https://exemple.com"},
{"type": "call", "title": "Appeler", "phoneNumber": "+33600000000"}
]Même principe que Send RCS Card, avec cards_json : un tableau de 2 à 10 cartes. En dehors de cette fourchette, l'action échoue.
[
{"title": "Produit A", "media_message_url": "https://exemple.com/a.jpg",
"description": "Description A",
"choices": [{"type": "url", "title": "Voir", "url": "https://exemple.com/a"}]},
{"title": "Produit B", "media_message_url": "https://exemple.com/b.png"}
]Sans paramètre. Renvoie summary, un résumé lisible des crédits restants, et raw_json. Pratique comme bouton « Tester ma connexion » pendant la configuration.
Toutes les actions d'envoi renvoient deux valeurs, accessibles dans les étapes suivantes du workflow via Result of step X.
| Valeur | Type | Description |
|---|---|---|
| success | yes / no | Vrai si l'API a accepté l'envoi |
| message_id | text | Identifiant du message côté Conexteo |
Si l'API refuse l'envoi, l'action échoue et le message d'erreur de Conexteo est remonté. Vous le trouverez dans les Server logs de votre app, onglet Logs, ou en branchant un événement d'erreur dans votre workflow.
| Message | Cause probable |
|---|---|
| Unauthorized | api_key et app_id intervertis, ou identifiants invalides. En mode développement, vérifiez aussi les champs - dev. |
| Identifiants Conexteo manquants | Les champs du plugin ne sont pas renseignés |
| Aucun destinataire fourni | Le champ recipients est vide |
| L'image RCS doit être un PNG ou un JPG | media_url pointe vers un WebP ou un format non supporté |
| 'cards_json' doit être un tableau de 2 à 10 cartes | Carrousel mal dimensionné |
api_key ; l'App ID, la valeur courte d'environ 13 caractères, va dans app_id.api_key - dev. et app_id - dev. : Bubble utilise ceux-là en mode développement.recipients accepte plusieurs numéros séparés par des virgules. Depuis une liste Bubble, utilisez l'opérateur :join with comma pour la transformer en une chaîne exploitable — par exemple Search for Users's phone :join with comma.0612345678), mais l'international est obligatoire ailleurs (+393331234567).media_url : elle doit être publique et pointer vers un fichier au bon format.sender permet en revanche de définir un expéditeur alphanumérique de 11 caractères maximum.fallback_content et un SMS de repli est envoyé automatiquement à sa place. Le RCS couvre environ 85 % du parc mobile français, iPhone inclus depuis iOS 18 ; le repli garantit que les 15 % restants reçoivent quand même votre message.fallback_content, aucun message de substitution n'est envoyé à ces destinataires. Pour comprendre la différence entre les deux canaux, voir RCS vs SMS.success (yes/no) et message_id. Ces valeurs sont accessibles dans les étapes suivantes via Result of step X : vous pouvez par exemple enregistrer le message_id dans votre base de données, ou conditionner l'étape suivante à success.Inscription gratuite, messages de test offerts, sans carte bancaire. Le plugin est déjà disponible sur le Marketplace Bubble.