Salta ai contenuti

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.

  • 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

Salesforce è self-service per lo sviluppo:

  1. Si registri per una Developer Edition gratuita su https://developer.salesforce.com/signup (qualsiasi username univoco va bene — provi lei+sf-dev@suodominio.com).
  2. Nella Sua org di sviluppo, vada in Setup → External Client App Manager e crei una nuova External Client App con scope OAuth api e refresh_token.
  3. 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.

Impostazioni → Integrazioni → Vendor Adapters → Salesforce:

CampoDescrizione
EnvironmentSandbox (org di sviluppo / sandbox) o Production
Instance URLes. https://yourcompany--sandbox.my.salesforce.com
Client IDConsumer Key dall’ECA
Client SecretConsumer Secret dall’ECA
Object mappingOggetto 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.

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.

  • 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.

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.

  • 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.