🧬 JorgeDotto Webhook API

Panoramica

Questa documentazione descrive come inviare correttamente i webhook per l'integrazione con il sistema di automazione JorgeDotto. Tutti i webhook devono essere inviati allo stesso endpoint con una struttura dati consistente.

⚠️ Importante

  • Ogni webhook DEVE contenere un campo event_type
  • I dati di contatto devono essere inviati sempre con gli stessi nomi di campo
  • Utilizzare il formato JSON per tutti i payload
  • Il Content-Type deve essere application/json

Endpoint Webhook

POST https://hook.eu2.make.com/8doem1jhwn3vpvbnmochb9uoepo8ot80

Tutti i webhook devono essere inviati a questo endpoint tramite richiesta HTTP POST.

Struttura Dati Consistente

Per garantire la corretta elaborazione, utilizzare sempre i seguenti nomi di campo per le informazioni di contatto:

Campo Tipo Descrizione Obbligatorio
event_type String Tipo di evento (vedi lista eventi) βœ…
contact_firstname String Nome del contatto βœ…
contact_lastname String Cognome del contatto βœ…
contact_email String Email del contatto βœ…
contact_phone String Telefono del contatto βœ…
contact_location String Ubicazione (AR / ES / UR) βœ…
session_id String ID sessione univoco per tracciare il percorso (obbligatorio per tutte le operazioni in piattaforma) βœ… (dopo registrazione)

Codici Prodotto / Test

Utilizzare i seguenti codici prodotto nel campo services dei webhook:

Codice Nome Prodotto
T01 Test de ADN Sistema Inmune
T02 Test de ADN Nutricional
T03 Test de ADN MigraΓ±as
T04 Test de ADN Fertilidad
T05 Test de ADN Alto Rendimiento Deportivo
T06 Test de ADN MetilaciΓ³n
T07 Test de ADN Intolerancia a la Histamina

Website Lead

Lead generati tramite form sul sito web.

Esempio Payload
{
  "event_type": "website_lead",
  "contact_firstname": "Claudio",
  "contact_lastname": "Bolognesi",
  "contact_email": "claudio.lat46@gmail.com",
  "contact_phone": "+39 333 1234567",
  "contact_location": "AR",
  "services": ["T02", "T07"],
  "message": "Vorrei avere maggiori informazioni sui test disponibili e sui tempi di consegna. Grazie."
}
Campo Tipo Obbligatorio
event_type String βœ… "website_lead"
services Array[String] βœ…
message String βœ…

Bot Lead

Lead generati tramite chatbot sul sito web.

Esempio Payload
{
  "event_type": "bot_lead",
  "contact_firstname": "Laura",
  "contact_lastname": "GarcΓ­a",
  "contact_email": "laura.garcia@example.com",
  "contact_phone": "+34 612 345 678",
  "contact_location": "AR",
  "services": ["T01"],
  "conversation_summary": "Il cliente ha mostrato interesse per il test DNA per scoprire le proprie origini genetiche. Ha chiesto informazioni sui tempi di consegna e sul processo di prelievo del campione. Preferisce essere contattato via email."
}
Campo Tipo Obbligatorio
event_type String βœ… "bot_lead"
services Array[String] βœ…
conversation_summary String βœ…

Registrazione Cliente su Piattaforma

Inviato quando il cliente completa la registrazione sulla piattaforma dopo aver ricevuto la welcome email.

Esempio Payload
{
  "event_type": "platform_registration",
  "contact_firstname": "Claudio",
  "contact_lastname": "Bolognesi",
  "contact_email": "claudio.lat46@gmail.com",
  "contact_phone": "+39 333 1234567",
  "contact_location": "AR",
  "session_id": "sess_abc123def456",
  "services": ["T02", "T07"],
  "payment_method": "bank_transfer"
}
Campo Tipo Descrizione Obbligatorio
event_type String "platform_registration" βœ…
session_id String ID univoco della sessione βœ…
services Array[String] Servizi selezionati βœ…
payment_method String Metodo di pagamento scelto βœ…

Metodi di Pagamento Accettati per Paese

πŸ‡¦πŸ‡· ARGENTINA
  • cash - Efectivo
  • bank_transfer - Transferencia bancaria
  • deposit - DepΓ³sito
  • mercadopago - MercadoPago (con 15% de recargo)
πŸ‡ͺπŸ‡Έ SPAGNA
  • bank_transfer - Transferencia bancaria
πŸ‡ΊπŸ‡Ύ URUGUAY
  • cash - Efectivo
  • bank_transfer - Transferencia bancaria

Una vez realizado el pago, coordinamos la toma de muestra.

Conferma Pagamento

Inviato quando lo staff conferma manualmente il pagamento nella piattaforma.

Esempio Payload
{
  "event_type": "payment_confirmed",
  "contact_firstname": "Claudio",
  "contact_lastname": "Bolognesi",
  "contact_email": "claudio.lat46@gmail.com",
  "contact_phone": "+39 333 1234567",
  "contact_location": "AR",
  "session_id": "sess_abc123def456",
  "payment_status": "ok",
  "payment_method": "bank_transfer",
  "estimated_kit_delivery": "2025-11-15",
  "shipping_address": {
    "street": "Via Roma 123",
    "city": "Madrid",
    "postal_code": "28001",
    "country": "EspaΓ±a"
  }
}
Campo Tipo Descrizione Obbligatorio
event_type String "payment_confirmed" βœ…
session_id String ID della sessione di acquisto βœ…
payment_status String "ok" βœ…
payment_method String Metodo utilizzato per il pagamento βœ…
estimated_kit_delivery String (YYYY-MM-DD) Data stimata di consegna del kit βœ…
shipping_address Object Indirizzo completo di spedizione βœ…

Kit Spedito

Inviato quando viene inserito il numero di tracking della spedizione nella piattaforma.

Esempio Payload
{
  "event_type": "kit_shipped",
  "contact_firstname": "Claudio",
  "contact_lastname": "Bolognesi",
  "contact_email": "claudio.lat46@gmail.com",
  "contact_phone": "+39 333 1234567",
  "contact_location": "AR",
  "session_id": "sess_abc123def456",
  "kit_tracking": "https://www.dhl.com/tracking/1234567890",
  "shipping_date": "2025-11-05",
  "carrier": "DHL"
}
Campo Tipo Descrizione Obbligatorio
event_type String "kit_shipped" βœ…
session_id String ID della sessione βœ…
kit_tracking String (URL) URL completo per il tracking online βœ…
shipping_date String (YYYY-MM-DD) Data di spedizione βœ…
carrier String Nome del corriere βœ…

Kit Consegnato

Inviato quando il sistema riceve conferma di consegna dal corriere.

Esempio Payload
{
  "event_type": "kit_delivered",
  "contact_firstname": "Claudio",
  "contact_lastname": "Bolognesi",
  "contact_email": "claudio.lat46@gmail.com",
  "contact_phone": "+39 333 1234567",
  "contact_location": "AR",
  "session_id": "sess_abc123def456",
  "delivery_status": "delivered",
  "delivery_date": "2025-11-10",
  "kit_tracking": "https://www.dhl.com/tracking/1234567890"
}
Campo Tipo Obbligatorio
event_type String βœ… "kit_delivered"
session_id String βœ…
delivery_status String βœ… "delivered"
delivery_date String (YYYY-MM-DD) βœ…

Ritiro Programmato

Inviato quando il cliente fissa la data per il ritiro del test completato.

Esempio Payload
{
  "event_type": "pickup_scheduled",
  "contact_firstname": "Claudio",
  "contact_lastname": "Bolognesi",
  "contact_email": "claudio.lat46@gmail.com",
  "contact_phone": "+39 333 1234567",
  "contact_location": "AR",
  "session_id": "sess_abc123def456",
  "pickup_date": "2025-11-20",
  "pickup_time_slot": "14:00-18:00"
}
Campo Tipo Descrizione Obbligatorio
event_type String "pickup_scheduled" βœ…
session_id String ID sessione βœ…
pickup_date String (YYYY-MM-DD) Data del ritiro βœ…
pickup_time_slot String Fascia oraria preferita βœ…

Test in Presenza

Inviato quando il test verrΓ  effettuato con personale medico invece che tramite kit a domicilio.

Esempio Payload
{
  "event_type": "test_live_scheduled",
  "contact_firstname": "Claudio",
  "contact_lastname": "Bolognesi",
  "contact_email": "claudio.lat46@gmail.com",
  "contact_phone": "+39 333 1234567",
  "contact_location": "AR",
  "session_id": "sess_abc123def456",
  "test_live": true,
  "test_live_date": "2025-11-12",
  "test_live_time": "10:30",
  "test_location": "Clinica Madrid Centro, Calle Gran VΓ­a 45"
}
Campo Tipo Descrizione Obbligatorio
event_type String "test_live_scheduled" βœ…
session_id String ID sessione βœ…
test_live Boolean true βœ…
test_live_date String (YYYY-MM-DD) Data del test βœ…
test_live_time String (HH:MM) Ora del test βœ…
test_location String Indirizzo della clinica βœ…

Anamnesi Completata

Inviato quando il cliente completa il form di anamnesi/storia clinica.

Esempio Payload
{
  "event_type": "anamnesis_completed",
  "contact_firstname": "Claudio",
  "contact_lastname": "Bolognesi",
  "contact_email": "claudio.lat46@gmail.com",
  "contact_phone": "+39 333 1234567",
  "contact_location": "AR",
  "session_id": "sess_abc123def456",
  "completed_date": "2025-11-21",
  "form_url": "https://platform.jorgedotto.com/anamnesis/sess_abc123def456"
}
Campo Tipo Obbligatorio
event_type String βœ… "anamnesis_completed"
session_id String βœ…
completed_date String (YYYY-MM-DD) βœ…
form_url String (URL) Opzionale

Appuntamento Medico Fissato

Inviato quando il cliente prenota la visita medica.

Esempio Payload
{
  "event_type": "appointment_booked",
  "contact_firstname": "Claudio",
  "contact_lastname": "Bolognesi",
  "contact_email": "claudio.lat46@gmail.com",
  "contact_phone": "+39 333 1234567",
  "contact_location": "AR",
  "session_id": "sess_abc123def456",
  "appointment_date": "2025-11-25",
  "appointment_time": "15:00",
  "appointment_type": "video_call",
  "doctor_name": "Dr. GarcΓ­a LΓ³pez",
  "meeting_link": "https://meet.jorgedotto.com/sess_abc123def456"
}
Campo Tipo Descrizione Obbligatorio
event_type String "appointment_booked" βœ…
session_id String ID sessione βœ…
appointment_date String (YYYY-MM-DD) Data appuntamento βœ…
appointment_time String (HH:MM) Ora appuntamento βœ…
appointment_type String video_call o in_person βœ…
doctor_name String Nome del medico βœ…
meeting_link String (URL) Link per videocall Solo se video_call

Consulto Medico Completato

Inviato dopo il completamento della visita medica, con caricamento referto.

Esempio Payload
{
  "event_type": "consultation_completed",
  "contact_firstname": "Claudio",
  "contact_lastname": "Bolognesi",
  "contact_email": "claudio.lat46@gmail.com",
  "contact_phone": "+39 333 1234567",
  "contact_location": "AR",
  "session_id": "sess_abc123def456",
  "consultation_date": "2025-11-25",
  "doctor_name": "Dr. GarcΓ­a LΓ³pez",
  "report_url": "https://platform.jorgedotto.com/reports/sess_abc123def456.pdf",
  "recording_url": "https://platform.jorgedotto.com/recordings/sess_abc123def456.mp4"
}
Campo Tipo Descrizione Obbligatorio
event_type String "consultation_completed" βœ…
session_id String ID sessione βœ…
consultation_date String (YYYY-MM-DD) Data consulto βœ…
doctor_name String Nome del medico βœ…
report_url String (URL) URL del referto medico βœ…
recording_url String (URL) URL registrazione (opzionale) ❌

Piano Nutrizionale Inviato

Inviato quando il nutrizionista invia il piano nutrizionale (48 ore dopo il consulto).

Esempio Payload
{
  "event_type": "nutrition_plan_sent",
  "contact_firstname": "Claudio",
  "contact_lastname": "Bolognesi",
  "contact_email": "claudio.lat46@gmail.com",
  "contact_phone": "+39 333 1234567",
  "contact_location": "AR",
  "session_id": "sess_abc123def456",
  "nutritionist_name": "Dra. MarΓ­a FernΓ‘ndez",
  "plan_url": "https://platform.jorgedotto.com/nutrition-plans/sess_abc123def456.pdf",
  "sent_date": "2025-11-27"
}
Campo Tipo Descrizione Obbligatorio
event_type String "nutrition_plan_sent" βœ…
session_id String ID sessione βœ…
nutritionist_name String Nome del nutrizionista βœ…
plan_url String (URL) URL del piano nutrizionale βœ…
sent_date String (YYYY-MM-DD) Data invio βœ…

Survey di Soddisfazione Completata

Inviato quando il cliente completa la survey finale di soddisfazione.

Esempio Payload
{
  "event_type": "survey_completed",
  "contact_firstname": "Claudio",
  "contact_lastname": "Bolognesi",
  "contact_email": "claudio.lat46@gmail.com",
  "contact_phone": "+39 333 1234567",
  "contact_location": "AR",
  "session_id": "sess_abc123def456",
  "survey_score": 9,
  "completed_date": "2025-11-30",
  "survey_url": "https://platform.jorgedotto.com/surveys/sess_abc123def456"
}
Campo Tipo Descrizione Obbligatorio
event_type String "survey_completed" βœ…
session_id String ID sessione βœ…
survey_score Number Punteggio da 1 a 10 βœ…
completed_date String (YYYY-MM-DD) Data compilazione βœ…
survey_url String (URL) Link ai risultati completi ❌

Flusso Completo Customer Journey

Diagramma completo del percorso cliente con i webhook trigger points.

1

Acquisizione Lead

Webhook: website_lead o bot_lead

↓
2

Welcome Email (Brevo)

Automazione interna

↓
3

Registrazione Piattaforma

Webhook: platform_registration

↓
4

Conferma Pagamento

Webhook: payment_confirmed

↓
5A

Percorso Kit

kit_shipped β†’ kit_delivered β†’ pickup_scheduled

OR
5B

Test in Presenza

test_live_scheduled

↓
6

Anamnesi

Webhook: anamnesis_completed

↓
7

Visita Medica

Webhook: appointment_booked β†’ consultation_completed

↓
8

Piano Nutrizionale

Webhook: nutrition_plan_sent (dopo 48h)

↓
9

Survey Finale

Webhook: survey_completed