Skip to main content

Introduzione

GoHighLevel (GHL) è una piattaforma CRM e di marketing all-in-one che include funnel, siti web, email/SMS e automazione (“Workflows”). GHL non elenca Dodo Payments come processore integrato, quindi puoi collegare i due servizi in uno dei tre modi seguenti, a seconda di quanto vuoi che il checkout sia integrato e di quanto codice puoi scrivere. In ogni approccio, l’evasione viene gestita allo stesso modo. Dodo invia eventi webhook a un Inbound Webhook Workflow di GHL, che assegna tag al contatto, concede l’accesso e invia le conferme.

Scegli il tuo approccio

È la tua prima volta? Inizia con Approccio A (Payment Links). Non richiede codice, funziona per ogni utente GHL e richiede pochi minuti. Gli approcci B e C richiedono un backend per creare sessioni di checkout e sono pensati per team che hanno dimestichezza con il codice.

Prerequisiti

  • Un account Dodo Payments con almeno un prodotto creato.
  • Un account GoHighLevel con un funnel, un sito web o un workflow.
  • Accesso a Settings → Webhooks (e a Settings → Developer per una API key) nella dashboard Dodo.
  • Per gli approcci B e C: un piccolo backend o endpoint serverless per creare sessioni di checkout.
GHL richiede un dominio collegato per pubblicare un funnel. Durante la creazione, usa Preview del funnel per eseguire i test. Tieni presente che il JavaScript personalizzato (approcci B e C) in genere viene eseguito solo sulla pagina pubblicata su un dominio reale, non in Preview.

Evasione con webhook (tutti gli approcci)

Questo è il livello di automazione. Configuralo una volta e funzionerà indipendentemente dall’approccio di checkout scelto.
1

Create the workflow

Nel tuo sub-account GHL, apri Automation nel menu a sinistra (si aprirà la scheda Workflows). Fai clic su Create workflow, quindi scegli Start from Scratch.
2

Add the Inbound Webhook trigger

Nel builder, fai clic su Add new trigger. Nel pannello Add trigger, cerca webhook e seleziona Inbound webhook (elencato in Triggers → Events). Copia il Webhook URL generato.
3

Register the webhook in Dodo

Nella dashboard Dodo, vai su Settings → Webhooks, aggiungi un nuovo endpoint e incolla l’Inbound Webhook URL di GHL. Effettua un acquisto di test affinché GHL acquisisca un payload di esempio e tu possa mappare i campi (email del cliente, prodotto, importo, stato).
4

Add fulfillment actions

Torna al workflow GHL, aggiungi azioni basate sull’evento, come find/create contact by email, add a tag, grant course/membership access e send a confirmation email. Quindi Publish il workflow.
I pagamenti vengono elaborati su Dodo, quindi non appariranno nella scheda Payments di GHL. Riconciliali in GHL usando il workflow webhook precedente e considera il webhook come source of truth per la concessione dell’accesso, non il reindirizzamento del browser, poiché un cliente può chiudere la scheda prima di tornare.
Collega un payment link Dodo a qualsiasi pulsante GHL, CTA del funnel, pulsante della pagina d’ordine, email o SMS.
1

Create a product and copy its payment link

Nella dashboard Dodo, vai su Products → Add Product, imposta name e price, scegli one-time o subscription, quindi fai clic su Save. Apri il prodotto e copia il suo Payment Link (formato: https://checkout.dodopayments.com/buy/{product_id}).
2

Add the link to your GHL button

Modifica il funnel o la pagina del sito, seleziona il Buy / Checkout button, imposta la relativa azione su Open URL / Website e incolla il payment link Dodo.
3

Set a success page (optional)

Imposta la return URL del prodotto in Dodo su una pagina di ringraziamento GHL, così i clienti torneranno nel funnel dopo il pagamento.
Puoi precompilare e bloccare i dati del cliente o aggiungere il tracking usando i parametri di query del payment link. È utile per trasmettere un ID del funnel o dell’offerta come metadata che puoi leggere dal webhook.

Approccio B: Overlay Checkout (codice personalizzato)

Apre il checkout Dodo come modal overlay sulla pagina GHL usando il Checkout SDK tramite CDN. Richiede un backend per creare una sessione di checkout e restituire checkoutUrl.
1

Create a backend endpoint that calls the Checkout Sessions API

Questo passaggio è obbligatorio. L’SDK richiede un checkoutUrl attivo e per crearne uno è necessaria la tua secret API key. GHL ospita solo pagine statiche, non può eseguire questa chiamata server-side per te e non devi mai chiamare direttamente la Create Checkout Session API dal browser, perché ciò esporrebbe la secret key nel codice sorgente della pagina. Pertanto, l’overlay e l’inline checkout non possono funzionare con il solo GHL: ti serve un backend sotto il tuo controllo che crei la sessione e restituisca soltanto l’URL.Qualsiasi piccolo backend è adatto: una funzione serverless (Cloudflare Workers, Vercel Functions, AWS Lambda, Supabase Edge Functions e servizi simili) oppure un endpoint su un server che già gestisci. La logica è la stessa ovunque: ricevere la richiesta, chiamare l’API Dodo con la secret key e restituire checkout_url.Esempio di logica dell’handler (adattala alla piattaforma che preferisci):
Memorizza la tua API key Dodo come secret sulla piattaforma su cui esegui il deployment (non inserirla mai nel codice), consenti le richieste dal tuo dominio GHL (CORS) e instrada l’endpoint su un dominio sotto il tuo controllo, ad esempio https://api.example.com/create-checkout. Passa a https://live.dodopayments.com/checkouts quando passi alla modalità live.
2

Add a Custom Code element in the GHL page builder

Apri il passaggio del funnel o la pagina del sito nel page builder GHL, quindi:
  1. Fai clic sull’icona + in alto a sinistra del builder per aprire Quick Add.
  2. Seleziona Elements dall’elenco delle categorie a sinistra.
  3. Trova Custom Code (indicato anche come HTML) e trascinalo nella pagina.
  4. Incolla il codice seguente nell’editor del codice dell’elemento, quindi salva.
3

Publish and test on your domain

Il Custom JS viene eseguito sulla pagina pubblicata (dominio collegato), non sempre in Preview. Pubblica, quindi fai clic su Pay Now per verificare che l’overlay si apra.

Approccio C: Inline (embedded) Checkout

Incorpora il modulo di checkout all’interno della pagina GHL (nessun reindirizzamento e nessun popup) usando lo stesso SDK con un mount container. Come l’approccio B, richiede un backend per creare la sessione.
1

Create a backend endpoint that calls the Checkout Sessions API

Lo stesso requisito dell’overlay, altrettanto obbligatorio: per creare una sessione è necessaria la secret API key, quindi l’operazione deve avvenire server-side. GHL non può farlo autonomamente. Riutilizza lo stesso endpoint backend descritto nella sezione Overlay Checkout precedente (qualsiasi piccola funzione serverless o server sotto il tuo controllo) che chiama la Create Checkout Session API e restituisce { checkoutUrl }.
2

Add a container and SDK via Custom Code

Nel page builder GHL:
  1. Fai clic sull’icona + in alto a sinistra del builder per aprire Quick Add.
  2. Seleziona Elements dall’elenco delle categorie a sinistra.
  3. Trova Custom Code (indicato anche come HTML) e trascinalo nella pagina nel punto in cui vuoi visualizzare il modulo di checkout.
  4. Incolla il codice seguente nell’editor del codice dell’elemento, quindi salva.
3

Verify your domain for wallets (Apple Pay)

Per Apple Pay nell’inline checkout, verifica il tuo dominio. Ospita il file di associazione e registra il dominio nella dashboard.
L’inline è l’opzione più complessa in GHL. Richiede codice personalizzato, un backend, una pagina pubblicata su un dominio reale e, per Apple Pay, la verifica del dominio. Se non ti serve un modulo completamente integrato, preferisci l’approccio A o B.

Eventi da gestire

Ogni webhook include la customer email. Usa l’azione find/create contact by email di GHL per associare il pagamento al contatto corretto. Per l’elenco completo, consulta la Webhook Event Guide.

Test e messa online

1

Test in test mode

Mantieni Dodo in Test Mode, usa la carta di test 4242 4242 4242 4242 (una qualsiasi scadenza futura e un qualsiasi CVC), completa un acquisto e verifica che il workflow GHL venga eseguito e applichi il tag o l’accesso.
2

Go live

Passa Dodo a Live Mode e aggiorna l’endpoint webhook della modalità live. Le altre modifiche dipendono dall’approccio scelto:
  • Payment Links (A): sostituisci il link con il payment link live del prodotto.
  • Overlay checkout (B): indirizza il backend a https://live.dodopayments.com/checkouts con la tua API key live e imposta mode dell’SDK su "live" nella chiamata Initialize.
  • Inline checkout (C): come per l’overlay, poiché utilizza lo stesso endpoint backend e la stessa inizializzazione SDK.
Esegui quindi un acquisto reale end-to-end per verificare.

Suggerimenti

Considera il webhook come source of truth per la concessione dell’accesso. Agisci su payment.succeeded / subscription.active, non sul reindirizzamento del browser.
Verifica l’autenticità del webhook usando l’header webhook-signature (Standard Webhooks), così solo gli eventi Dodo autentici attiveranno l’evasione in GHL.

Risoluzione dei problemi

Verifica che l’endpoint webhook Dodo punti all’Inbound Webhook URL corretto di GHL, che il workflow sia pubblicato e che il trigger abbia acquisito un payload di esempio, in modo che esista la mappatura dei campi.
Il Custom JS viene generalmente eseguito solo sulla pagina pubblicata (dominio reale), non in Preview. Verifica che la pagina sia pubblicata, che l’SDK <script> sia stato caricato e che checkoutUrl sia un URL di sessione valido restituito dal backend.
Assicurati che il workflow utilizzi find/create contact by email e che il campo email sia mappato dal payload del webhook.
È previsto. I pagamenti vengono elaborati su Dodo, quindi riconciliabili in GHL tramite il workflow webhook.
Ultima modifica il 6 agosto 2026