# 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" }
]