Salesforce
Se il Suo team commerciale lavora su Salesforce, questo adapter mantiene visibili lì gli ospiti del campeggio. Ogni profilo ospite diventa un Contact; ogni prenotazione diventa un’Opportunity. Le modifiche fluiscono in entrambe le direzioni, con i conflitti loggati ma non bloccanti.
Cosa Le offre
Sezione intitolata “Cosa Le offre”- Sincronizzazione bidirezionale: CampOne → Salesforce (push al salvataggio) e Salesforce → CampOne (pull orario)
- Idempotente sull’e-mail (Contact) e sul riferimento di prenotazione (Opportunity)
- Mappatura dei campi configurabile per oggetto — Lei decide quale campo CampOne mappa su quale campo Salesforce
- Logging dei conflitti: quando entrambi i lati hanno modificato lo stesso campo dall’ultima sincronizzazione, last-write-wins, ma il conflitto resta tracciato per audit
- Flusso OAuth con refresh token — l’access token si rinnova da solo; il refresh token a lunga durata risiede cifrato in CampOne
Prerequisiti
Sezione intitolata “Prerequisiti”Salesforce è self-service per lo sviluppo:
- Si registri per una Developer Edition gratuita su https://developer.salesforce.com/signup (qualsiasi username univoco va bene — provi
lei+sf-dev@suodominio.com). - Nella Sua org di sviluppo, vada in Setup → External Client App Manager e crei una nuova External Client App con scope OAuth
apierefresh_token. - Annoti il Client ID (Consumer Key) e il Client Secret dall’External Client App.
Per la produzione, il Suo cliente (o Lei per suo conto) fa lo stesso nella sua org Salesforce di produzione.
Importante: Salesforce blocca per default le legacy “Connected Apps”. Le nuove integrazioni devono usare le External Client App (ECA) — è ciò che il passo 2 sopra crea.
Cosa incollerà in CampOne
Sezione intitolata “Cosa incollerà in CampOne”Impostazioni → Integrazioni → Vendor Adapters → Salesforce:
| Campo | Descrizione |
|---|---|
| Environment | Sandbox (org di sviluppo / sandbox) o Production |
| Instance URL | es. https://yourcompany--sandbox.my.salesforce.com |
| Client ID | Consumer Key dall’ECA |
| Client Secret | Consumer Secret dall’ECA |
| Object mapping | Oggetto JSON — i default sono ragionevoli; sovrascriva per campo |
Clicchi Save, poi Connect via OAuth. CampOne La rimanda alla pagina di autorizzazione di Salesforce; al ritorno, il refresh token finisce in CampOne e il collegamento diventa verde.
Mappatura dei campi di default
Sezione intitolata “Mappatura dei campi di default”Out of the box:
{ "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" }}Modifichi il JSON nella scheda delle impostazioni per allinearlo ai Suoi campi custom.
Cosa parte e quando
Sezione intitolata “Cosa parte e quando”- Al salvataggio di un ospite in CampOne → push del Contact (immediato).
- Al salvataggio di una prenotazione in CampOne → push dell’Opportunity (immediato).
- Ogni ora → pull delle modifiche da Salesforce, applicazione campo per campo, log dei conflitti.
Gestione dei conflitti
Sezione intitolata “Gestione dei conflitti”Se entrambi i lati hanno modificato lo stesso campo tra una sincronizzazione e l’altra, vince la scrittura più recente. Il log di integrazione registra il campo in conflitto e il valore mantenuto, così una riconciliazione manuale è rapida.
Contatti di supporto
Sezione intitolata “Contatti di supporto”- Community / Q&A Salesforce: https://trailhead.salesforce.com/trailblazer-community
- Documentazione REST API + Connected Apps: https://developer.salesforce.com/docs/atlas.en-us.api_rest.meta/api_rest/intro_oauth_and_connected_apps.htm
- Il push in tempo reale da Salesforce (Streaming API / Change Data Capture) è un punto di roadmap; oggi il pull gira ogni ora.
- I Salesforce Outbound Messages (SOAP) non sono collegati — l’approccio di streaming sopra li sostituirà al momento dell’implementazione.
- La Developer Edition gratuita ha limiti sulle chiamate API. Per siti ad alto volume, chieda al Suo cliente di far girare l’integrazione sulla sua org di produzione o su una sandbox Performance/Unlimited.