Guide d'installation · Bubble

Envoyer des SMS et RCS depuis Bubble : installer le plugin Conexteo

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.

Bubble · onglet Plugins
C Conexteo SMS RCS – France & Europe
api_key
08J9A46GE••••••••••••••••••
app_id
w8NLb••••••••
api_key - dev.
08J9A46GE••••••••••••••••••
app_id - dev.
w8NLb••••••••
La Clef API (longue) va dans api_key. L'App ID (court) dans app_id.

Les quatre champs à remplir une seule fois

Le plugin

Cinq actions, pas des automatisations toutes faites

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.

Send SMS

Un SMS vers un ou plusieurs destinataires.

Send RCS Text

Message RCS texte, avec repli SMS automatique possible.

Send RCS Card

Carte enrichie : image, titre, description et jusqu'à 4 boutons.

Send RCS Carousel

Carrousel de 2 à 10 cartes.

Get Credits

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.

Prérequis

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.

Installation

Les 6 étapes détaillées

1

Installer le plugin

Dans votre app Bubble : onglet PluginsAdd 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 ».

2

Récupérer vos identifiants Conexteo

Connectez-vous sur app.conexteo.com puis allez dans Mon Compte → Api / Webhook. Deux valeurs y sont affichées :

Valeur ConexteoAspectChamp du plugin
App IDchaîne courte, environ 13 caractèresapp_id
Clef APIchaîne longue, environ 28 caractèresapi_key
! L'erreur n°1 : intervertir les deux identifiants

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.

Moyen mnémotechnique : la valeur longue va dans le champ au nom longapi_key.
3

Renseigner les identifiants dans Bubble

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.

4

Remplir aussi les champs de développement

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.

5

Tester la connexion avec Get Credits

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.

6

Ajouter une action dans un workflow

Dans l'éditeur de workflow : Click here to add an actionPlugins → 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.

Format des destinataires

Le champ recipients accepte un ou plusieurs numéros séparés par des virgules.

France métropolitaine

Le format national suffit.

0612345678
International

Hors France métropolitaine, le format international est obligatoire.

+393331234567

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.

Référence

Les actions champ par champ

Send SMS

ChampRequisDescription
contentouiTexte du message
recipientsouiVoir « Format des destinataires »
sendernonExpéditeur affiché, 11 caractères alphanumériques maximum
external_idnonVotre identifiant interne, renvoyé tel quel

Send RCS Text

ChampRequisDescription
nameouiNom de la campagne, à usage interne Conexteo
textouiTexte du message
recipientsouiVoir « Format des destinataires »
fallback_contentnonSMS de repli si le destinataire ne supporte pas le RCS
fallback_sendernonExpé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.

Send RCS Card

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.
choices_json
[
  {"type": "url",  "title": "Voir",    "url": "https://exemple.com"},
  {"type": "call", "title": "Appeler", "phoneNumber": "+33600000000"}
]

Send RCS Carousel

Même principe que Send RCS Card, avec cards_json : un tableau de 2 à 10 cartes. En dehors de cette fourchette, l'action échoue.

cards_json
[
  {"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"}
]

Get Credits

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.

Valeurs de retour

Toutes les actions d'envoi renvoient deux valeurs, accessibles dans les étapes suivantes du workflow via Result of step X.

ValeurTypeDescription
successyes / noVrai si l'API a accepté l'envoi
message_idtextIdentifiant du message côté Conexteo

Résoudre les erreurs

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.

MessageCause probable
Unauthorizedapi_key et app_id intervertis, ou identifiants invalides. En mode développement, vérifiez aussi les champs - dev.
Identifiants Conexteo manquantsLes champs du plugin ne sont pas renseignés
Aucun destinataire fourniLe champ recipients est vide
L'image RCS doit être un PNG ou un JPGmedia_url pointe vers un WebP ou un format non supporté
'cards_json' doit être un tableau de 2 à 10 cartesCarrousel mal dimensionné
Questions fréquentes

Ce que demandent les makers

Le plugin est-il payant ?
Non. Le plugin est gratuit, publié en licence open source MIT sur le Bubble Plugin Marketplace, et affiché en Free / For everyone. 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.
Toutes mes actions renvoient « Unauthorized », que faire ?
Dans la grande majorité des cas, les deux identifiants sont intervertis. La Clef API, la valeur longue d'environ 28 caractères, va dans api_key ; l'App ID, la valeur courte d'environ 13 caractères, va dans app_id.

Le symptôme est trompeur car le message est identique à celui d'une clé absente ou invalide. Si les champs de production sont corrects mais que l'erreur persiste en version de test, vérifiez les champs api_key - dev. et app_id - dev. : Bubble utilise ceux-là en mode développement.
Le plugin fournit-il des automatisations prêtes à l'emploi ?
Non, et c'est volontaire. Bubble n'est pas une plateforme e-commerce : il n'existe ni « commande », ni « panier abandonné », ni événement boutique standard. Chaque maker définit lui-même sa structure de données et sa logique.

Le plugin apporte donc cinq briques d'envoi que vous branchez dans vos propres workflows. C'est plus de liberté qu'une intégration e-commerce : vous déclenchez un message sur n'importe quelle condition de votre application, pas seulement sur une liste d'événements prédéfinis.
Comment envoyer un message à une liste de destinataires ?
Le champ 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.

Attention au format : le national suffit pour la France métropolitaine (0612345678), mais l'international est obligatoire ailleurs (+393331234567).
Pourquoi mon image RCS est-elle refusée ?
Le RCS accepte uniquement les PNG et les JPG. Les WebP sont refusés par l'API, avec le message « L'image RCS doit être un PNG ou un JPG ». C'est une source d'erreur fréquente car de nombreux outils convertissent automatiquement les images en WebP.

Vérifiez l'URL réellement passée dans media_url : elle doit être publique et pointer vers un fichier au bon format.
Puis-je choisir l'expéditeur affiché en RCS ?
Non, et il n'y a pas de champ pour cela : c'est l'agent RCS vérifié de votre compte Conexteo qui est assigné automatiquement. C'est précisément ce qui permet d'afficher le nom et le logo de votre marque, sous une identité validée par Google, au lieu d'un numéro.

En SMS classique, le champ sender permet en revanche de définir un expéditeur alphanumérique de 11 caractères maximum.
Que se passe-t-il si le destinataire ne supporte pas le RCS ?
Renseignez 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.

Sans fallback_content, aucun message de substitution n'est envoyé à ces destinataires. Pour comprendre la différence entre les deux canaux, voir RCS vs SMS.
Comment récupérer le résultat d'un envoi dans la suite de mon workflow ?
Chaque action d'envoi renvoie 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.
Faut-il un consentement pour envoyer des SMS depuis mon app ?
Cela dépend de la nature du message. Un SMS lié à l'exécution d'un service — code de vérification, confirmation, notification de statut — est transactionnel et n'exige pas d'opt-in marketing. Un message promotionnel relève de la prospection : consentement explicite au canal SMS, mention STOP, et respect des plages d'envoi.

Ces plages sont du lundi au vendredi de 8h à 20h et le samedi de 10h à 19h, hors dimanches et jours fériés. Le détail dans le guide RGPD et SMS marketing.

Installez le plugin et testez en deux minutes

Inscription gratuite, messages de test offerts, sans carte bancaire. Le plugin est déjà disponible sur le Marketplace Bubble.

À lire aussi