Documentation · Documentation technique

Stockage et traitement des leads

Ce document décrit comment le plugin ADP Car Market Hub capture les soumissions de formulaires de contact et de demandes d'essai, où elles sont stockées, comment le statut de leur flux de travail est géré et quels e-mails automatisés sont envoyés.

Quand utiliser ce document

Lisez ce document si vous devez :

  • Comprendre le schéma et le cycle de vie d'un lead généré par le formulaire de contact du plugin.
  • Mapper les données de lead vers un CRM externe via l'écran d'administration des leads ou les champs post-meta _as24ci_lead_*.
  • Diagnostiquer des notifications manquantes ou des statuts de flux de travail bloqués.
  • Migrer des leads entre différents environnements.

Pour les points de terminaison REST/AJAX entrants, voir REST API Endpoints et AJAX Actions. Pour les notifications sortantes, voir Webhooks.

Aperçu

Les leads sont stockés sous forme de publications du type de publication personnalisé (CPT) as24ci_lead, implémenté dans AS24CI\Leads_CPT. Le CPT est enregistré comme public => false, show_ui => false et show_in_rest => false, de sorte qu'il n'est pas exposé sur le front-end ni à l'API REST de WordPress. L'onglet d'administration Leads fournit un tableau de liste personnalisé pour la visualisation, la recherche, les modifications de statut et la suppression.

Chaque soumission passe par le formulaire de contact (AS24CI\Contact_Form), qui :

  1. Valide et assainit les entrées du formulaire.
  2. Envoie l'e-mail de notification au concessionnaire et l'e-mail de confirmation au client (en utilisant soit les modèles personnalisés configurés, soit les valeurs par défaut intégrées).
  3. Appelle Leads_CPT::save_lead() pour enregistrer un nouvel enregistrement de lead.
  4. Enregistre un événement d'analyse lead_sent lorsqu'un ID de véhicule est présent.

Champs de publication des leads

Leads_CPT::save_lead() écrit les clés méta suivantes :

Clé métaSourceAssainisseur
_as24ci_lead_nameFormulaire Nomsanitize_text_field
_as24ci_lead_emailFormulaire E-mailsanitize_email
_as24ci_lead_phoneFormulaire Téléphonesanitize_text_field
_as24ci_lead_messageFormulaire Messagewp_kses_post
_as24ci_lead_vehicle_idID de publication du véhiculeabsint
_as24ci_lead_vehicle_titleTitre du véhicule au moment de la soumissionsanitize_text_field
_as24ci_lead_vehicle_listing_idIdentifiant de l'annonce sourcesanitize_text_field
_as24ci_lead_vehicle_urlPermalien du véhiculesanitize_url
_as24ci_lead_source_urlRéférent HTTP ou URL du véhiculesanitize_url
_as24ci_lead_dateHorodatage de soumission UTC (Y-m-d H:i:s)
_as24ci_lead_email_sent1 lorsque les deux e-mails ont été envoyés, sinon 0
_as24ci_lead_statusStatut du flux de travail (par défaut new)
_as24ci_lead_appointment_dateDate de l'essai routier (Y-m-d ou Y-m-d H:i)Vérification stricte du format
_as24ci_lead_is_test_drive1 lorsque le formulaire est une demande d'essai

Le post_title est défini sur le nom du contact et post_status est publish.

Flux de travail des statuts

Leads_CPT définit quatre statuts de flux de travail :

ConstanteSlugLibellé par défaut
STATUS_NEWnewNouveau
STATUS_CONTACTEDcontactedContacté
STATUS_CLOSEDclosedClôturé
STATUS_SPAMspamIndésirable

get_lead_status() renvoie le statut stocké, avec pour valeur par défaut new lorsque la méta est manquante ou non reconnue. update_lead_status() rejette les valeurs inconnues.

L'action de modification de statut d'administration est exposée via le gestionnaire AJAX as24ci_update_lead_status (habilitation : manage_as24_imports, jeton de sécurité : as24ci_update_lead_status).

Instructions étape par étape

Pour examiner et traiter un lead :

  1. Ouvrez l'onglet d'administration Leads.
  2. Utilisez la zone de recherche pour filtrer par nom, e-mail, ID d'annonce ou titre de véhicule (correspondance côté serveur LIKE avec les clés méta correspondantes).
  3. Utilisez la liste déroulante des statuts pour filtrer par new, contacted, closed ou spam.
  4. Ouvrez un lead pour afficher ses détails, puis modifiez le statut au fur et à mesure de l'avancement du flux de travail.
  5. Utilisez l'action de suppression pour retirer définitivement un lead. L'enregistrement est supprimé via wp_delete_post( $id, true ) ; il n'y a pas d'étape de corbeille pour as24ci_lead.

Comportement des e-mails

Deux e-mails sont envoyés par soumission :

  • Notification concessionnaire — envoyée à l'adresse configurée dans as24ci_lead_recipient_email. Utilise le format HTML et inclut les détails du véhicule, du client et du message. Un modèle personnalisé peut être configuré via les réglages d'administration des Leads.
  • Confirmation client — envoyée à l'adresse e-mail du visiteur. Dispose de modèles distincts pour les demandes standard et les réservations d'essais routiers, et prend en charge un modèle personnalisé stocké dans l'option as24ci_lead_email_template_customer.

Les deux e-mails utilisent wp_mail(). La méta _as24ci_lead_email_sent enregistre si les deux messages ont été envoyés avec succès (les valeurs de retour booléennes de wp_mail() sont combinées avec un opérateur ET).

Référence de configuration

Clé d'optionObjectif
as24ci_lead_recipient_emailAdresse du destinataire pour l'e-mail de notification du concessionnaire.
as24ci_lead_email_template_customerModèle HTML personnalisé facultatif pour la confirmation du client.

D'autres options de modèle pour l'e-mail côté concessionnaire peuvent être exposées dans l'onglet d'administration Leads. Vérifiez la liste exacte par rapport à la version actuelle du plugin avant de publier des textes destinés aux clients.

Notes opérationnelles

  • Le CPT n'est volontairement pas exposé dans l'API REST ou l'éditeur de blocs ; considérez l'onglet Leads de l'administration WP comme l'unique interface utilisateur.
  • wp_count_posts( 'as24ci_lead' ) est utilisé par le widget du tableau de bord pour afficher le nombre total de leads.
  • Les leads sont écrits à partir de la même requête HTTP que celle qui a traité la soumission du formulaire. Un échec de wp_mail() n'empêche pas le stockage du lead ; le drapeau _as24ci_lead_email_sent reflète uniquement le statut de l'e-mail.
  • L'événement d'analyse lead_sent est uniquement enregistré lorsqu'un vehicle_id valide est présent dans la soumission.
  • Intégration des webhooks : un webhook sortant new_lead est connecté en interne sur l'action as24ci_lead_saved. Vérifiez dans la version actuelle du plugin si cette action est déclenchée au moment de la sauvegarde du lead avant de vous y fier pour des intégrations de production.

Dépannage

  • Le lead est enregistré mais aucun e-mail n'arrive — vérifiez la méta _as24ci_lead_email_sent. Si elle est 0, wp_mail() a échoué. Vérifiez la configuration SMTP/messagerie et l'adresse du destinataire.
  • Le lead de demande d'essai n'a pas de date de rendez-vous — le rendez-vous est uniquement stocké lorsque l'entrée correspond à Y-m-d H:i ou Y-m-d et représente une date réelle du calendrier. Les dates mal saisies sont ignorées silencieusement pour maintenir la cohérence de l'enregistrement du lead.
  • Les modifications de statut sont annulées au rechargement — confirmez que la mise à jour du statut AJAX a renvoyé success. Un 403 indique que l'utilisateur n'a pas les droits manage_as24_imports ; un 400/Invalid parameters signifie que l'ID du lead ou le statut était manquant ou invalide.
  • La recherche ne renvoie aucun résultat malgré un contenu correspondant — les recherches utilisent LIKE par rapport à quatre clés méta spécifiques. Les termes de recherche qui n'apparaissent que dans le corps du message ne sont pas indexés.
  • Les totaux de leads sur le widget du tableau de bord semblent incorrects — le décompte est basé uniquement sur le statut publish. Les leads marqués comme indésirables restent publish mais avec _as24ci_lead_status = spam.

Documents connexes