# Contacts d'un lead

Permet de gérer les contacts associés à un lead via son intérêt sur un programme.

IMPORTANT

Le lead doit disposer d'un intérêt sur le programme associé.

CONSENTEMENTS

Les champs optin_* et optout_* gèrent le consentement par canal (e-mail, téléphone, SMS). Un optout a priorité sur un optin pour le même canal.

# Lister les contacts

Permission requise : lead.view ou lead-extended.view (via le scoping de l'intérêt)

# Requête HTTP

GET https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/leads/{leadId}/contacts

# Paramètres d'URL

Nom de la clé Description
{tenantKey} Clé de l'espace client - Détails
{programId} ID du programme
{leadId} ID du lead

# curl

curl --location --request GET 'https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/leads/{leadId}/contacts' \
    --header 'Accept: application/json' \
    --header 'X-API-Key: VOTRE_CLE_API' \ 

# Body de réponse

DETAILS
{
    "success": true,
    "message": null,
    "data": [
        {
            "id": 277,
            "lead_id": 72933,
            "title": "mr",
            "title_display": "Monsieur",
            "name": "Dupont",
            "firstname": "Jean",
            "fullname": "Jean Dupont",
            "display_name": "Jean Dupont",
            "capacity": null,
            "email1": "jean.dupont@gmail.com",
            "email2": null,
            "phone1": "+33600000000",
            "phone2": null,
            "city": "Paris",
            "zipcode": "75001",
            "country": "FR",
            "address1": "12 rue du Louvre",
            "address2": null,
            "legal_entity": false,
            "legal_status": null,
            "company_name": null,
            "company_city": null,
            "company_zipcode": null,
            "company_country": null,
            "company_address1": null,
            "company_address2": null,
            "company_siret": null,
            "resides_since": 2018,
            "optin_email": true,
            "optin_phone": true,
            "optin_sms": false,
            "optout_email": false,
            "optout_phone": false,
            "optout_sms": false,
            "birthdate": "1985-06-15",
            "birthplace": "Lyon",
            "nationality": "FR",
            "marital_status": "married",
            "marital_status_display": "Marié(e)",
            "profession": "Cadre",
            "socio_professional_category": "private-sector-executives",
            "socio_professional_category_display": "Cadres du secteur privé",
            "is_employed": true,
            "employer_name": "Entreprise A",
            "work_address": null,
            "vehicles": 1,
            "children": 2,
            "monthly_net_income": null,
            "annual_bonus": null,
            "other_annual_income": null,
            "annual_taxable_income_n1": null,
            "annual_taxable_income_n2": null,
            "annual_net_income": null,
            "primary_residence": "tenant",
            "primary_residence_display": "Locataire",
            "own_secondary_residence": false,
            "first_time_homeowner": true,
            "has_already_invested": false,
            "has_already_invested_comment": null,
            "bank_name": "Société Générale",
            "insurance_name": null,
            "has_broker": false,
            "created_at": "2024-01-15T10:00:00.000000Z",
            "updated_at": "2024-03-08T16:54:03.000000Z"
        }
    ]
}

# Consulter un contact

Permission requise : lead.view ou lead-extended.view (via le scoping de l'intérêt)

# Requête HTTP

GET https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/leads/{leadId}/contacts/{contactId}

# Paramètres d'URL

Nom de la clé Description
{tenantKey} Clé de l'espace client - Détails
{programId} ID du programme
{leadId} ID du lead
{contactId} ID du contact

# curl

curl --location --request GET 'https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/leads/{leadId}/contacts/{contactId}' \
    --header 'Accept: application/json' \
    --header 'X-API-Key: VOTRE_CLE_API' \ 

# Body de réponse

Même structure que dans la liste ci-dessus, pour un seul contact.

# Créer un contact

Permission requise : contact.create

# Requête HTTP

POST https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/leads/{leadId}/contacts

# Paramètres d'URL

Nom de la clé Description
{tenantKey} Clé de l'espace client - Détails
{programId} ID du programme
{leadId} ID du lead

# curl

curl --location --request POST 'https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/leads/{leadId}/contacts' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --header 'X-API-Key: VOTRE_CLE_API' \ 

# Paramètres de Body

DOUBLON

Si un contact avec les mêmes coordonnées existe déjà sur un autre lead, la requête est rejetée avec un code 409.

# Schéma

Champ Type Description Requis Format des données
name string Nom Oui
firstname string Prénom Non
title string Civilité Non mr ms — nullable
email1 string Adresse e-mail Non Format e-mail — nullable
email2 string Adresse e-mail secondaire Non Format e-mail — nullable
phone1 string Téléphone Non
phone2 string Téléphone secondaire Non
legal_entity boolean Personne morale Non
legal_status string Statut juridique Non Accéder au tableau — nullable
company_name string Nom de la société Non
company_siret string SIRET Non
city string Ville Non
zipcode string Code postal Non
country string Code pays Non
address1 string Adresse Non
address2 string Adresse 2 Non
resides_since int Réside à l'adresse depuis Non Année (4 chiffres)
birthdate string Date de naissance Non Y-m-d
birthplace string Lieu de naissance Non
nationality string Nationalité Non Code pays
marital_status string Situation maritale Non Accéder au tableau — nullable
profession string Profession Non
socio_professional_category string Catégorie socioprofessionnelle Non Accéder au tableau — nullable
is_employed boolean En activité Non Nullable
vehicles int Nombre de véhicules Non 1 chiffre
children int Nombre d'enfants Non 1 chiffre
primary_residence string Résidence principale Non Accéder au tableau — nullable
own_secondary_residence boolean Résidence secondaire Non
first_time_homeowner boolean Primo-accédant Non
has_already_invested boolean A déjà investi dans l'immobilier Non
has_already_invested_comment string Commentaire investissement Non
bank_name string Banque Non
insurance_name string Assureur Non
has_broker boolean A un courtier Non
optin_email boolean Consentement e-mail Non
optin_phone boolean Consentement téléphone Non
optin_sms boolean Consentement SMS Non
optout_email boolean Opposition e-mail (prioritaire) Non
optout_phone boolean Opposition téléphone (prioritaire) Non
optout_sms boolean Opposition SMS (prioritaire) Non

# Exemple

{
  "name": "Dupont",
  "firstname": "Marie",
  "title": "ms",
  "email1": "marie.dupont@gmail.com",
  "phone1": "+33612345678",
  "marital_status": "married",
  "optin_email": true
}

# Body de réponse

DETAILS
{
    "success": true,
    "message": "Contact créé",
    "data": {
        "id": 16900,
        "lead_id": 72933,
        "title": "ms",
        "title_display": "Madame",
        "name": "Dupont",
        "firstname": "Marie",
        "fullname": "Marie Dupont",
        "display_name": "Marie Dupont",
        "capacity": null,
        "email1": "marie.dupont@gmail.com",
        "email2": null,
        "phone1": "+33612345678",
        "phone2": null,
        "city": null,
        "zipcode": null,
        "country": null,
        "address1": null,
        "address2": null,
        "legal_entity": false,
        "legal_status": null,
        "company_name": null,
        "company_city": null,
        "company_zipcode": null,
        "company_country": null,
        "company_address1": null,
        "company_address2": null,
        "company_siret": null,
        "resides_since": null,
        "optin_email": true,
        "optin_phone": false,
        "optin_sms": false,
        "optout_email": false,
        "optout_phone": false,
        "optout_sms": false,
        "birthdate": null,
        "birthplace": null,
        "nationality": null,
        "marital_status": "married",
        "marital_status_display": "Marié(e)",
        "profession": null,
        "socio_professional_category": null,
        "socio_professional_category_display": null,
        "is_employed": null,
        "employer_name": null,
        "work_address": null,
        "vehicles": null,
        "children": null,
        "monthly_net_income": null,
        "annual_bonus": null,
        "other_annual_income": null,
        "annual_taxable_income_n1": null,
        "annual_taxable_income_n2": null,
        "annual_net_income": null,
        "primary_residence": null,
        "primary_residence_display": null,
        "own_secondary_residence": null,
        "first_time_homeowner": null,
        "has_already_invested": null,
        "has_already_invested_comment": null,
        "bank_name": null,
        "insurance_name": null,
        "has_broker": null,
        "created_at": "2024-03-09T11:00:00.000000Z",
        "updated_at": "2024-03-09T11:00:00.000000Z"
    }
}

# Modifier un contact

Permission requise : contact.update

# Requête HTTP

PUT https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/leads/{leadId}/contacts/{contactId}

# Paramètres d'URL

Nom de la clé Description
{tenantKey} Clé de l'espace client - Détails
{programId} ID du programme
{leadId} ID du lead
{contactId} ID du contact

# curl

curl --location --request PUT 'https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/leads/{leadId}/contacts/{contactId}' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --header 'X-API-Key: VOTRE_CLE_API' \ 

# Paramètres de Body

Mêmes champs que la création. Seuls les champs envoyés sont modifiés.

DOUBLON

Si la modification génère un doublon avec un contact d'un autre lead, la requête est rejetée avec un code 409.

# Exemple

{
  "phone1": "+33698765432",
  "optout_sms": true
}

# Body de réponse

Même structure que la création, avec les champs mis à jour.

# Supprimer un contact

Permission requise : contact.delete

# Requête HTTP

DELETE https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/leads/{leadId}/contacts/{contactId}

# Paramètres d'URL

Nom de la clé Description
{tenantKey} Clé de l'espace client - Détails
{programId} ID du programme
{leadId} ID du lead
{contactId} ID du contact

# curl

curl --location --request DELETE 'https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/leads/{leadId}/contacts/{contactId}' \
    --header 'Accept: application/json' \
    --header 'X-API-Key: VOTRE_CLE_API' \ 

# Body de réponse

DETAILS
{
    "success": true,
    "message": "Contact supprimé",
    "body": "Le contact Jean Dupont a été supprimé.",
    "data": {
        "id": 277,
        "lead_id": 72933,
        "...": "..."
    }
}