{{ photoViewer.index + 1 }} / {{ photoViewer.list.length }}

Traçabilité

Historique des actions

{{ statutAuditModal.rdv?.civilite }} {{ statutAuditModal.rdv?.nom }} · {{ statutAuditModal.rdv?.agence }}

  • {{ row.title }}

    {{ row.statutLine }}

    {{ row.body }}

Audit honorés

Auto-clĂŽture 90 min — incohĂ©rences

Rendez-vous passés en « Honoré » par le programme alors que la traçabilité ou la mention agence indiquait déjà un pas venu / no-show. Cliquez une ligne pour prévisualiser avant correction.

{{ honoreAutoClotureAuditModal.rows.length }} détecté(s) {{ honoreAutoClotureAuditPortefeuilleCount }} avec commission portefeuille
Analyse en cours

Aucun rendez-vous suspect sur ce filtre.
Bonne nouvelle — ou relancez l’analyse aprùs synchro Firestore.
Sélectionnez un rendez-vous dans la liste pour voir le détail et la traçabilité.

{{ honoreAutoClotureAuditSelectedCount }} sélectionné(s) pour correction groupée.

Wsh wsh !
Les sous rentrent 💾

Au top, nouveau RDV validé !

{{ epicAlert.rdv?.nom }}

{{ epicAlert.rdv?.agence }}

Ces clients...
Vraiment fatiguants ! 🙄

Votre rendez-vous n'est pas venu.
N'hésitez pas à rappeler {{ epicAlert.rdv?.nom }} pour voir si on peut le remplacer !

Mais bon, c'est la vie ! đŸ€·â€â™‚ïž

Coup dur ! đŸ„Š

Mission échouée avec {{ epicAlert.rdv?.nom }}.

On encaisse et on rebondit ! đŸ’Ș

{{ urgenceRdvModal.rdv?.civilite }} {{ urgenceRdvModal.rdv?.nom }} · {{ urgenceRdvModal.rdv?.agence }}

Agence {{ urgenceRdvModal.rdv?.agence || '—' }} Motif {{ urgenceRdvModal.rdv?.cancellationReview?.reason || urgenceRdvModal.rdv?.motifAnnulation || '—' }} Qui annule : {{ urgenceRdvModal.rdv.cancellationReview.who }}

{{ actionToast.title }}

{{ actionToast.message }}

Cadenas

{{ unlockFeedbackToast.title }}

{{ unlockFeedbackToast.subtitle }}

Cible en approche

RDV avec {{ agenceLiveAlert.rdv?.nom }} dans exactement 30 minutes. Soyez prĂȘts.

Imminent !

{{ agenceLiveAlert.rdv?.nom }} arrive dans 5 minutes. C'est le moment de lancer le cafĂ© ☕ !

Rendez-vous Honoré

Excellente prestation. Le client reviendra signer, on en est sûrs !
Bonne chance pour la suite 🍀

Vous ĂȘtes au top !

Mandat SignĂ© avec succĂšs đŸ“đŸ”„

Rendez-vous reporté

Le rendez-vous de {{ agenceLiveAlert.rdv?.nom }} a été déplacé.

Nouveau créneau : {{ formatRdvDateLong(agenceLiveAlert.rdv) }} à {{ agenceLiveAlert.rdv?.heure }}

Info retard client

Votre rendez-vous avec {{ agenceLiveAlert.rdv?.nom }} est en retard.

Le client aura {{ agenceLiveAlert.rdv?.retardMinutes || '?' }} minutes de retard.

Vos agences

Mise Ă  jour par l’équipe — merci de prendre connaissance des changements.

  • {{ row.text }}

Message important de C&N Solutions

Diffusion Ă©quipe — merci de confirmer votre lecture

Envoyé à {{ importantMessageAlert.sentAtText }}

Message important

{{ importantMessageAlert.contenu }}

Nouveautés de cette mise à jour

  • {{ line }}

Portefeuille prospecteur

Ce rendez-vous n'est plus comptabilisé

{{ portefeuilleImpactModal.rdv?.nom || 'Client' }} — {{ portefeuilleImpactModal.rdv?.agence || 'Agence' }}

Motif

{{ portefeuilleImpactModal.reason || 'Le rendez-vous a été invalidé pour le portefeuille.' }}

Validation du statut

Confirmer la mise Ă  jour avant d'enregistrer

{{ statusChangeValidationModal.rdv?.nom || 'Client' }} — {{ statusChangeValidationModal.rdv?.agence || 'Agence' }}

Portefeuille prospecteur

Ce rendez-vous était honoré et déjà compté dans le portefeuille.

Tarification

Enregistrement réussi

Les barĂšmes sont enregistrĂ©s dans la base (Firebase) : tous les postes et prospecteurs voient les mĂȘmes montants. Sur l’accueil, la progression et les paliers s’affichent pour les prospecteurs et stagiaires uniquement.

{{ appToast.kicker }}

{{ appToast.title }}

{{ appToast.message }}

Calendrier agence

Ouverture exceptionnelle

Vous pouvez sĂ©lectionner n'importe quelle date (mĂȘme un dimanche normalement fermĂ©). AprĂšs validation, l'Ă©quipe sera automatiquement notifiĂ©e.

Dates déjà déclarées

{{ row.label }}

Équipe

Initialiser le mot de passe

Pour {{ adminPasswordModal.membre ? (adminPasswordModal.membre.prenom + ' ' + adminPasswordModal.membre.nom).trim() : '' }}. L’ancien mot de passe n’est jamais affichĂ©. Le collaborateur pourra le modifier dans Mon compte.

Mon compte

Changer mon mot de passe

Connectez-vous avec votre identifiant d’équipe pour utiliser cette fonction.

Confirmation appel

Appeler {{ callClientConfirmModal.rdv?.nom || 'ce client' }} ?

L'appel sera lancé maintenant et l'action sera enregistrée dans l'historique du rendez-vous.

Retirer ce membre ?

{{ teamDeleteConfirm.mode === 'hard' ? "Cette suppression est définitive et retire le profil de la corbeille." : "Le profil sera déplacé vers la corbeille (récupérable ensuite)." }}

ARIA

Connexion en cours


ARIA

LVX Privé

Le CRM privé de LVX.

ARIA centralise la gestion des rendez-vous, le suivi prospecteur, les validations agence et les outils CRM utiles à l'activité quotidienne.

Cette page est publique pour présenter l'application. L'accÚs aux données, aux rendez-vous et aux espaces de travail reste réservé aux utilisateurs autorisés.

Placement & Reports

Gestion fiable des créneaux, disponibilités et déplacements.

Suivi CRM

Prospection, portefeuille, confirmations et historique centralisés.

AccĂšs application

Choisissez votre espace sécurisé.

Espace administrateur

Qui utilise ARIA ?

Choisissez le profil correspondant à votre session (réglages + comptes créés).

© 2026 LVX. ARIA CRM.

Espace Partenaire Premium

{{ user.name }}

LVX

Rappels du jour

{{ agenceRecallsToday.length }} a faire · {{ agenceRappelsModalRows.length }} total

Aucun rappel a faire aujourd'hui.

{{ rdv.civilite }} {{ rdv.nom }}

{{ formatPhoneForDisplay(rdv.telephone) }}

{{ getRdvRecallRelativeLabel(rdv) || 'Rappel du jour' }} · {{ formatAgenceRecallDateShort(rdv.agenceRecallDate || rdv.agence_recall_date || rdv.rappelAgenceDate) }}

{{ isAgenceRecallDone(rdv) ? 'Fait' : 'A faire' }}

{{ getRdvRecallReason(rdv) }}

Cliquer la carte pour ouvrir la fiche

Nouvelle note

Une note a ete ajoutee pour {{ agenceNoteNoticeModal.rdv?.civilite }} {{ agenceNoteNoticeModal.rdv?.nom }}

Réglages agence

{{ user.name }}

{{ enveloppeModal.rdv?.alerteType === 'placement' ? 'Nouveau rendez-vous placé' : (enveloppeModal.rdv?.reclamationStatus === 'accepted' ? 'Réclamation Validée' : 'K.O. Refusé') }}

Un nouveau rendez-vous a été placé pour vous le {{ formatRdvDateLong(enveloppeModal.rdv) }} à {{ enveloppeModal.rdv?.heure }}.

Super, désolé pour le désagrément ! Le K.O. a bien été pris en compte pour {{ enveloppeModal.rdv?.nom }}.

Nous ne pouvons pas accepter ce K.O. pour {{ enveloppeModal.rdv?.nom }}. Il ne rentre pas dans nos conditions de réclamation.

{{ currentDateWeekday }}

{{ currentDateDayMonth }}

{{ currentTimeHm }} :{{ currentTimeSec }}

Performance

Rappel photos K.O.

{{ agenceKoPhotoReminderBanner.count }} rĂ©clamation(s) avec preuves manquantes — {{ agenceKoPhotoReminderBanner.line }} Ouvrez RĂ©clamations puis la fiche pour envoyer les photos.

Activité du mois

Réclamations & K.O.

Demandes en cours et décisions sur vos dossiers.

Vérification

No-show : l’équipe appelle le client pour confirmer la prĂ©sence. DĂ©lai habituel 24 Ă  48 h.

Annulations : chaque demande d’annulation agence est validĂ©e ou refusĂ©e par l’équipe avant passage en statut dĂ©finitif.

{{ agenceCurrentView === 'reclamations' ? 'Aucune rĂ©clamation en cours pour le moment.' : (agenceCurrentView === 'verif_pas_venu' ? (agenceVerifSubtab === 'annulation' ? 'Aucune demande d’annulation en vĂ©rification.' : 'Aucune vĂ©rification « pas venu » en cours.') : 'Aucun rendez-vous dans cette vue.') }}

Informations agence

Toutes les notes et décisions récentes sur vos rendez-vous.

Aucune note recente pour le moment.

Objectif et demande de RDV

Demandez des RDV supplĂ©mentaires sur le mois en cours et/ou ajustez l’objectif du mois prochain.

Objectif du mois

{{ agenceCounts.rdvsMois }} / {{ currentAgenceObjectif || '∞' }} ({{ agenceFilterMonthLabel || 'pĂ©riode' }})

DerniÚre demande : {{ agenceObjectiveMyLatestRequest.status === 'approved' ? 'Acceptée' : agenceObjectiveMyLatestRequest.status === 'rejected' ? 'Refusée' : 'En attente' }}

Cible {{ agenceObjectiveMyLatestRequest.targetYm || '—' }} · Objectif prochain mois {{ agenceObjectiveMyLatestRequest.objectif ?? '—' }} · +{{ agenceObjectiveMyLatestRequest.extraRdvsCurrentMonth ?? agenceObjectiveMyLatestRequest.extraRdvs ?? 0 }} RDV (en cours)

Objectif actuel

{{ currentAgenceObjectif || '∞' }}

Valeur actuellement appliquée à votre agence.

La demande sera transmise Ă  l’équipe.

Mes commerciaux

Performance sur le mois filtrĂ© (en-tĂȘte) — ajoutez ou modifiez votre Ă©quipe.

{{ bestCommercialName }} est le meilleur ce mois-ci

Mes commerciaux

Objectif global (mandats / mois)

Place un objectif pour vos commerciaux pour un ou plusieurs mois. Ajoute des lignes avec le bouton +, puis enregistre.

{{ formatYmLabelFr(makeYm(row.year, row.month)) || 'Mois' }}

mandats

Historique

Aucun objectif enregistré.

{{ formatYmLabelFr(o.ym) || o.ym }} — {{ o.objectiveMandats }} mandats

{{ o.ym === agenceSelectedYm ? 'Mois sélectionné' : '' }}

Mes commerciaux

Objectifs commerciaux (personnalisés)

DĂ©finit un objectif par commercial. Si vide, le commercial suivra l’objectif global du mois (si prĂ©sent).

{{ String(row.nom || 'C').substring(0,1).toUpperCase() }}

{{ row.nom }}

Objectif mandats / mois

Nouveau Commercial

Aucun commercial — commencez par « Ajouter ».

{{ comm.nom.charAt(0).toUpperCase() }}

{{ comm.nom }}

Mandats Signés

{{ getCommercialStats(comm.id).mandats }}

À venir ({{ agenceFilterMonthLabel || 'pĂ©riode' }})

{{ getCommercialStats(comm.id).avenir }}

Objectif mandats (mois)

Progression {{ getCommercialStats(comm.id).mandats }} / {{ getCommercialObjectiveMandats(comm) || '∞' }}

Objectif atteint

BientĂŽt atteint

Taux de conversion

{{ getCommercialStats(comm.id).taux }}%

Mes commerciaux

{{ commercialTreatedRdvsModal.title }}

{{ commercialTreatedRdvsModal.subtitle }}

Aucun rendez-vous traité

{{ calMonthYearLabel }}

{{ day.dayShort }}

{{ day.dayNum }}

Férié

Ouvert : RDV acceptés

{{ String(Number(h) % 1 === 0 ? `${String(Math.floor(Number(h))).padStart(2, '0')}h` : `${String(Math.floor(Number(h))).padStart(2, '0')}h30`) }}
{{ day.closed ? 'Fermé' : getCalSlotClosedLabel(day.dateStr, h) }}

{{ normalizeRdvStatut(ev) === 'bloque' ? (ev._calBlockedRangeLabel || ev.heure) : ev.heure }}

{{ normalizeRdvStatut(ev) === 'bloque' ? 'INDISPONIBLE' : (ev.nom || '—') }}

{{ ev.modele }}

Ajouter Ă  mon agenda

{{ agendaAddModal.title }}

Confirmation Agenda

Une page Google Agenda vient de s'ouvrir.

Avez-vous bien ajouté ou mis à jour ce rendez-vous dans votre agenda ?

ARIA

Connexion ARIA

{{ user.name }}

Panier

Flux en direct des derniers rendez-vous placés.

Aucun nouveau rendez-vous dans les 10 dernieres minutes.

{{ currentDateWeekday }}

{{ currentDateDayMonth }}

{{ currentTimeHm }} :{{ currentTimeSec }}

Flux terrain

Retours agences

MĂȘme esprit que l’accueil : filtres clairs, tout dĂ©file avec la page.

Tout est Ă  jour !

Vous n'avez aucun retour d'agence Ă  traiter pour ces filtres.

{{ getStatutsRdvStatusLabel(rdv) }} {{ getStatutActorLabel(rdv) }}

Statut en base : {{ formatStatutLabel(rdv) }}

MÀJ : {{ formatStatutUpdatedAt(rdv) }}

{{ rdv.civilite }} {{ rdv.nom }}

{{ formatRdvDateJoliFr(rdv) }} Ă  {{ rdv.heure }}

{{ getStatutsRdvReportDatesText(rdv) }}

{{ rdv.agence }}

Créé par {{ rdv.createur || rdv.createdBy }}

Motif Agence

{{ getKoReasonLabel(rdv) }}

Commentaire agence

{{ getKoAgencePhotoComment(rdv) }}

Preuves jointes ({{ rdv.koAgencePhotoUrls.length }})

ContrĂŽle terrain

Vérification

L’agence a dĂ©clarĂ© un no-show. Indiquez directement s’il s’est bien prĂ©sentĂ© : non = pas venu confirmĂ© (non facturĂ©), oui = rendez-vous honorĂ© et facturĂ©. Les administrateurs voient toutes les files.

L’agence demande l’annulation d’un rendez-vous : vĂ©rifiez le motif, puis validez l’annulation ou refusez pour rĂ©tablir le crĂ©neau (statut prĂ©cĂ©dent).

đŸ€ž

{{ startingRdvAlert.count > 1 ? `Vous avez ${startingRdvAlert.count} rendez-vous qui commencent !` : 'Vous avez un rendez-vous qui commence !' }}

{{ startingRdvAlert.count > 1 ? 'On croise les doigts pour cette fournée !' : `Chez ${startingRdvAlert.agence}, on espÚre que ça va bien se passer !` }}

Entreprise partenaire

{{ user.name }}

Mon Portefeuille (HT)

{{ displayAmount(prospecteurGains) }}

C.A. Mensuel (TTC)

{{ displayAmount(caMensuelAdminTTC) }}

Placés

Conseils du moment

Nouveau conseil

{{ currentDashboardConseil.title || 'Conseil du moment' }}

{{ currentDashboardConseil.message || 'Ajoutez un conseil dans Scripts pour le voir ici.' }}

Conseil {{ dashboardConseilIndex + 1 }} / {{ scriptConseilsGlobalBlocks.length }}

{{ dashboardBottomTab === 'timeline' ? 'Mini timeline live' : (currentStatusFilter ? formatStatutLabel(currentStatusFilter) : (dashFilterDay === 'today' ? 'Rendez-vous du jour' : (dashFilterDay === 'yesterday' ? 'Rendez-vous d’hier' : 'Rendez-vous de demain'))) }}

{{ adminLiveTimelineEvents.length }} {{ dashFilteredRdvs.length }}

Aucun événement récent

Rien Ă  afficher

Aucun rendez-vous ne correspond à ces critÚres. Pause bien méritée ou fin de journée ?

Agence {{ getClientInitials(rdv) }}
{{ rdv.civilite }} {{ rdv.nom }}

Agence : {{ getAgenceMetaForRdv(rdv).nom }}

Placé par {{ getPlacedByLabelForViewer(rdv) }}

{{ formatRdvDateShort(rdv) }} {{ rdv.heure }}
{{ formatStatutLabel(rdv) }} {{ getRdvElapsedSinceLabel(rdv) }}
En cours Temps restant statut : {{ formatAgenceStatutCountdown(rdv) }}
{{ formatPhoneForDisplay(rdv.telephone) }}
{{ rdv.modele || 'ModÚle non renseigné' }}

BibliothĂšque scripts

Scripts d’appel

Page dĂ©diĂ©e pour Ă©crire et modifier vos scripts d’appel, sans passer par les critĂšres agence.

Script global (toutes les agences)

{{ scriptsPageEditMode ? 'Mode édition' : 'Lecture' }}
{{ block.label || 'Bloc sans titre' }}

{{ block.message || 'Aucun texte dans ce bloc.' }}

Resultats: {{ scriptObjectionsFiltered.length }}

Proposer une objection

Suggestions a valider ({{ scriptPendingObjectionSuggestions.length }})

Aucune suggestion en attente.

Proposé par {{ sug.createdBy || 'Equipe' }}

Mes suggestions

{{ sug.objection || 'Suggestion' }}

Statut: {{ sug.status === 'approved' ? 'Validee' : (sug.status === 'rejected' ? 'Refusee' : 'En attente') }}

Aucune objection ne correspond a la recherche.

Objection {{ entry.idx + 1 }}

« {{ entry.row.objection || '...' }} »

{{ entry.row.response || '...' }}

{{ kw }} Aucun mot-cle
Aucun message enregistré pour le moment.

Message {{ idx + 1 }}

{{ msg.title || 'Sans titre' }}

{{ msg.message || 'Aucun contenu.' }}

Aucun conseil enregistré pour le moment.

Conseil {{ idx + 1 }}

Nouveau conseil

{{ tip.title || 'Sans titre' }}

{{ tip.message || 'Aucun contenu.' }}

Points importants

Point important

{{ point.title || 'Point important' }}

« {{ point.message || 'Ajoutez votre message important.' }} »

Pilotage réseau

Statistiques agences

Vue d’ensemble du mois : mandats, pas venus, C.A. HT estimĂ© (tarifs agence), puis dĂ©tail par agence.

{{ adminAgenceStatsYmLabel }} {{ adminAgenceStatsFilterLabel }}

RDV comptés

{{ adminAgenceStatsGlobalTotals.totalRdvs }}

Sur la période (tous statuts)

Mandats

{{ adminAgenceStatsGlobalTotals.mandats }}

OK M sur le mois

Pas venu

{{ adminAgenceStatsGlobalTotals.pas_venu }}

Honorés

{{ adminAgenceStatsGlobalTotals.honores }}

Taux présence

Ce mois-ci

{{ presenceStats.taux }}%

C.A. HT (estimé)

{{ displayAmount(adminAgenceStatsGlobalTotals.ca_ht) }}

BasĂ© sur tarif agence − gestes (RDV honorĂ©s facturables)

À surveiller

RDV sur la pĂ©riode mais C.A. HT nul ou quasi nul — souvent pas venus / peu d’honorĂ©s facturables ou tarif manquant.

{{ adminAgenceStatsAttentionAgences.length }}
  • {{ row.nom }}

    {{ row.pas_venu }} pas venu · {{ row.total }} RDV

Aucune agence dans ce cas sur cette période.

Top C.A. HT

Agences qui gĂ©nĂšrent le plus de chiffre (honorĂ©s × tarif).

  • {{ idx + 1 }}

    {{ row.nom }}

    {{ row.mandats }} mandats · {{ row.honores }} honorés

    {{ displayAmount(row.ca_ht) }}

Mandats

{{ adminAgenceStatsTableRows[0].mandats }}

Pas venu

{{ adminAgenceStatsTableRows[0].pas_venu }}

Honorés

{{ adminAgenceStatsTableRows[0].honores }}

C.A. HT

{{ displayAmount(adminAgenceStatsTableRows[0].ca_ht) }}

Taux présence

Agence · mois

{{ (adminAgenceStatsTableRows[0].honores + adminAgenceStatsTableRows[0].pas_venu) > 0 ? Math.round((adminAgenceStatsTableRows[0].honores / (adminAgenceStatsTableRows[0].honores + adminAgenceStatsTableRows[0].pas_venu)) * 100) : 0 }}%

SynthĂšse par agence

{{ adminAgenceStatsYmLabel }}
Agence C.A. HT Mand. K.O. Pas venu AnnulĂ© OK OK M ÎŁ
{{ row.nom }} {{ displayAmount(row.ca_ht) }} {{ row.mandats }} {{ row.ko }} {{ row.pas_venu }} {{ row.annule }} {{ row.ok }} {{ row.ok_m }} {{ row.total }}
Aucune agence active ou données encore vides.

Évolution sur le mois

{{ adminAgenceStatsFilterLabel }} — volume par jour (date du rendez-vous). Échelle : pic du mois à {{ adminAgenceStatsDailyMax }} RDV.

K.O. Pas venu AnnulĂ© OK OK M
{{ day.total || '' }}
{{ day.dayNum }}

{{ calMonthYearLabel }}

{{ calAgencyLiveStatus.label }} {{ calAgencyLiveStatus.subLabel }}

{{ day.dayShort }}

{{ day.dayNum }}

Férié

Ouvert : RDV acceptés

{{ String(Number(h) % 1 === 0 ? `${String(Math.floor(Number(h))).padStart(2, '0')}h` : `${String(Math.floor(Number(h))).padStart(2, '0')}h30`) }}
{{ day.closed ? 'Fermé' : getCalSlotClosedLabel(day.dateStr, h) }}

{{ normalizeRdvStatut(ev) === 'bloque' ? (ev._calBlockedRangeLabel || ev.heure) : ev.heure }}

{{ normalizeRdvStatut(ev) === 'bloque' ? 'INDISPONIBLE' : (ev.nom || '—') }}

{{ ev.modele }}

Portefeuille — {{ selectedPortefeuilleUser }}

Gains HT — {{ portefeuillePeriodLabel }}

{{ p.name.charAt(0) }}

{{ p.name }}

{{ displayAmount(p.solde) }}

Écart dĂ©tectĂ© (solde thĂ©orique vs portefeuille)

Solde Net Acquis (HT)

{{ displayAmount(user.role === 'admin' ? portefeuilleProspecteursList.find(x => x.nom === selectedPortefeuilleUser)?.solde : prospecteurPortefeuilleSoldeMois) }}

Rémunération de base

Pour 1 RDV honoré

{{ displayAmount(currentPortefeuilleBaseAmount) }}

Objectifs & paliers

Compteur (mois) {{ prospecteurPalierDashboard.count }} RDV honorés facturés
Prime progressive

Prime appliquée (non cumulable)

+{{ displayAmount(prospecteurPalierDashboard.palierActiveHighest.prime) }} — palier {{ prospecteurPalierDashboard.palierActiveHighest.thr }} RDV atteint

Aucun palier de prime atteint sur cette période.

  • {{ row.thr }} RDV
    +{{ displayAmount(row.prime) }} {{ row.acquired ? 'Acquis' : 'En attente' }}

Rappel : une seule prime de palier compte — celle du seuil le plus Ă©levĂ© dĂ©jĂ  atteint.

Prochain palier Objectif {{ prospecteurPalierDashboard.nextPalier.rdv }} RDV Tous atteints
Seuil fixe

Montant fixe appliqué (non cumulable)

{{ displayAmount(prospecteurPalierDashboard.fixeActifHighest.montant) }} — seuil {{ prospecteurPalierDashboard.fixeActifHighest.thr }} RDV atteint

Aucun seuil fixe atteint sur cette période.

  • {{ row.thr }} RDV
    {{ displayAmount(row.montant) }} {{ row.acquired ? 'Acquis' : 'En attente' }}

Un seul montant fixe : celui du dernier seuil atteint.

Prochain seuil Objectif {{ prospecteurPalierDashboard.nextFixe.rdv }} RDV Tous atteints

Solde du mois précédent

Ajoute une ligne sur {{ portefeuillePeriodLabel }} d’un montant Ă©gal au solde HT de {{ portefeuillePrevMonthLabel }}.

Montant : {{ displayAmount(portefeuilleSoldeMoisPrecedentPourBtn) }} HT

Paiement le mois prochain (M+1)

Retire le solde net de {{ portefeuillePeriodLabel }} et le crĂ©dite sur {{ portefeuilleNextMonthLabel }} — le prospecteur voit la ligne en passant au mois suivant.

Solde Ă  reporter : {{ displayAmount(portefeuilleSoldeMoisCourantPourReport) }} HT

Historique (HT)

{{ filteredPortefeuilleTransactions.length }} lignes

Aucun resultat pour cette recherche.

Aucune transaction ce mois-ci.

Les rendez-vous No Show et autres anomalies sont exclus de l'historique et du total. Utilisez le bouton Controle lignes anormales pour les voir/supprimer.

{{ t.label || t.type }} Masqué

{{ t.reason }}

{{ String(t.type || '').replace('_', ' ') }} ‱ {{ formatPortefeuilleTransactionDate(t) }}

{{ transactionMontantPortefeuilleHt(t) >= 0 ? '+' : '' }}{{ displayAmount(transactionMontantPortefeuilleHt(t)) }}

Analyse portefeuille

{{ portefeuilleAuditModal.report.name }} · {{ portefeuillePeriodLabel }}

Solde actuel

{{ displayAmount(portefeuilleAuditModal.report.actual) }} HT

Solde attendu

{{ displayAmount(portefeuilleAuditModal.report.expected) }} HT

{{ portefeuilleAuditModal.report.n }} RDV honorés

Écart

{{ portefeuilleAuditModal.report.gap >= 0 ? '+' : '' }}{{ displayAmount(portefeuilleAuditModal.report.gap) }} HT

Portefeuille cohérent

Aucune ligne en trop ni manquante pour ce mois.

Lignes Ă  corriger ({{ portefeuilleAuditModal.report.issues.length }})

  • {{ issue.label }}

Le solde est trop Ă©levĂ© : des crĂ©dits +20 € existent sans retrait −20 € sur des RDV plus facturĂ©s. La correction ajoute les retraits manquants (le +20 € reste visible).

AprÚs correction, le solde devrait passer à environ {{ displayAmount(portefeuilleAuditModal.report.expected) }} HT (sans ajouter de prime en régularisation).

AprĂšs nettoyage, s’il reste un Ă©cart, une rĂ©gularisation de {{ displayAmount(Math.max(0, portefeuilleAuditModal.report.gapAfterRecalc ?? portefeuilleAuditModal.report.gap)) }} HT pourra ĂȘtre ajoutĂ©e (case cochĂ©e).

Aperçu rÚglement facture

{{ portefeuilleSalairePreview.userName }} · {{ portefeuilleSalairePreview.periodLabel }}

Montant à régler

{{ displayAmount(portefeuilleSalairePreview.amount) }} HT

Ce montant est recalculé au moment de la confirmation d'envoi.

Message envoyé

Actualités

Vos rendez-vous

Aucun rendez-vous Ă  afficher pour le moment.

Aucune réclamation à afficher pour le moment.

Logo agence {{ row.agenceLabel }}

{{ row.rdv?.civilite }} {{ row.rdv?.nom }}

{{ row.rdvDateLabel }} · Maj {{ row.updatedAtLabel }}

{{ row.statusLabel }}
Annulé · {{ row.updatedAtLabel }}

{{ row.annulationMeta.headline }}

  • ‱ {{ row.annulationMeta.motifClean }}
  • ‱ {{ ex.label }} — {{ ex.text }}

Validation équipe

Qui annule · {{ row.annulationMeta.quiAnnule }}

Motif

  • ‱ {{ line }}

Note agence

{{ row.notePreview }}

Réclamation

{{ row.reclamationBadgeLabel }}

{{ row.koReason }}

{{ row.koComment }}

Messages LVX

Historique message LVX

Aucun message LVX enregistré pour vous pour le moment.

Mise Ă  jour

Reçu le{{ lvx.receivedLabel }}

Date de réception indisponible

Vous n’avez pas encore confirmĂ© — saisissez OK dans la fenĂȘtre qui s’affiche.

{{ lvx.contenu }}

  • {{ line }}

Fil d'actualite

Toutes les notes en direct (equipe + agences).

Aucune entrée dans votre fil pour vos rendez-vous pour le moment.

Aucune note recente.

Aucune réclamation récente.

Réclamation

{{ row.rdv?.civilite }} {{ row.rdv?.nom }}

{{ row.rdv?.agence || 'Agence' }} · {{ row.updatedAtLabel }}

{{ row.rdv?.agence || 'Agence' }}

{{ row.statusLabel }} {{ row.reclamationDecision === 'accepted' ? 'Réclamation acceptée' : row.reclamationDecision === 'rejected' ? 'Réclamation refusée' : 'Réclamation en attente' }}

{{ row.reason }}

{{ row.comment }}

Photos ({{ row.photos.length }})

Décision réclamation

{{ row.reclamationDecision === 'accepted' ? 'Acceptée' : (row.reclamationDecision === 'rejected' ? 'Refusée' : 'En attente') }}

Notes

Notes & rappels

Appels Ă  suivre et mĂ©mos — mĂȘme esprit que votre fil d’activitĂ©.

Aucun rappel pour ce filtre.

{{ note.type === 'client' ? 'Rappel client' : 'Note rapide' }} · {{ formatCallNoteCreatedAt(note) }}

{{ note.type === 'client' ? (note.clientName || note.nom || 'Client') : 'Mémo personnel' }}

{{ note.date || '—' }} · {{ note.heure }}

Fait À rappeler
{{ getNoteAgencyLabel(note) }}

Mémo

{{ note.note || note.texte }}

Créé par · {{ note.createdByName }} Prospecteur

Date trop éloignée

Nous vous dĂ©conseillons de placer un rendez-vous si loin pour Ă©viter les No-shows. À titre exceptionnel, vous pouvez quand mĂȘme forcer le placement.

Réglage anti No-Show

Voulez-vous activer ou désactiver la limite de placement à J+2 ?

Nouveau Rendez-vous

Étape {{ wizard.step }} sur 8 — {{ wizardTitles[wizard.step] }}

Nous sommes {{ currentDayNameFr }}. Placement autorisé jusqu'à {{ maxDayNameFr }}.

Aucun brouillon enregistré.

{{ draft.vehicule.modele || 'Nouveau RDV (en cours)' }}

SauvegardĂ© le {{ draft.savedAt }} — BloquĂ© Ă  l'Ă©tape {{ draft.lastStep }}

Ouverture exceptionnelle agence

Cette agence est ouverte exceptionnellement : {{ wizardExceptionalOpeningsNotice.labels.join(' ‱ ') }} +{{ wizardExceptionalOpeningsNotice.extraCount }} autre(s) date(s). Vous pouvez placer des rendez-vous sur {{ (wizardExceptionalOpeningsNotice.extraCount > 0 || wizardExceptionalOpeningsNotice.labels.length > 1) ? 'ces dates' : 'cette date' }}.

Jour · {{ wizardDaySummary.jourPillPasDeQuotas ? 'pas de quotas' : (wizardDaySummary.remJourUi === 1 ? '1 place restante' : wizardDaySummary.remJourUi + ' places restantes') }} Matin · {{ wizardDaySummary.remMatinUi === 1 ? '1 place restante' : wizardDaySummary.remMatinUi + ' places restantes' }} AprÚs-midi · {{ wizardDaySummary.remApremUi === 1 ? '1 place restante' : wizardDaySummary.remApremUi + ' places restantes' }}

Doublon detecte

{{ duplicateUpcomingPhoneNoticeText }}

Si ce n'est pas pour le meme vehicule, vous pouvez placer ce rendez-vous.

  • {{ formatRdvDateJoliFr(d) }} a {{ d.heure || '--:--' }} · {{ d.agence || 'Agence' }} · {{ d.civilite || '' }} {{ d.nom || '' }}

Attention KO deja enregistre

{{ duplicateKnownPhoneKoNoticeText }} Si c'est pour ce meme vehicule, merci de ne pas le rentrer : le placement est bloque.

  • {{ d.civilite || '' }} {{ d.nom || '' }}

    Modele du vehicule : {{ d.modele || d.vehicule_modele || 'Vehicule non renseigne' }}

Type de véhicule

Ce rendez-vous concerne...

Choisissez le type avant d'arriver sur la page des critÚres véhicule.

CritÚres de l'agence non respectés

  • {{ err }}

Remplissage Magique

Détails Facebook détectés :

{{ wizardForm.facebookCaracteristiquesFormatees }}

Blocage KO meme vehicule

Impossible de continuer : un autre prospecteur a deja place ce client et le dossier est passe KO pour ce vehicule. Placez seulement pour un autre vehicule.

{{ wizardForm.vehiculeType === 'moto' ? 'La Moto' : 'Le Véhicule' }}

Pour les annonces moto, merci de faire la recherche manuelle directement sur Leboncoin (collez ensuite le lien ou le texte ici).

€
KM
{{ new Intl.NumberFormat('fr-FR').format(wizardForm.vehicule.prix) }} € {{ wizardForm.vehicule.annee }} {{ new Intl.NumberFormat('fr-FR').format(wizardForm.vehicule.km) }} km

Motif & Infos Agence

Récapitulatif (Cliquer pour modifier)

Agence
Civilité
Client
Téléphone
Date & Heure
Source
{{ wizardForm.vehiculeType === 'moto' ? 'Moto' : 'Véhicule' }}
Prix (€)
Année / Km
/
Motif Vente
Info Agence

Assurez-vous d'avoir envoyĂ© vous-mĂȘme le SMS de confirmation au client avant de valider.

Rendez-vous Placé !

Le dossier a été transmis avec succÚs et l'agence est avertie.

Équipe en ligne

Suivi en temps réel de l'activité des prospecteurs.

{{ onlineUsersCount }} Actif(s)

Personne n'est connecté actuellement.

{{ getOnlinePresenceInitials(ou) }}

{{ ou.name }}

{{ formatTimeAgo(ou.lsTime) }} ‱ {{ ou.deviceType }}

RDV Validé ! {{ getViewLabel(ou.currentView) }}
En crĂ©ation Étape {{ Math.min(7, Math.max(1, Number(ou.rdvStep) || 1)) }}/7 : {{ ou.rdvStepLabel }}

{{ ou.agenceName }}

{{ formatPresenceRdvDateLongFr(ou.rdvDate) }} Ă  {{ ou.rdvHeure }}

{{ ou.rdvVehicule }} {{ displayAmount(ou.rdvPrix) }}

Demandes objectifs agences

Validez ou refusez les RDV en cours et les objectifs demandés pour le mois prochain.

{{ agenceObjectivePendingCount }} en attente

Aucune demande en attente.

{{ req.agenceNom || 'Agence' }}

En cours : {{ req.currentYm || '—' }} · Prochain : {{ req.targetYm || '—' }}

En attente

Objectif demandé

{{ req.objectif ?? '—' }}

RDV en plus (en cours)

{{ req.extraRdvsCurrentMonth ?? req.extraRdvs ?? 0 }}

{{ req.note }}

Quartier Général

Agences, affectations et messages importants (validation cÎté prospecteurs).

Agences actives

{{ teamScopedAgences.length }}

Prospecteurs

{{ teamTotalProspecteurs }}

{{ agence.nom }}

{{ getProspecteursForAgency(agence).length }}
Aucun profil trouvé.
Aucune agence assignée.
{{ ag.nom }}
Aucun message pour l’instant.
{{ msg.date }} {{ msg.cibleLabel }}
Vus {{ teamMessageVuCount(msg) }}/{{ teamMessageTotal(msg) }}

"{{ msg.contenu }}"

TEAM — Espace administrateur

Le Quartier Général (agences, affectations, messages de masse) est réservé aux administrateurs / superviseurs.

{{ reseauAgenceRdvsModal.title }}

{{ reseauAgenceRdvsModal.subtitle }}

Aucun rendez-vous dans cette liste.

Réseau d'Agences

Gérez les objectifs, les limites et les déverrouillages exceptionnels.

Aucune agence ne correspond Ă  votre recherche.

{{ agence.nom }}

{{ agence.adresse || 'Adresse non renseignée' }}

Objectif

{{ agence.objectif || '∞' }}

Moto — {{ reseauAgencesTargetLabel }}

{{ agence.reseauMotoMixLabel }}

{{ agence.reseauMotoUsedActive }}/{{ agence.reseauMotoQuota }}

{{ agence.reseauMotoRestantsPhrase }}

{{ agence.reseauMotoUsedActive }}

Mois suivant (placĂ©s) : {{ agence.placesMoisSuivant }} — {{ reseauAgencesMoisSuivantLabel }}

Capacité sur les 3 prochains jours

{{ cap.label }}

{{ cap.closed ? 'Fermé' : (cap.blocked ? 'Complet' : (cap.noDayQuota ? 'pas de quotas' : (cap.remaining + ' places'))) }}

La jauge et les « restants » se basent sur les honorés (facturables), pas sur les seuls placés.

{{ agence.reseauProgressLabel }}
Progression (honorés / objectif) {{ agence.restantsHonores }} restants

Bilan & factures

SynthÚse, PDF et relances : tout est calculé à partir des RDV honorés du mois que vous pilotez ci-dessous.

Période

Mois analysé

{{ bilanLibelleMoisFr(bilanYmSelectionValide) }}

Génération « magique » des factures

RDV de {{ bilanLibelleMoisFr(bilanMoisPrecedentYM) }} → Brouillons factures

Tant que vous affichez {{ bilanLibelleMoisFr(bilanYmSelectionValide) }}, le bouton de l’onglet PDF gĂ©nĂšre les factures pour le mois prĂ©cĂ©dent ({{ bilanLibelleMoisFr(bilanMoisPrecedentYM) }}). Les reports de facturation par agence se gĂšrent dans l’onglet Reporter (mĂȘme mois sĂ©lectionnĂ© ici).

C.A. honorés (HT)

{{ displayAmount(caBilanMoisCourantHT) }}

À reverser prospecteurs

{{ displayAmount(partProspecteursBilan) }}

Reste C&N Solutions

{{ displayAmount(Math.max(0, caBilanMoisCourantHT - partProspecteursBilan)) }}

HT − commissions prospecteurs (mĂȘme pĂ©rimĂštre RDV)

RDV facturables

{{ kpiBilan.totalRdv }}

TVA ({{ Math.round(kpiBilan.tvaRate || 0) }}%)

{{ displayAmount(kpiBilan.caTVA) }}

C.A. TTC (estimé)

{{ displayAmount(kpiBilan.caTTC) }}

Prévisionnel (mois en cours)

{{ displayAmount(kpiBilanPrevisionnel.ttcPrevisionnel) }}

DĂ©jĂ  gagnĂ© : {{ displayAmount(kpiBilanPrevisionnel.ttcDejaGagne) }} · À venir ({{ kpiBilanPrevisionnel.nAVenir }} RDV) : {{ displayAmount(kpiBilanPrevisionnel.ttcAVenir) }}

Lignes bilan (agence / jour)

Date Agence RDV HT TVA TTC Statut
Aucune ligne de bilan pour ce mois.
{{ ligne.dateLabel }} {{ ligne.agence }} {{ ligne.rdv }} {{ displayAmount(ligne.totalHt) }} {{ displayAmount(ligne.totalTva) }} {{ displayAmount(ligne.totalTtc) }} Reporté En cours

Reporter

PĂ©riode : {{ bilanLibelleMoisFr(bilanYmSelectionValide) }} — changez le mois en haut de page si besoin.

Une agence « reportée » est retirée du C.A. de {{ bilanLibelleMoisFr(bilanYmSelectionValide) }} ; ses prestations seront ajoutées à la génération de factures du mois suivant ({{ bilanLibelleMoisFr(bilanMoisSuivantYM) }}).

{{ bilanYmSelectionValide || '—' }}

Aucun RDV honoré facturable sur ce mois.

SĂ©lectionnez un autre mois en tĂȘte de page ou attendez des RDV honorĂ©s.

Agence RDV TTC (estim.) Action
{{ row.agence }} {{ row.nbRdv }} {{ displayAmount(row.ttc) }}

Création magique

GĂ©nĂšre les brouillons pour {{ bilanLibelleMoisFr(bilanMoisPrecedentYM) }} (mois calendaire prĂ©cĂ©dent par rapport Ă  {{ bilanLibelleMoisFr(bilanYmSelectionValide) }} affichĂ© en tĂȘte de page).

En-tĂȘte PDF : logo (URL) Ă  la place du nom ; pied de page : IBAN (si l’agence est en virement), conditions et mentions lĂ©gales. Les e-mails facturation (factures, relances, confirmations) partent de comptabilite@lvx-auto.fr. L’adresse contact@lvx-auto.fr sert uniquement Ă  l’envoi des accĂšs espace agence (bouton dĂ©diĂ©) — expĂ©diteurs Ă  valider chez Brevo.

Si l’image est hĂ©bergĂ©e sur un CDN sans CORS, le PDF utilise un relais automatique ; en repli, le nom / signature ou « LVX Auto » s’affiche.

{{ facturesListFiltreesActives.length }} facture(s) Ă  traiter sur {{ facturesList.length }}{{ facturesPayeesRecuesMoisBilan.length }} paiement(s) enregistrĂ©(s) en {{ bilanLibelleMoisFr(bilanYmSelectionValide) }} — onglet Paiement reçu

À encaisser (liste filtrĂ©e)

{{ displayAmount(facturesTotauxEncoursFiltres.aEncaisser) }} TTC

Déjà reçu (liste filtrée)

{{ displayAmount(facturesTotauxEncoursFiltres.dejaRecu) }} TTC

Total facturé (liste filtrée)

{{ displayAmount(facturesTotauxEncoursFiltres.totalFacture) }} TTC

{{ facturesSelectedIds.length }} sélectionnée(s)
Aucune facture dans Firestore. Utilisez le bouton ci-dessus ou créez des documents dans la collection factures.
Aucune facture pour cette période. Changez le filtre ou sélectionnez « Toutes les périodes ».
Toutes les factures de cette pĂ©riode sont marquĂ©es payĂ©es. Consultez l’onglet Paiement reçu.
{{ f.statut || 'brouillon' }}
{{ f.numero != null ? f.numero : f.id }}

{{ f.clientNom || f.agence || f.client || '—' }}

{{ f.nbRdv != null ? f.nbRdv : '—' }} RDV · {{ displayAmount(getFactureMontantTTC(f)) }} TTC

1er envoi : {{ formatFactureDateTimeFr(f.datePremierEnvoi) }}

  • {{ formatFactureDateTimeFr(h.at) }} — {{ formatFactureRelanceLabel(h.type) }}

Paiement reçu

Paiements enregistrĂ©s sur le mois affichĂ© en tĂȘte de page ({{ bilanLibelleMoisFr(bilanYmSelectionValide) }}) : filtre sur la date de paiement, pas sur les autres mois.

Tout le monde a payé pour le cycle de facturation lié à ce mois.

Plus aucune facture « envoyée » en attente sur les périodes {{ bilanLibelleMoisFr(bilanMoisPrecedentYM) }} / {{ bilanLibelleMoisFr(bilanYmSelectionValide) }}.

Mois de référence

{{ bilanLibelleMoisFr(bilanYmSelectionValide) }} ({{ bilanYmSelectionValide }})

{{ facturesTotauxPaiementRecuMoisBilan.count }} paiement(s) enregistré(s) ce mois-ci sur {{ facturesList.length }} facture(s) au total.

Total encaissé (ce mois-ci)

{{ displayAmount(facturesTotauxPaiementRecuMoisBilan.totalTTC) }} TTC

Nombre de paiements (ce mois-ci)

{{ facturesTotauxPaiementRecuMoisBilan.count }}

Gains du mois par agence (RDV honorés)

RDV total

{{ paiementRecuAgencesTotals.rdv }}

CA total HT

{{ displayAmount(paiementRecuAgencesTotals.ht) }}

CA total TTC

{{ displayAmount(paiementRecuAgencesTotals.ttc) }}

Ajustez le nombre de RDV par agence et supprimez les lignes non pertinentes.

Aucune donnée agence sur ce mois.
Agence RDV CA HT CA TTC Actions
{{ row.agence }} {{ displayAmount(row.ht) }} {{ displayAmount(row.ttc) }}
Aucune facture dans Firestore.
SĂ©lectionnez un mois valide en tĂȘte de page.
Aucun paiement enregistré ce mois-ci (date de paiement hors {{ bilanLibelleMoisFr(bilanYmSelectionValide) }}).
payée {{ f.numero != null ? f.numero : f.id }}

{{ f.clientNom || f.agence || f.client || '—' }}

{{ f.nbRdv != null ? f.nbRdv : '—' }} RDV · {{ displayAmount(getFactureMontantTTC(f)) }} TTC

Payée le {{ formatFactureDateTimeFr(f.datePaiement) }}

1er envoi : {{ formatFactureDateTimeFr(f.datePremierEnvoi) }}

Relances (périmÚtre mois bilan)

Factures envoyĂ©e dont la pĂ©riode est {{ bilanLibelleMoisFr(bilanMoisPrecedentYM) }} ou {{ bilanLibelleMoisFr(bilanYmSelectionValide) }}. ÉchĂ©ance dĂ©passĂ©e ou dans les 7 prochains jours. Les boutons R1–R3 grisĂ©s = dĂ©jĂ  envoyĂ©s (historique).

Aucune relance Ă  traiter pour ce mois. Les notifications s’éteignent quand vous ouvrez cet onglet (jusqu’à nouvelle Ă©chĂ©ance).

Aperçu de l'e-mail

À : {{ factureEmailPreview.toEmail }}

Objet : {{ factureEmailPreview.subject }}

Confirmer le paiement reçu

Le client peut recevoir un e-mail de remerciement (aperçu ci-dessous).

Objet : {{ facturePayeeModal.subject }}

Envoi Ă  : {{ facturePayeeModal.toEmail }}

Aucun e-mail client trouvĂ© sur la facture / agence — vous pouvez enregistrer le paiement sans envoi.

Aperçu

Supprimer {{ facturesSelectedIds.length }} facture(s) ?

Cette action est définitive. Tapez SUPPRIMER pour confirmer.

Statut facture

{{ factureStatutModal.facture?.numero || factureStatutModal.facture?.id || '' }}

CritĂšres Agences

Consultez les rĂšgles, horaires et scripts de vos partenaires.

{{ agence.nom }}

{{ agence.adresse }}

{{ formatPhoneForDisplay(agence.telephone) }}
{{ critereAgenceOuvertureUi(agence).badge }} {{ critereAgenceOuvertureUi(agence).line }}

{{ selectedCritereAgence.nom }}

Cette agence accepte les motos : vous pouvez placer des rendez-vous moto pour cette agence.

Quota moto (mois {{ critereMotoQuotaLive.monthLabel }}) : {{ critereMotoQuotaLive.used }} / {{ critereMotoQuotaLive.quota }} RDV moto actifs — encore {{ critereMotoQuotaLive.remaining }} à placer.

Toutes les rĂšgles vĂ©hicule au mĂȘme endroit.

{{ criteresAgenceForm.supportsMoto ? 'Moto activée' : 'Voiture uniquement' }}

{{ displayAmount(criteresAgenceForm.prixMin) }}

{{ criteresAgenceForm.kmMax }} km

{{ criteresAgenceForm.ageMaxVehicule }}ans

CritĂšres moto

Pour placer des rendez-vous moto, reportez ces critÚres directement sur Leboncoin lors de votre recherche. Merci de faire la recherche manuellement sur Leboncoin en respectant le prix minimum, le kilométrage maximum et l'ùge maximum indiqués ci-dessous.

Prix min moto

{{ displayAmount(criteresAgenceForm.motoPrixMin) }}

Km max moto

{{ new Intl.NumberFormat('fr-FR').format(Number(criteresAgenceForm.motoKmMax || 0)) }} km

Âge max moto

{{ Number(criteresAgenceForm.motoAgeMaxVehicule || 0) }} ans

Quota moto (mois civil)

Nombre max de RDV moto « actifs » en parallÚle sur le mois de la date du RDV (0 = illimité). Hors simulations admin.

{{ Number(criteresAgenceForm.motoQuotaMois || 0) > 0 ? Number(criteresAgenceForm.motoQuotaMois) : '∞' }} max / mois

Ce mois ({{ critereMotoQuotaLive.monthLabel }}) : {{ critereMotoQuotaLive.used }} dĂ©jĂ  prises sur {{ critereMotoQuotaLive.quota }} — reste {{ critereMotoQuotaLive.remaining }} moto(s) Ă  placer.

{{ formatArrayToString(criteresAgenceForm.exclusions) }}

{{ formatArrayToString(criteresAgenceForm.autorises) }}

Aucun critere vehicule complementaire renseigne.

RĂšgles d'agenda

ParamĂštres dĂ©finis par l’administrateur pour cette agence (placements de RDV).

RDV max / jour

{{ critereAgendaAffichage.parJour }}

RDV max / créneau

{{ critereAgendaAffichage.maxCreneau }}

Matin

{{ critereAgendaAffichage.matin }}

AprĂšs-midi

{{ critereAgendaAffichage.am }}

Objectif (mensuel / agence)

{{ critereAgendaAffichage.objectif }}

Entre deux rendez-vous

{{ critereAgendaAffichage.delaiLabel }}

RÚgles personnalisées par jour

{{ row.day }} Matin : {{ row.matin }} AprÚs-midi : {{ row.aprem }} Total / jour : {{ row.totalJour }} Par créneau : {{ row.creneau }} Intervalle : {{ row.intervalle }}

Mode personnalisé actif

Les quotas globaux sont désactivés. Configurez les rÚgles jour par jour dans la configuration agence.

Modifier les rĂšgles (admin)

Au Top !

Aucune exclusion pour cette agence, le terrain est totalement libre.

AĂŻe aĂŻe ! Faites attention

Merci de suivre strictement ces exclusions pour ne pas faire de hors-jeu :

{{ formatArrayToString(criteresAgenceForm.exclusions) }}

Véhicules Privilégiés / Acceptés

{{ formatArrayToString(criteresAgenceForm.autorises) }}

Zone de Prospection

{{ criteresAgenceForm.zoneMode === 'codes_postaux' ? 'Liste de Codes Postaux spĂ©cifiques' : 'Rayon gĂ©ographique autour de l’agence' }}

{{ criteresAgenceForm.pointsDeRepere || 'Aucun repÚre renseigné.' }}

Horaires de l'agence

Planning d'ouverture et de fermeture.

{{ critereJourLabelsUi[jour] }}
{{ critereHorairesJourCards[jour].badge }}

Simulation RDV agence

CrĂ©ez un faux rendez-vous test (avec SMS) pour l’espace partenaire de cette agence.

Simulation active

L’heure est automatique : En cours = maintenant · Pas en cours = +1h.

Gestion des Objections

Résultats: {{ critereObjectionsFiltered.length }}

Diffuser ces objections

Sélection: {{ critereObjectionDeploySelectedAgencyIds.length }}

« {{ entry.obj.objection || '...' }} »

{{ entry.obj.response || '...' }}

Onglet {{ critereTab }} en cours de montage

Les données respectent la séparation agences / agencyCriteria.

Répertoire

Retrouvez et filtrez tous les rendez-vous.

Agence sélectionnée {{ repertoireAgencyStats.agenceNom }} {{ repertoireAgencyStats.total }} résultat{{ repertoireAgencyStats.total > 1 ? 's' : '' }}

K.O.

{{ repertoireAgencyStats.ko }}

Pas venu

{{ repertoireAgencyStats.pasVenu }}

Honoré

{{ repertoireAgencyStats.honore }}

Mandat

{{ repertoireAgencyStats.mandat }}

Aucun rendez-vous trouvé.

Nouveau
{{ formatRdvDateShort(rdv) }} {{ rdv.heure }}
{{ rdv.civilite }} {{ rdv.nom }}
{{ formatStatutLabel(rdv) }} Maintenu client Répondeur (risque no-show)

{{ rdv.modele || '—' }}

{{ displayAmount(rdv.prix) }}

{{ rdv.telephone }}

{{ rdv.agence }}

{{ rdv.createur }}

{{ user.role === 'supervisor' ? 'Corbeille' : (user.role === 'prospecteur' ? 'Réglages' : 'Réglages Administration') }}

{{ user.role === 'supervisor' ? 'Demandes de suppression & corbeille' : 'Sélectionnez un module' }}

{{ currentSettingsTabObj.label }}

Configuration

Mon Profil

{{ user.initials }}

{{ user.role }}

{{ user.name }}

{{ user.email || '—' }}

Votre nom est géré par l'administrateur.

Apparence

Thùme automatique : clair de 6h à 16h59, sombre de 17h à 5h59 (heure de l’appareil).

Activer le passage automatique jour / nuit

Le bouton lune / soleil (menu) dĂ©sactive ce mode et mĂ©morise le thĂšme choisi. RĂ©activez l’option ici pour retrouver les horaires.

Sécurité

Envoyer un message au client ?

Le client recevra la nouvelle date du rendez-vous.

{{ rescheduleResult.title }}

{{ rescheduleResult.subtitle }}

Creator Assignment

Choose who created this appointment

Filter by role and pick a clean profile below.

No profile found for this role.

Agence du rendez-vous

Choisir une agence autorisée

Aucune agence disponible.

Retirer ce commercial ?

Vous allez retirer {{ commercialDeleteModal.nom }} de votre equipe.

Attitrer un commercial

Sélectionnez le membre de votre équipe qui prend ce rendez-vous.

Aucun commercial créé.
Allez dans "Mes commerciaux" pour les ajouter.

Rendez-vous

Fiche client

{{ getRdvAgenceDateParts(agenceActionModal.rdv).wd }} {{ getRdvAgenceDateParts(agenceActionModal.rdv).day }} {{ getRdvAgenceDateParts(agenceActionModal.rdv).month }}
Heure {{ getRdvAgenceDateParts(agenceActionModal.rdv).time }}
{{ formatStatutLabel(agenceActionModal.rdv) }}
En cours Temps restant : {{ getRdvTimeLeftLabel(agenceActionModal.rdv) }}
{{ getClientInitials(agenceActionModal.rdv) }}

{{ agenceActionModal.rdv?.civilite }} {{ agenceActionModal.rdv?.nom }}

Veille : RDV maintenu

Veille : répondeur / risque no-show

Rappels

Notes

Chargement...
Aucune note pour ce rendez-vous.

{{ getAgenceSharedNoteAuthorLabel(n) }}

{{ formatSmsSentAtForLog(new Date(Number(n.createdAtMs || 0) || Date.now())) }}

{{ n.text }}

K.O. définitif

Statut validĂ© — plus de modification ici.

{{ getKoReasonLabel(agenceActionModal.rdv) }}

{{ getKoAgencePhotoComment(agenceActionModal.rdv) }}

Épreuves ({{ getKoPhotosList(agenceActionModal.rdv).length }})

Véhicule

{{ agenceActionModal.rdv?.modele || 'Non renseigné' }}

Voir l'annonce
Lien annonce non renseigné

Client

{{ formatPhoneForDisplay(agenceActionModal.rdv?.telephone) }}

{{ String(agenceActionModal.rdv?.reclamationStatus || '').toLowerCase() === 'accepted' ? 'Réclamation acceptée' : 'Réclamation refusée' }}

Votre réclamation est validée, vous ne serez pas facturé pour ce rendez-vous.

Votre réclamation a été refusée. Vous gardez l'historique et les photos dans l'onglet Réclamations.

{{ getKoAgencePhotoComment(agenceActionModal.rdv) }}

Délai de 1 h 30 dépassé

Avez-vous eu le mandat ?

MĂȘme si le dĂ©lai est passĂ©, vous pouvez toujours nous indiquer si le mandat a Ă©tĂ© signĂ©.

{{ isOkMandatRdv(agenceActionModal.rdv) ? 'Rendez-vous finalisé (OK Mandat)' : 'Rendez-vous finalisé (Honoré)' }}

Le statut est déjà validé. Vous pouvez consulter la fiche, appeler le client et ajouter vos notes.

Ce rendez-vous est passé en honoré automatiquement suite au délai dépassé de 1 h 30.

Véhicule

{{ agenceActionModal.rdv?.modele || 'Non renseigné' }}

Voir l'annonce
Lien annonce non renseigné

Client

{{ formatPhoneForDisplay(agenceActionModal.rdv?.telephone) }}

Rendez-vous annulé

Ce crĂ©neau est annulĂ©. Vous pouvez proposer une nouvelle date — SMS de confirmation comme pour un report.

Véhicule

{{ agenceActionModal.rdv?.modele || 'Non renseigné' }}

Voir l'annonce

Véhicule

{{ agenceActionModal.rdv?.modele }}

Prix {{ displayAmount(agenceActionModal.rdv?.prix) }}
Année {{ agenceActionModal.rdv?.annee }}
Km {{ formatKmForDisplay(agenceActionModal.rdv?.km) }}
Voir l'annonce

Réclamation en cours

Analyse admin de votre demande K.O.

Rendez-vous Ă  venir

DĂšs l’heure du RDV : 1 h 30 pour HonorĂ©, K.O. ou Pas venu.

Avant {{ agenceActionModal.rdv?.heure }} :

Délai de 1 h 30 dépassé

Vous pouvez consulter la fiche complÚte, mais la modification du statut est désormais bloquée.

Avez-vous eu le mandat ?

MĂȘme dĂ©lai dĂ©passĂ©, vous pouvez encore confirmer le mandat signĂ©.

Correction no-show : choisissez uniquement Honoré ou K.O.

Client venu plus tĂŽt

Définissez le créneau réel et le statut final à appliquer sur la fiche.

Statut Ă  valider

Mandat signé ?

Choisissez OK mandat si le mandat a été signé, ou OK sans mandat si le RDV est honoré sans mandat.

Les deux options enregistrent le rendez-vous comme honoré ; seule la mention mandat change.

Votre annulation sera vĂ©rifiĂ©e par l’équipe.

Demande d’annulation

Annulation en vérification

Les boutons de statut sont indisponibles le temps de la vĂ©rification. Statut : Annulation (vĂ©rif.) — suivi dans VĂ©rification → Annuler.

Véhicule

{{ agenceActionModal.rdv?.modele || 'Non renseigné' }}

Voir l'annonce
Lien annonce non renseigné

Client

{{ formatPhoneForDisplay(agenceActionModal.rdv?.telephone) }}

DĂ©cision de l’équipe

AprĂšs vĂ©rification par l’équipe, notre client n’a jamais souhaitĂ© annuler son rendez-vous.

Le rendez-vous est honorĂ© et facturĂ© : plus d’action de statut cĂŽtĂ© agence.

Le créneau a été rétabli sur la fiche.

Véhicule

{{ agenceActionModal.rdv?.modele || 'Non renseigné' }}

Voir l'annonce
Lien annonce non renseigné

Client

{{ formatPhoneForDisplay(agenceActionModal.rdv?.telephone) }}

Motif du K.O.

Uniquement carrosserie ou mécanique. Les photos sont obligatoires pour valider un K.O.

Preuves photo

Motif : "{{ agenceActionModal.koReason === 'carrosserie' ? 'Carrosserie' : 'MĂ©canique' }}" — ajoutez au moins une photo pour valider le K.O.

{{ (agenceActionModal.koPhotosComment || '').length }}/2000

{{ agenceActionModal.photos.length }} photo(s) sélectionnée(s)

Ajoutez au moins une photo ci-dessus pour activer Envoyer.

Confirmer « Pas venu » ?

Êtes-vous sĂ»r(e) que le client ne s’est pas prĂ©sentĂ© au rendez-vous ?

Une vĂ©rification sera faite par le prospecteur (appel client). DĂ©lai habituel 24 Ă  48 h. Toute dĂ©claration abusive peut ĂȘtre contestĂ©e.

Vérification « pas venu » en cours

Les boutons de statut sont indisponibles pendant la vĂ©rification. Suivi : VĂ©rification → Pas venu (gĂ©nĂ©ralement 24 Ă  48 h).

Véhicule

{{ agenceActionModal.rdv?.modele || 'Non renseigné' }}

Voir l'annonce
Lien annonce non renseigné

Client

{{ formatPhoneForDisplay(agenceActionModal.rdv?.telephone) }}

Le client s'est-il finalement présenté ?

Si oui, on vous proposera uniquement de corriger le statut en Honoré (OK/OKM) ou K.O.

Signaler un retard

L'heure de rendez-vous de ce client sera décalée.

Information Importante

{{ currentRdvAlert.alerteMessage }}

{{ pendingRdvAlertsSummaryLabel }}

{{ r.nom || 'Client' }}

{{ r.alerteType === 'report' ? 'Report' : 'Retard' }}

{{ r.alerteAncienneDate }} → {{ r.alerteNouvelleDate }}

Retard : {{ extractRetardMinutesFromAlert(r) || '?' }} min

Ancienne date :

{{ currentRdvAlert.alerteAncienneDate }}

Nouvelle date :

{{ currentRdvAlert.alerteNouvelleDate }}

N'oubliez pas de mettre Ă  jour votre agenda

Retard annoncé :

+{{ extractRetardMinutesFromAlert(currentRdvAlert) || '?' }} min

Client : {{ currentRdvAlert.nom || '—' }} — CrĂ©neau : {{ currentRdvAlert.heure || '—:—' }}

Vérification No show

Vous avez indiquĂ© Pas venu pour {{ noShowReviewModal.rdv?.nom || 'ce client' }} Ă  {{ noShowReviewModal.rdv?.heure || '—:—' }}.

Si le client s’est prĂ©sentĂ©, merci de corriger le statut. Sinon, confirmez qu’il ne s’est vraiment pas prĂ©sentĂ©.

{{ noteModal.isNew ? 'Nouveau Rappel' : 'Modifier la Note' }}

{{ teamOverlayTitle }}

{{ kpiModal.title }}

Aucun résultat.
{{ rdv.heure }}

{{ rdv.nom }} OK M

{{ formatRdvDateJoliFr(rdv) }}
{{ formatStatutLabel(rdv) }}

Prospecteur : {{ rdv.createur || rdv.createdBy || 'Non assigné' }}

Agence : {{ rdv.agence || 'Non assignée' }}

Configuration Globale

{{ currentAgencyId ? 'Modifier l\'agence' : 'Nouvelle agence' }}

Informations générales

{{ mail }}

Chaque email validé devient bleu.

UtilisĂ© pour les envois PDF / relances si la facture n’a pas d’email dĂ©diĂ©.

{{ (newAgency.sender || '').length }} / 11

S'affichera à la place du numéro sur le téléphone du client (sans espaces ni accents).

Ce lien est partagé par tous les RDV de l'agence (profil / page d'annonces).

Si activé : les jours fériés restent marqués dans le calendrier mais les créneaux restent plaçables. Si désactivé : ils passent en fermé automatiquement.

Objectif mensuel (RDV)

Sert Ă  la jauge « objectif du mois » dans l’espace agence et les tableaux de bord. Laissez vide ou 0 pour ne pas fixer d’objectif (∞).

Planning & Quotas

Gérez la capacité et les horaires d'ouverture de l'agence.

Quotas de la journée
Espacement & Créneaux
h
min

Réglage par champs : heures et minutes (minutes par pas de 5). Les deux vides = aucun intervalle enregistré (le moteur utilise son défaut).

Permet de definir un nombre de RDV et des intervalles differents selon les jours de la semaine.

Mode personnalisé actif

Les blocs du haut sont masqués. Les créneaux utilisent uniquement les rÚgles personnalisées ci-dessous.

{{ ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche'][index] }}

Horaires d'ouverture de l'agence

{{ jour }}
Ouv. -
De À
Agence fermée

AccĂšs Agence & Notifications

Informations légales et tarif

€ HT
{{ (newAgency.prix_ht * 1.2).toFixed(2) }}
€ TTC (TVA incluse 20%)

Le tarif agence applique directement le calcul de facturation.

Mode de paiement facturation

Mode actif : {{ newAgency.modePaiementFacturation === 'virement' ? 'Virement' : 'PrélÚvement' }}

Utilisé par l'app COMPTA pour retrouver automatiquement le client/mandat GoCardless lors des prélÚvements.

Le prélÚvement automatique utilisera ce jour du mois pour cette agence.

Le mail rappelle : factures le 1er du mois, prélÚvement le {{ formatBillingDayLabel(newAgency.gocardlessPrelevementJour) }}.

Ce lien est utilisé dans l'email « Finalisation de votre dossier » (bouton mandat SEPA).

Correction historique des tarifs RDV

Applique `tarifAgenceHT` sur les RDV existants de cette agence (avant/aprĂšs date pivot).

CritÚres de prospection (Auto-synchronisés)

Zone de Prospection

Villes détectées :

{{ formatCritereCpVilleDisplay(ville) }}
km autour de l'adresse de l'agence

Attention : L'adresse de l'agence n'est pas encore renseignée dans l'onglet Identité.

Basé sur : {{ newAgency.adresse }}

Copier les scripts

SĂ©lectionnez les agences qui recevront les mĂȘmes scripts ({{ copyScriptModal.type === 'appel' ? 'Appel' : 'SMS/Message' }}).

Aperçu SMS

{{ smsPreviewModal.type }} — texte aprùs remplacement des tags (exemple)

{{ smsPreviewModal.preview }}

Longueur du message affiché {{ smsPreviewModal.charCount }} / 160

{{ smsCopyModal.copyType ? `Copier le modĂšle ${smsCopyModal.copyType}` : 'Copier les modĂšles SMS' }}

{{ smsCopyModal.copyType ? "Choisissez les agences cibles qui recevront ce modĂšle uniquement." : 'Choisissez les agences cibles qui recevront exactement les mĂȘmes modĂšles.' }}

Copier les e-mails équipe

Choisissez les profils puis copiez les e-mails.

Aucun profil trouvé pour ce filtre.

Nouvelle agence — envoi des e-mails

Cochez les e-mails à envoyer (tout est sélectionné par défaut). Aperçu : mandat SEPA, identifiants espace agence, CGV & confidentialité.

Aperçu 1 — Finalisation dossier (SEPA)

Aperçu 2 — Identifiants agence

Aperçu 3 — CGV & confidentialitĂ©

Facturation — e-mail prĂ©lĂšvement mensuel

Aperçu et envoi du message de facturation: factures le 1er du mois, prélÚvement automatique le jour configuré.

Rappel client

Factures envoyées le 1er de chaque mois.

PrélÚvement effectué le {{ formatBillingDayLabel(newAgency.gocardlessPrelevementJour) }}.

Aperçu — notification prĂ©lĂšvement

Sauter les limites

Sélectionnez le prospecteur. Il n'aura plus de limite (jour / matin / aprÚs-midi / délai) pour placer son prochain RDV unique sur {{ unlockModal.agence.nom }}.

Cadenas deja ouvert

Temps restant : {{ formatUnlockRemainingLabel(unlockModal.agence) }}

{{ readOnlyRdvModal.rdv.civilite }} {{ readOnlyRdvModal.rdv.nom }}

{{ formatRdvDateJoliFr(readOnlyRdvModal.rdv) }} Ă  {{ readOnlyRdvModal.rdv.heure }}

{{ readOnlyRdvModal.rdv.modele }}
Voir l'annonce Pas de lien

Placé par {{ getPlacedByLabelForViewer(readOnlyRdvModal.rdv) }}

Fermer ce créneau ?

Vous allez bloquer la date du {{ formatDateLongFr(calBlockModal.date) }}.

Par défaut : 60 min. Durée personnalisable (ex: 20, 75).

Si renseignĂ©e, la plage horaire (dĂ©but → fin) est utilisĂ©e.

Créer un rendez-vous

Date : {{ calCreateModal.date }}

Débloquer ce créneau ?

Le créneau {{ calUnblockModal.ev?.heure }} redeviendra disponible.

Gestion des absences

Absences déjà déclarées ({{ calSelectedAgencyObject?.nom || 'Agence' }})

Aucune absence enregistrée pour cette agence.

{{ a.reason }}

{{ a.from }} → {{ a.to }}

Créneaux bloqués ({{ calSelectedAgencyBrushBlocks.length }})

Aucun créneau bloqué pour cette agence.

Toutes les absences agences

Aucune absence déclarée.

{{ a.agenceNom }} — {{ a.reason }}

{{ a.from }} → {{ a.to }}

Créneaux bloqués ({{ calSelectedAgencyBrushBlocks.length }})

Aucun créneau bloqué pour cette agence.

Jours fériés

Agence : {{ calSelectedAgencyObject?.nom || '—' }}
{{ calHolidayModal.year }}

{{ agencyWorksOnPublicHolidays(calSelectedAgencyObject) ? "Cette agence travaille les jours fériés (placement autorisé)." : "Cette agence ne travaille pas les jours fériés (jour fermé)." }}

{{ h.label }}

{{ h.dateFr }} ({{ h.date }})

{{ h.isOpen ? 'Travaille' : 'Fermé' }}

Moteurs Ă  Risque

PureTech & BlueHDI (Peugeot, Citroën, Opel)

Les moteurs PureTech (essence) et BlueHDI (diesel) du groupe Stellantis présentent des défauts de conception majeurs (courroie immergée qui se désagrÚge, consommation d'huile excessive, problÚme d'AdBlue).

RĂšgle stricte d'acceptation

  • Si le vĂ©hicule a plus de 6 ans, la courroie de distribution DOIT avoir Ă©tĂ© faite (facture et main d'Ɠuvre exigĂ©es).
  • Si le vĂ©hicule a plus de 100 000 km, la courroie DOIT avoir Ă©tĂ© faite.

Ne prenez aucun rendez-vous sur ces moteurs sans vérifier ces deux critÚres auprÚs du client !

AccĂšs Restreint

Votre compte a été suspendu par un administrateur. Vous ne pouvez plus accéder à l'application.

Bienvenue sur ARIA, {{ user.name }} !

Commençons par une rapide présentation de votre outil de travail.

{{ onboardingTexts[onboardingStep] }}

Nouvelle mise Ă  jour

Une nouvelle version de l'application est disponible. Vous devez actualiser pour continuer.

Nouveautés :

{{ updateAlert.notes }}

Bienvenue !

Bienvenue sur l'application ARIA déployée par LVX.

Vous n'avez pas encore fait votre appel technique, il ne saurait tarder, mais pour le moment nous vous laissons découvrir un petit peu l'application.

L'équipe prendra contact avec vous pour vous expliquer point par point comment utiliser l'application.

Rappel hebdomadaire

Nous sommes vendredi.

La semaine se termine. Pensez Ă  vĂ©rifier vos absences calendrier pour la semaine prochaine, afin d’éviter le placement de rendez-vous sur des crĂ©neaux oĂč vous ĂȘtes indisponible.