Le widget Tap4Book est un système de réservation en ligne sophistiqué qui peut être intégré sur n'importe quel site web. Il offre une expérience utilisateur fluide avec gestion des disponibilités en temps réel.
Intégrez le widget en quelques minutes avec une simple ligne de code
Adaptez l'apparence et les fonctionnalités à vos besoins
Protection contre les doubles réservations et données chiffrées
L'URL du widget suit cette structure standardisée :
https://[DOMAINE]/widgets/widget.php?widgetID=[IDENTIFIANT]&[PARAMETRES_OPTIONNELS]
| Environnement | Domaine | Usage |
|---|---|---|
| Test | staging-app.tap4book.com |
Tests et développement |
| Production | app.tap4book.com |
Environnement de production |
Les environnements de test et de production sont distincts. Un widgetID valide sur staging-app.tap4book.com ne fonctionnera pas nécessairement sur app.tap4book.com et vice versa.
Assurez-vous d'utiliser le bon domaine et le bon widgetID pour chaque environnement.
| Paramètre | Type | Description | Exemple |
|---|---|---|---|
widgetID |
String | Identifiant unique du widget | widgetID=12345 |
Les tags permettent de transmettre des informations personnalisées au widget pour le tracking, la personnalisation ou le pré-remplissage de données.
| Paramètre | Description | Exemple d'utilisation |
|---|---|---|
tag1 |
Variable libre | tag1=REF-CLIENT-001 |
tag2 |
Variable libre | tag2=CAMPAGNE-2024 |
tag3 |
Variable libre | tag3=SOURCE-WEBSITE |
tag4 |
Variable libre | tag4=CONTRAT-12345 |
tag5 |
Variable libre | tag5=AGENCE-PARIS |
tag6 |
Variable libre | tag6=COMMERCIAL-DUPONT |
tag7 |
Variable libre | tag7=PRODUIT-PREMIUM |
tag8 |
Variable libre | tag8=UTM_SOURCE |
tag9 |
Variable libre | tag9=UTM_MEDIUM |
tag10 |
Variable libre | tag10=UTM_CAMPAIGN |
| Paramètre | Description | Format | Exemple |
|---|---|---|---|
firstName |
Prénom du client | Texte | firstName=Jean |
lastName |
Nom du client | Texte | lastName=Dupont |
email |
Email du client | Email valide (caractères spéciaux encodés) | email=jean%2Btest@example.com |
phone |
Téléphone du client | Format E164 sans le "+" | phone=33612345678 |
Important : Les numéros de téléphone doivent être au format E164 sans le symbole "+".
33612345678 pour 06.12.34.56.78)32412345678)41791234567)SMS de confirmation : Un SMS de confirmation sera automatiquement envoyé si le numéro commence par 336 ou 337 (mobiles français) sous réserve que l'option SMS soit active sur le compte du client.
Attention : Le caractère "+" dans les adresses email doit être encodé comme %2B dans les URLs.
❌ Incorrect :
email=marie+martin@gmail.com
✅ Correct :
email=marie%2Bmartin@gmail.com
Pourquoi ? Dans les URLs, le caractère "+" est interprété comme un espace. Pour transmettre un "+" littéral, il faut l'encoder en "%2B".
Intégration basique avec uniquement l'ID du widget (environnement de test)
https://staging-app.tap4book.com/widgets/widget.php?widgetID=12345
Intégration basique avec uniquement l'ID du widget (environnement de production)
https://app.tap4book.com/widgets/widget.php?widgetID=12345
Intégration avec suivi de campagne marketing
https://app.tap4book.com/widgets/widget.php?widgetID=12345&tag1=CAMPAGNE-ETE-2024&tag2=SOURCE-FACEBOOK&tag3=VILLE-PARIS
Intégration avec données client pré-remplies
https://app.tap4book.com/widgets/widget.php?widgetID=12345&firstName=Marie&lastName=Martin&email=marie.martin@email.fr&phone=33612345678
Exemple d'utilisation avancée avec multiples paramètres
https://app.tap4book.com/widgets/widget.php?widgetID=12345&firstName=Jean&lastName=Dupont&email=jean@example.com&phone=33612345678&tag1=REF-2024-001&tag2=CAMPAGNE-PRINTEMPS&tag3=SOURCE-SITE-WEB&tag4=COMMERCIAL-MARTIN&tag5=AGENCE-LYON
Gestion correcte des caractères spéciaux, espaces et emails avec "+"
https://app.tap4book.com/widgets/widget.php?widgetID=12345&tag1=REF%202024%20001&tag2=Campagne%20%C3%A9t%C3%A9&firstName=Jean-Pierre&lastName=D%27Artagnan&email=bdausse%2Bmarie.martin@gmail.com&phone=33612345678
La méthode la plus simple pour intégrer le widget dans votre page
<iframe
src="https://app.tap4book.com/widgets/widget.php?widgetID=12345"
width="100%"
height="600"
frameborder="0">
</iframe>
<iframe
src="https://app.tap4book.com/widgets/widget.php?widgetID=12345&tag1=SOURCE-HOMEPAGE&tag2=CLIENT-VIP"
width="100%"
height="600"
frameborder="0">
</iframe>
Affichez le widget dans une fenêtre popup élégante
<!-- Bouton avec popup automatique - Production -->
<div data-tap4book-widget="12345"
data-tap4book-environment="production"
data-tap4book-position="bottom-right"
data-tap4book-text="Prendre RDV"
data-tap4book-tag1="SOURCE-POPUP"
data-tap4book-tag2="PAGE-ACCUEIL">
</div>
<script src="https://app.tap4book.com/widgets/public/js/tap4book-popup.js"></script>
<!-- Bouton avec popup automatique - Test -->
<div data-tap4book-widget="12345"
data-tap4book-environment="test"
data-tap4book-position="bottom-right"
data-tap4book-text="Prendre RDV"
data-tap4book-tag1="SOURCE-POPUP"
data-tap4book-tag2="PAGE-ACCUEIL">
</div>
<script src="https://staging-app.tap4book.com/widgets/public/js/tap4book-popup.js"></script>
<script src="https://app.tap4book.com/widgets/public/js/tap4book-popup.js"></script>
<script>
// Création manuelle du popup
const widget = new Tap4BookPopup({
widgetID: '12345',
environment: 'production',
position: 'bottom-left',
text: 'Prendre RDV',
buttonColor: '#11B980',
size: 'large',
tag1: 'SOURCE-MANUAL',
tag2: 'CUSTOM-BUTTON'
});
// Événements disponibles
window.addEventListener('tap4book:modalOpened', (e) => {
console.log('Modal ouverte', e.detail);
});
window.addEventListener('tap4book:modalClosed', (e) => {
console.log('Modal fermée', e.detail);
});
</script>
| Attribut | Description | Valeurs possibles | Défaut |
|---|---|---|---|
data-tap4book-environment |
Environnement à utiliser | production, test |
production |
data-tap4book-position |
Position du bouton | bottom-right, bottom-left, top-right, top-left, center-right, center-left |
bottom-right |
data-tap4book-text |
Texte du bouton | Texte libre | Prendre RDV |
data-tap4book-button-color |
Couleur du bouton | Code couleur hexadécimal | #11B980 |
data-tap4book-size |
Taille du bouton | small, medium, large |
medium |
Créez des URLs dynamiquement selon vos besoins
// Créer une URL dynamiquement
function generateWidgetURL(clientData, environment = 'production') {
const baseURL = environment === 'test'
? 'https://staging-app.tap4book.com/widgets/widget.php'
: 'https://app.tap4book.com/widgets/widget.php';
const params = new URLSearchParams({
widgetID: '12345',
firstName: clientData.firstName || '',
lastName: clientData.lastName || '',
email: clientData.email || '',
tag1: clientData.source || '',
tag2: clientData.campaign || '',
tag3: new Date().toISOString().split('T')[0] // Date du jour
});
return `${baseURL}?${params.toString()}`;
}
// Utilisation en production
const url = generateWidgetURL({
firstName: 'Marie',
lastName: 'Curie',
email: 'marie@example.com',
source: 'NEWSLETTER',
campaign: 'PROMO-2024'
});
// Utilisation en test
const testUrl = generateWidgetURL({
firstName: 'Marie',
lastName: 'Curie',
email: 'marie@example.com',
source: 'NEWSLETTER',
campaign: 'PROMO-2024'
}, 'test');
Suivez les interactions avec vos outils analytics
// Exemple avec Google Analytics
function openWidgetWithTracking(campaign, source, environment = 'production') {
const baseURL = environment === 'test'
? 'https://staging-app.tap4book.com/widgets/widget.php'
: 'https://app.tap4book.com/widgets/widget.php';
const widgetURL = new URL(baseURL);
widgetURL.searchParams.append('widgetID', '12345');
widgetURL.searchParams.append('tag1', campaign);
widgetURL.searchParams.append('tag2', source);
widgetURL.searchParams.append('tag8', 'utm_source_' + source);
widgetURL.searchParams.append('tag9', 'utm_campaign_' + campaign);
// Tracking Google Analytics
if (typeof gtag !== 'undefined') {
gtag('event', 'widget_open', {
'event_category': 'booking',
'event_label': campaign,
'custom_parameters': {
'environment': environment
}
});
}
// Ouvrir le widget
window.open(widgetURL.toString(), '_blank');
}
Chaque widget peut avoir son propre fichier de configuration JSON permettant de personnaliser :
Avertissement : Pour accéder à la documentation de la personnalisation avancée du widget veuillez contacter votre chargé de compte TAP4BOOK.
Les données transmises via URL sont visibles. Ne jamais inclure :
Dernière mise à jour : Avril 2025
© 2024-2025 TAP4BOOK. Tous droits réservés.