Salesforce
Si votre équipe commerciale travaille dans Salesforce, cet adaptateur y maintient la visibilité de vos hôtes de camping. Chaque profil d’hôte devient un Contact ; chaque réservation devient une Opportunité. Les modifications circulent dans les deux sens, les conflits étant journalisés sans interrompre la synchronisation.
Ce que vous y gagnez
Section intitulée « Ce que vous y gagnez »- Synchronisation bidirectionnelle : CampOne → Salesforce (pousse à la sauvegarde) et Salesforce → CampOne (pull horaire)
- Idempotence sur l’e-mail (Contacts) et la référence de réservation (Opportunités)
- Mappage de champs configurable par objet — vous décidez quel champ CampOne correspond à quel champ Salesforce
- Journalisation des conflits : lorsque les deux côtés ont modifié le même champ depuis la dernière synchronisation, c’est la dernière écriture qui gagne, mais le conflit est conservé pour audit
- Flux OAuth avec refresh token — le jeton d’accès se renouvelle de lui-même ; le refresh token de longue durée reste chiffré dans CampOne
Prérequis
Section intitulée « Prérequis »Salesforce est en libre-service pour le développement :
- Inscrivez-vous gratuitement à une org Developer Edition sur https://developer.salesforce.com/signup (n’importe quel nom d’utilisateur unique fonctionne — essayez
vous+sf-dev@votredomaine.com). - Dans votre org de développement, allez dans Setup → External Client App Manager et créez une nouvelle External Client App avec les scopes OAuth
apietrefresh_token. - Notez le Client ID (Consumer Key) et le Client Secret de l’External Client App.
Pour la production, votre client (ou vous-même, en son nom) fait de même dans son org Salesforce de production.
Important : Salesforce bloque désormais par défaut les anciennes « Connected Apps ». Les nouvelles intégrations doivent utiliser des External Client Apps (ECAs) — c’est ce que crée l’étape 2 ci-dessus.
Ce que vous collerez dans CampOne
Section intitulée « Ce que vous collerez dans CampOne »Réglages → Intégrations → Adaptateurs fournisseurs → Salesforce :
| Champ | Description |
|---|---|
| Environment | Sandbox (org développeur / sandbox) ou Production |
| Instance URL | par ex. https://votreentreprise--sandbox.my.salesforce.com |
| Client ID | Consumer Key de l’ECA |
| Client Secret | Consumer Secret de l’ECA |
| Object mapping | Objet JSON — les valeurs par défaut sont raisonnables ; surcharge possible champ par champ |
Cliquez sur Save, puis sur Connect via OAuth. CampOne vous renvoie vers la page d’autorisation Salesforce ; au retour, le refresh token arrive dans CampOne et la connexion passe au vert.
Mappages de champs par défaut
Section intitulée « Mappages de champs par défaut »D’origine :
{ "guest_to_contact": { "first_name": "FirstName", "last_name": "LastName", "email": "Email", "phone": "Phone", "city": "MailingCity" }, "booking_to_opportunity": { "booking_reference": "Name", "total_price": "Amount", "check_in_date": "CloseDate", "status": "StageName" }}Modifiez ce JSON dans la carte de réglages pour qu’il colle à vos champs personnalisés.
Ce qui s’exécute, et quand
Section intitulée « Ce qui s’exécute, et quand »- À la sauvegarde d’un hôte dans CampOne → pousse Contact (immédiat).
- À la sauvegarde d’une réservation dans CampOne → pousse Opportunité (immédiat).
- Toutes les heures → tire les changements depuis Salesforce, applique champ par champ, journalise les conflits.
Gestion des conflits
Section intitulée « Gestion des conflits »Si les deux côtés ont modifié le même champ entre deux synchronisations, c’est l’écriture la plus récente qui l’emporte. Le journal d’intégration consigne le champ en conflit et la valeur conservée, pour qu’une réconciliation manuelle soit rapide.
Contacts de support
Section intitulée « Contacts de support »- Communauté Salesforce / Q&A : https://trailhead.salesforce.com/trailblazer-community
- Documentation REST API + Connected Apps : https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_oauth_and_connected_apps.htm
- La pousse temps réel depuis Salesforce (Streaming API / Change Data Capture) est un point de feuille de route ; aujourd’hui, le pull tourne toutes les heures.
- Les Outbound Messages Salesforce (SOAP) ne sont pas câblés — l’approche streaming ci-dessus les remplacera lorsqu’elle sera implémentée.
- La Developer Edition gratuite a des limites d’appels API. Pour les sites à fort volume, demandez à votre client d’exécuter l’intégration sur son org de production ou sur un sandbox Performance / Unlimited.