# Actions commerciales

Permet de gérer les actions commerciales associées à l'intérêt d'un lead sur un programme.

IMPORTANT

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

# Lister les actions commerciales

Permission requise : sales-action.view

# Requête HTTP

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

# 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}/sales-actions' \
    --header 'Accept: application/json' \
    --header 'X-API-Key: VOTRE_CLE_API' \ 

# Body de réponse

DETAILS
{
    "success": true,
    "message": null,
    "data": [
        {
            "id": 38990,
            "type": "call",
            "priority": "high",
            "comment": "A appeler pour préciser le projet",
            "cancellation_comment": null,
            "owner_assignment": "interest-owner",
            "user_id": 126,
            "issue": null,
            "status": "scheduled",
            "scheduled_at": "2024-03-09T11:00:00.000000Z",
            "due_at": "2024-03-09T11:00:00.000000Z",
            "end_at": null,
            "closed_at": null,
            "created_at": "2024-03-08T16:54:03.000000Z",
            "updated_at": "2024-03-08T16:54:03.000000Z"
        }
    ]
}

# Consulter une action commerciale

Permission requise : sales-action.view

# Requête HTTP

GET https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/leads/{leadId}/sales-actions/{salesActionId}

# 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
{salesActionId} ID de l'action commerciale

# curl

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

# Body de réponse

Même structure que dans la liste, pour une seule action.

# Planifier une action commerciale

Permission requise : sales-action.create

# Requête HTTP

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

# 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}/sales-actions' \
    --header 'Accept: application/json' \
    --header 'Content-Type: application/json' \
    --header 'X-API-Key: VOTRE_CLE_API' \ 

# Paramètres de Body

STATUTS À LA CRÉATION

Les statuts autorisés à la création sont : pending, scheduled, completed. Le statut canceled n'est pas autorisé (utiliser la route de clôture). Le statut completed permet l'import historique d'actions passées.

COMPORTEMENT scheduled_at

Lorsque scheduled_at est renseigné, due_at est automatiquement aligné sur la même valeur.

# Schéma

Champ Type Description Requis Format des données
type string Type d'action Oui Accéder au tableau
status string Statut Oui pending scheduled completed
priority string Priorité Non (défaut : medium) low medium high
owner_assignment string Mode d'affectation du commercial Non (défaut : interest-owner) interest-owner manual
user_id int ID du commercial — autorisé uniquement si owner_assignment = manual, interdit sinon Non Nullable
scheduled_at string Date planifiée — requis si status = scheduled, interdit sinon Conditionnel ISO 8601
due_at string Date d'échéance — requis si status = pending, interdit sinon Conditionnel ISO 8601
performed_at string Date de réalisation — requis si status = completed, interdit sinon Conditionnel ISO 8601
issue string Résultat — requis si status = completed, interdit sinon Conditionnel success failure
comment string Commentaire Non 1000 caractères max — nullable

# Exemple — Action planifiée

{
  "type": "call",
  "status": "scheduled",
  "scheduled_at": "2024-03-09T11:00:00.000000Z",
  "priority": "high",
  "comment": "A appeler pour préciser le projet"
}

# Exemple — Import historique (action passée)

{
  "type": "meeting-in-person",
  "status": "completed",
  "performed_at": "2024-02-15T14:00:00.000000Z",
  "issue": "success",
  "comment": "RDV en bureau de vente, le client est intéressé par le T3"
}

# Body de réponse

DETAILS
{
    "success": true,
    "message": "Action créée",
    "data": {
        "id": 38990,
        "type": "call",
        "priority": "high",
        "comment": "A appeler pour préciser le projet",
        "cancellation_comment": null,
        "owner_assignment": "interest-owner",
        "user_id": 126,
        "issue": null,
        "status": "scheduled",
        "scheduled_at": "2024-03-09T11:00:00.000000Z",
        "due_at": null,
        "end_at": null,
        "closed_at": null,
        "created_at": "2024-03-08T16:54:03.000000Z",
        "updated_at": "2024-03-08T16:54:03.000000Z"
    }
}

# Modifier une action commerciale

Permission requise : sales-action.update

ACTIONS CLÔTURÉES

Une action clôturée (completed ou canceled) ne peut pas être modifiée. La requête sera rejetée avec un code 400.

# Requête HTTP

PUT https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/leads/{leadId}/sales-actions/{salesActionId}

# 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
{salesActionId} ID de l'action commerciale

# curl

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

# Paramètres de Body

Seules les actions ouvertes (pending, scheduled) sont modifiables. Les champs non envoyés ne sont pas modifiés.

# Schéma

Champ Type Description Requis Format des données
type string Type d'action Non Accéder au tableau
status string Statut Non pending scheduled uniquement
priority string Priorité Non low medium high
owner_assignment string Mode d'affectation Non interest-owner manual
user_id int ID du commercial Non Autorisé uniquement si owner_assignment = manual, interdit sinon — nullable
scheduled_at string Date planifiée Non ISO 8601
due_at string Date d'échéance Non ISO 8601
comment string Commentaire Non 1000 caractères max — nullable

# Exemple

{
  "scheduled_at": "2024-03-11T09:00:00.000000Z",
  "priority": "medium"
}

# Body de réponse

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

# Clôturer une action commerciale

Permission requise : sales-action.update

Route dédiée pour compléter ou annuler une action commerciale ouverte.

ACTIONS DÉJÀ CLÔTURÉES

Si l'action est déjà clôturée, la requête est rejetée avec un code 400.

# Requête HTTP

POST https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/leads/{leadId}/sales-actions/{salesActionId}/close

# 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
{salesActionId} ID de l'action commerciale

# curl

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

# Paramètres de Body

# Schéma

Champ Type Description Requis Format des données
status string Statut de clôture Oui completed canceled
performed_at string Date de réalisation — requis si status = completed Conditionnel ISO 8601
issue string Résultat — requis si status = completed Conditionnel success failure
cancellation_type string Type d'annulation — requis si status = canceled Conditionnel Accéder au tableau
cancellation_comment string Commentaire d'annulation — interdit si status = completed Non 1000 caractères max — nullable

# Exemple — Compléter

{
  "status": "completed",
  "performed_at": "2024-03-09T11:30:00.000000Z",
  "issue": "success"
}

# Exemple — Annuler

{
  "status": "canceled",
  "cancellation_type": "duplicate",
  "cancellation_comment": "Doublon avec l'action #38980"
}

# Body de réponse

DETAILS
{
    "success": true,
    "message": "Action clôturée",
    "data": {
        "id": 38990,
        "type": "call",
        "priority": "high",
        "comment": "A appeler pour préciser le projet",
        "cancellation_comment": null,
        "owner_assignment": "interest-owner",
        "user_id": 126,
        "issue": "success",
        "status": "completed",
        "scheduled_at": "2024-03-09T11:00:00.000000Z",
        "due_at": "2024-03-09T11:00:00.000000Z",
        "end_at": null,
        "closed_at": "2024-03-09T11:30:00.000000Z",
        "created_at": "2024-03-08T16:54:03.000000Z",
        "updated_at": "2024-03-09T11:30:00.000000Z"
    }
}

# Modèle

Champ Type Description Exemple
id int ID de l'action 38990
type string Type d'action call
priority string Priorité high
comment string Commentaire A appeler
cancellation_comment string Commentaire d'annulation nullable
owner_assignment string Mode d'affectation interest-owner
user_id int ID du commercial affecté 126 — nullable
issue string Résultat (si complétée) success failure — nullable
status string Statut scheduled
scheduled_at string Date planifiée 2024-03-09T11:00:00.000000Z
due_at string Date d'échéance nullable
end_at string Date de fin (calculée : scheduled_at + durée du type) nullable — lecture seule
closed_at string Date de clôture (renseignée automatiquement) nullable — lecture seule
created_at string Date de création 2024-03-08T16:54:03.000000Z
updated_at string Dernière mise à jour 2024-03-08T16:54:03.000000Z

# Annexes

# Type d'action commerciale

Liste des types d'actions commerciales

DETAILS
[
  { "key": "request-to-process", "name": "Demande à traiter" },
  { "key": "call", "name": "Appel" },
  { "key": "send-email", "name": "Envoi d'e-mail" },
  { "key": "send-sms", "name": "Envoi de SMS" },
  { "key": "meeting-phone", "name": "Rendez-vous téléphonique" },
  { "key": "meeting-video", "name": "Rendez-vous visio-conférence" },
  { "key": "meeting-in-person", "name": "Rendez-vous physique" },
  { "key": "other", "name": "Autre tâche" }
]

# Priorités

Liste des priorités

DETAILS
[
  { "key": "high", "name": "Priorité haute" },
  { "key": "medium", "name": "Priorité moyenne" },
  { "key": "low", "name": "Priorité basse" }
]

# Type d'annulation

Valeurs acceptées pour cancellation_type (requis lorsque status = canceled)

DETAILS
[
  { "key": "duplicate", "name": "Doublon" },
  { "key": "error", "name": "Erreur" },
  { "key": "delay-expired", "name": "Délai expiré" },
  { "key": "other", "name": "Autre" }
]