MADATA / DEV documentation développeur English madata.africa

Catalogue des outils

Le registre compte 155 outils ; 150 sont exposés via MCP (73 en lecture, 77 en écriture). La liste réellement visible sur un espace dépend des modules installés, des droits de l’utilisateur et de la portée de la clé.

01Comment lire ce catalogue

Chaque outil porte des annotations que le client IA utilise pour décider ce qu’il peut faire sans demander :

  • lecture : ne modifie rien, idempotent.
  • écriture : crée ou modifie de la donnée.
  • destructif : annule ou supprime de la donnée existante (reverse_move, close_pos_session, refund_payslip…).
  • hors-espace : touche un tiers : e-mail, WhatsApp, plateforme fiscale (send_email, send_invoice_to_fne…).

requis / option listent les paramètres d’entrée. Le schéma JSON complet de chaque outil est renvoyé par tools/list.

Descriptions

Les descriptions ci-dessous sont reproduites telles que renvoyées par tools/list : c’est le texte que reçoit l’assistant.

Multi-société

Les outils d’écriture reçoivent en plus un paramètre company_name injecté automatiquement : utile si l’espace gère plusieurs sociétés.

02Agent, mémoire & planification

8 outils.

Agent & pilotage

4 outils
suggest_feature_request lecture

Enregistre une demande de fonctionnalite OU un signalement de bug : capacite reellement inexistante, module non installe, integration externe non supportee (banque, SMS, site marchand tiers), ou dysfonctionnement rapporte par l'utilisateur. SEUL moyen d'enregistrer une suggestion ou un bug : ne pretends JAMAIS l'avoir transmis sans cet appel. 'title' et 'description' doivent decrire le vrai besoin ou le vrai bug, jamais un rapport generique. NE l'appelle PAS si l'utilisateur n'a pas encore decrit le probleme, si tu peux repondre meme partiellement, ni pour une erreur de droits d'acces.

requis title · option description, category

propose_questionnaire lecture

Affiche un QUESTIONNAIRE d'actions cliquable (cases a cocher + bouton Lancer) au lieu d'une liste d'options en texte. Appelle-le DES QUE tu proposes plusieurs actions au choix (corriger des anomalies compta, exporter, ouvrir des pieces, contacter le comptable). Une option par action concrete ; chaque option porte un 'prompt' = l'instruction que TU executeras si elle est cochee. N'ecris PAS la liste en texte a cote.

requis title, options

emit_plan lecture

Affiche une TODO-LISTE d'execution visible (plan multi-etapes) que l'utilisateur voit se cocher au fur et a mesure. Appelle CET outil AU DEBUT d'une tache LONGUE ou multi-etapes (3 etapes ou plus), AVANT de commencer : ex. cycle de paie (creer employe -> contrat -> fiche -> valider -> envoyer), cloture, import suivi de traitements, audit puis corrections. Donne 2 a 8 etapes courtes a l'imperatif. Ensuite, appelle update_plan_step apres CHAQUE etape terminee pour la marquer 'done'. N'utilise PAS cet outil pour une action unique simple.

requis steps

update_plan_step lecture

Met a jour l'etat d'UNE etape de la todo-liste affichee par emit_plan. Appelle-le des qu'une etape demarre (status 'running') ou se termine (status 'done'). 'index' est la position de l'etape (0 = premiere). Marquer une etape 'done' passe automatiquement la suivante en 'running'.

requis index, status

Mémoire

3 outils
remember écriture

Memorise DURABLEMENT un fait pour les PROCHAINES conversations. Appelle-le quand l'utilisateur exprime une preference stable, une regle de gestion ou un fait durable sur lui ou son entreprise (ex. 'mes relances partent a 30 jours', 'mon comptable est M. Kone'). 'name' = slug court (permet de mettre a jour la meme memoire plus tard), 'content' clair, 'description' d'une ligne. N'enregistre PAS de donnees sensibles (mots de passe) ni d'elements ephemeres propres a la conversation en cours.

requis content · option name, type, description, scope

recall lecture

Recherche dans ta memoire long-terme les faits durables deja enregistres sur l'utilisateur ou son entreprise. Utilise-le pour verifier si une preference/regle a deja ete memorisee avant d'agir.

requis query

forget écrituredestructif

Oublie (desactive) une memoire long-terme devenue fausse ou obsolete, identifiee par sa cle 'name'. A utiliser quand l'utilisateur dit qu'une preference/regle a change ou n'est plus valable.

requis name

Planification autonome

1 outil
schedule_task écriture

Planifie une TACHE RECURRENTE que tu executeras seul a la frequence indiquee (ex. chaque lundi : sortir le CA et les impayes ; chaque mois : rapport d'activite envoye par email). Appelle CET outil des que l'utilisateur demande de faire quelque chose REGULIEREMENT, AUTOMATIQUEMENT ou A INTERVALLE. Donne une consigne claire et complete dans 'instruction'. Si l'utilisateur veut recevoir le resultat par email, mets send_report=true et report_email_to.

requis instruction · option name, interval_number, interval_type, send_report, report_email_to

03Indicateurs & tableaux de bord

14 outils.

get_kpi lecture

Indicateurs cles d'une periode, avec COMPARAISON automatique a la periode equivalente precedente ('periode_precedente' et 'evolution' en %). C'est l'outil a appeler EN PREMIER pour toute demande de synthese / bilan / point d'activite. Contient : ca_facture_ht et ca_facture_ttc (LE chiffre d'affaires : factures comptabilisees, avoirs deduits), ventes_total (commandes confirmees TTC = prise de commande, a NE PAS appeler chiffre d'affaires), achats, tresorerie, factures clients impayees dont la part DEJA ECHUE (factures_impayees_echues_total/count), ET les indicateurs operationnels de l'espace : FABRICATION (ordres en cours, termines, quantite produite) et STOCK (livraisons a traiter et livraisons_en_retard). Le champ 'bases_de_calcul' explique ce que chaque montant recouvre : lis-le avant de nommer un chiffre. A utiliser pour toute question sur les impayes, les creances, mais AUSSI les KPI de fabrication / production / stock. Pour les KPI d'un autre module non couvert ici, compose aggregate_records sur le modele concerne.

option period

get_crm_kpi lecture

KPI CRM AGREGES (vue d'ensemble) : pipeline par etape (nom, nombre, CA potentiel), taux de gain, top 5 commerciaux, opportunites sans activite depuis plus de 7 jours. period = 'month'|'quarter'|'year' (defaut month). NE repond PAS a 'meilleures/top opportunites' : pour lister ou classer des opportunites individuelles, prendre search_opportunities.

option period, salesperson_name

get_project_kpi lecture

KPI projets : taches par etape, taches en retard, taux d'avancement global, alertes. project_name = filtre optionnel.

option project_name

get_pos_kpi lecture

KPI Point de Vente : sessions ouvertes, CA du jour, ticket moyen, repartition par mode de paiement. date = 'today'|'YYYY-MM-DD' (defaut today).

option date, pos_config_name

get_pos_cash_discrepancies lecture

Ecarts de caisse des sessions Point de Vente sur une periode : difference entre le solde theorique de cloture et le solde reel compte (positif = surplus, negatif = manquant). Filtres : date_from/date_to (YYYY-MM-DD, defaut = mois en cours), pos_config_name (nom de la caisse), only_discrepancies=true pour ne renvoyer que les sessions avec un ecart non nul. Renvoie chaque session (caisse, caissier, soldes, ecart) et le total des ecarts. A utiliser des qu'on demande les ecarts/differences/manquants de caisse sur une periode (jour, mois, annee).

option date_from, date_to, pos_config_name, only_discrepancies

get_helpdesk_kpi lecture

KPI Helpdesk : tickets ouverts par equipe/priorite, temps moyen de resolution, tickets en retard.

option team_name

get_fleet_kpi lecture

KPI Flotte : nombre de vehicules par statut, contrats a renouveler, kilometrage moyen, couts du dernier mois.

get_transport_kpi lecture

KPI Transport de vrac : tonnage livre, revenu estime, nombre de rotations, cout carburant, marge, meilleurs chauffeurs, matieres les plus transportees, clients les plus rentables et depense par camion. periode = day | week | month | year (defaut week).

option periode

get_subscription_kpi lecture

Tableau de bord complet des abonnements : MRR (revenu mensuel recurrent), ARR, nombre d'abonnements actifs, renouvellements imminents, resiliations du mois, en pause, evolution du revenu recurrent sur 12 mois, echeances, alertes et top clients par MRR. Prefere cet outil a get_kpi pour toute question sur les abonnements (MRR, churn, renouvellements, ARR). Parametre optionnel : period.

option period

get_rental_kpi lecture

Tableau de bord complet des locations : en cours (biens chez le client), a remettre, retours sous 7 jours, retards, revenu du mois, evolution sur 12 mois, echeancier, alertes et top biens loues. Prefere cet outil a get_kpi pour toute question sur les locations. Parametre optionnel : period.

option period

get_hr_analytics lecture

Analyse RH : effectif total et par departement, conges en cours, conges en attente de validation, heures supplementaires si dispo.

get_cash_flow lecture

Projection de tresorerie A L'ECHEANCE : encaissements attendus (factures clients non payees) et decaissements prevus (factures fournisseurs). horizon_weeks = 1..12 (defaut 4). 'weeks' ventile la TOTALITE de l'encours et chaque ligne porte un 'kind' : 'overdue' = deja echu (exigible tout de suite), 'week' = semaine a venir, 'beyond' = au-dela de l'horizon. La somme des lignes egale les totaux : ne presente jamais un total sans les lignes qui le composent. Fournit aussi la balance agee des creances (balance_agee_creances) et les 5 plus gros debiteurs echus (top_debiteurs_echus), qui sont la matiere d'un plan de relance. Si le champ 'lecture' est present, suis-le.

option horizon_weeks

get_revenue_forecast lecture

Estime le chiffre d'affaires FUTUR (previsionnel, prevision, projection) d'une annee a venir a partir de la TENDANCE du CA realise des annees passees. A utiliser des qu'on demande un 'chiffre d'affaires previsionnel', une 'prevision', une 'projection' ou une 'estimation' de CA pour une annee future (ex. 2027, 2028), ou 'combien vais-je faire l'an prochain'. NE PAS refuser ce type de demande : appeler cet outil. Renvoie l'historique annuel du CA, la valeur projetee, le taux de croissance annuel moyen, la methode et un avertissement (estimation non garantie). Montants en devise de la societe, calcules depuis les ecritures validees (droits utilisateur appliques).

option target_year, years_history

get_attendance_summary lecture

Synthese des presences : heures travaillees par employe sur une periode (a partir des pointages).

option employee_name, period

04Lecture métier

24 outils.

search_sales lecture

Liste les commandes de vente confirmees sur une periode.

option date_from, date_to, limit

search_purchases lecture

Liste les bons de commande d'achat sur une periode.

option date_from, date_to, limit

get_stock lecture

Etat du stock : produits avec le plus / moins de quantite disponible.

option product, limit

get_stock_card lecture

Fiche de stock / historique de mouvement d'un ou plusieurs produits : stock initial, entrees et sorties detaillees (date, type, reference, partenaire), solde courant et valeur, sur une periode. Renvoie TOUJOURS un recapitulatif par produit (initial / entrees / sorties / final / valeur) ; et le DETAIL mouvement par mouvement quand un produit ou une categorie est precise. Utilise cet outil des qu'on demande l'historique des mouvements, la fiche/carte de stock, les entrees-sorties d'un produit, ou le solde a une date. IMPORTANT : c'est aussi la reponse quand l'utilisateur signale que l'EXPORT PDF de la fiche de stock echoue ou est trop volumineux (des milliers de produits saturent le generateur PDF) : ne renvoie pas vers le PDF, propose plutot de filtrer sur un produit / une categorie et affiche les donnees ici, ou conseille l'export Excel qui gere les gros volumes. Parametres : product = nom produit (partiel OK) ; category = categorie ; date_from / date_to = AAAA-MM-JJ (defaut : depuis le 1er janvier jusqu'a aujourd'hui) ; location = nom emplacement (defaut : entrepot interne principal) ; limit = nombre max de produits au recapitulatif.

option product, category, date_from, date_to, location, limit

search_invoices lecture

Liste les factures clients. Par defaut, uniquement les factures impayees (creances clients en attente de paiement) avec leur montant restant du et leur echeance. Mettre only_unpaid=false pour inclure toutes les factures validees.

option only_unpaid, date_from, date_to, limit

search_contacts lecture

Recherche des contacts (clients, fournisseurs, employes). name = filtre sur le nom (partiel OK) ; email = filtre email ; contact_type = customer|supplier|any (defaut: any) ; country = pays (nom ou code).

option name, email, contact_type, country, limit

search_products lecture

Recherche et COMPTE des produits dans le catalogue. name = filtre nom produit (partiel OK) ; categ = categorie produit ; ref = reference interne ; price = prix de vente EXACT (ex. 1 pour 'produits a 1 franc') ; min_price / max_price = bornes de prix de vente (inclusives). Utilise cet outil des qu'on interroge les produits par prix ('combien de produits a X', 'produits a moins de X', 'entre X et Y') : NE refuse JAMAIS, ne propose pas de fonctionnalite. Le champ 'total_matching' du resultat donne le decompte reel (au-dela des lignes affichees) pour les questions 'combien ?'.

option name, categ, ref, price, min_price, max_price, limit

search_opportunities lecture

Liste les opportunites CRM une par une, TRIEES PAR CHIFFRE D'AFFAIRES POTENTIEL DECROISSANT. Outil a utiliser pour 'meilleures opportunites', 'plus grosses opportunites', 'top opportunites', 'classement des opportunites', ou toute recherche d'opportunites individuelles (avec nom, client, commercial, etape et montant de chacune). salesperson = filtre commercial (nom) ; stage = etape du pipeline ; min_amount = montant attendu minimum. Pour une VUE D'ENSEMBLE agregee (pipeline par etape, taux de gain), prendre get_crm_kpi.

option salesperson, stage, min_amount, limit

search_tasks lecture

Recherche des taches de projet. project_name = filtre projet ; assignee = filtre utilisateur assigne (nom) ; stage = etape (todo/in_progress/done) ; overdue = true pour les taches en retard uniquement.

option project_name, assignee, stage, overdue, limit

search_pos_orders lecture

Recherche des commandes POS. Filtres : date_from/date_to (YYYY-MM-DD), customer_name, session_name, state ('done'|'paid'|'cancel'). Renvoie les commandes avec details.

option date_from, date_to, customer_name, session_name, state

search_tickets lecture

Recherche des tickets helpdesk. Filtres : team_name, stage_name, partner_name, assignee_name, priority (0/1/2/3), overdue=true.

option team_name, stage_name, partner_name, assignee_name, priority, overdue

search_vehicles lecture

Recherche des vehicules de flotte. Filtres : driver_name, model_name, state_name, contract_expiring_soon=true.

option driver_name, model_name, state_name, contract_expiring_soon

search_rotations lecture

Recherche des rotations (voyages) de transport. Filtres : projet_name, camion (nom ou immatriculation), chauffeur_name, matiere_name, etat (brouillon | effectuee | annulee), depuis (YYYY-MM-DD), jusqua (YYYY-MM-DD). Renvoie tonnage net, carburant, N° BL et ticket pont-bascule.

option projet_name, camion, chauffeur_name, matiere_name, etat, depuis, jusqua, limit

search_manufacturing_orders lecture

Liste les ordres de fabrication (OF) avec produit, quantite prevue/produite, etat et date planifiee. A utiliser pour 'mes OF en cours', 'ordres de fabrication en retard', 'que produit-on cette semaine'. state = draft|confirmed|progress|to_close|done|cancel, ou 'open' pour tout ce qui n'est ni termine ni annule ; late = true pour les OF dont la date planifiee est depassee ; product = filtre produit ; date_from / date_to = AAAA-MM-JJ sur la date planifiee.

option state, product, late, date_from, date_to, limit

search_stock_pickings lecture

Liste les transferts de stock : livraisons clients, receptions fournisseurs et transferts internes, avec partenaire, origine, etat et date prevue. A utiliser pour 'mes livraisons en attente', 'receptions du jour', 'transferts en retard'. kind = outgoing (livraison) | incoming (reception) | internal ; state = draft|waiting|confirmed|assigned|done|cancel, ou 'open' pour tout ce qui reste a traiter ; late = true pour les transferts dont la date prevue est depassee ; partner = filtre client/fournisseur.

option kind, state, partner, late, limit

search_events lecture

Liste les evenements de l'agenda. Filtres optionnels : period (today/week/month/quarter/year), date_from/date_to (AAAA-MM-JJ), partner_name (participant). Par defaut : les evenements a venir.

option period, date_from, date_to, partner_name, limit

search_recurring_payments lecture

Liste les paiements recurrents (echeanciers automatiques) avec partenaire, montant, periodicite, plage de dates et statut. A utiliser pour 'mes prelevements recurrents', 'abonnements de paiement', 'echeanciers en cours'. state = draft|done ; payment_type = inbound (encaissement) | outbound (decaissement) ; active_only = true pour ceux dont la periode couvre aujourd'hui ; partner = filtre.

option state, payment_type, partner, active_only, limit

get_fiscal_years lecture

Liste les exercices fiscaux (nom, dates de debut et de fin, societe) et designe celui qui couvre la date du jour. A utiliser pour 'quel est mon exercice en cours', 'dates de mon exercice fiscal', ou avant de raisonner sur un bilan / une cloture annuelle.

option limit

get_customer_statement lecture

Releve de compte client : commandes, montants factures, solde du (reste a payer) par client, avec totaux. Filtres optionnels par periode. Utile pour repondre a 'combien me doit ce client' ou preparer une relance.

requis partner_name · option date_from, date_to

list_overdue_followups lecture

Liste les clients en retard de paiement (relances) : montant echu, montant total du, niveau de relance atteint. Tri par montant echu decroissant.

option limit

get_timesheet_summary lecture

Synthese des feuilles de temps. Filtres : employee_name, project_name, date_from/date_to (YYYY-MM-DD). Renvoie heures par employe et par projet.

option employee_name, project_name, date_from, date_to

get_customer_wallet lecture

Solde du portefeuille (wallet / credit prepaye) d'un client du point de vente, avec ses dernieres transactions (recharges et debits).

requis partner_name

search_bank_statements lecture

Liste les releves bancaires (solde de depart/fin, nombre de lignes).

option limit

get_bank_reconciliation_status lecture

Etat du rapprochement bancaire : nombre de lignes bancaires non lettrees (a rapprocher) et montant concerne, par journal de banque.

option journal_name

05Comptabilité & finance

13 outils.

get_accounting_summary lecture

Synthese comptable chiffree sur une periode (facon compte de resultat) : produits (chiffre d'affaires et autres produits), charges, resultat (benefice ou perte), plus les postes cles de tresorerie, creances clients, dettes fournisseurs et TVA nette. A utiliser pour 'indicateurs comptables', 'compte de resultat', 'ou en est ma compta', 'mon resultat', 'mes charges', 'mon benefice'. Montants en devise de la societe, calcules depuis les ecritures comptables validees (droits utilisateur appliques).

option period

get_balance_sheet lecture

Bilan comptable (ACTIF / PASSIF) a une date donnee, structure facon SYSCOHADA : a l'actif les immobilisations, stocks, creances et tresorerie ; au passif les capitaux propres, le resultat de l'exercice et les dettes. A utiliser des qu'on demande 'le bilan', 'bilan comptable', 'actif passif', 'situation patrimoniale'. Cumulatif depuis l'origine jusqu'a la date (defaut: aujourd'hui), en devise de la societe, depuis les ecritures validees.

option date_to

check_accounting_consistency lecture

Analyse les incoherences / anomalies de la comptabilite (audit rapide, facon SYSCOHADA) a partir des ecritures validees : balance generale desequilibree (total debit != total credit), comptes au solde anormal (un compte d'actif au solde crediteur, un compte de passif/produit au solde debiteur, etc.), ecritures comptables non equilibrees, lignes sans compte. A utiliser des qu'on demande des 'incoherences', 'anomalies comptables', 'erreurs de compta', 'auditer ma compta', 'verifier ma comptabilite', 'controle de coherence'. Renvoie la liste des anomalies detectees avec des exemples (chaque exemple porte un 'record_url' et un libelle complet 'name' code+nom : cite TOUJOURS les comptes et pieces par ce libelle complet pour qu'ils soient cliquables). Ne corrige rien (lecture seule, droits utilisateur appliques).

option date_from, date_to

export_accounting lecture

Genere un fichier comptable telechargeable (XLSX par defaut, ou CSV) a partir des ecritures validees, facon SYSCOHADA. report = balance (balance generale : par compte, debit/credit/solde) | grand_livre (ecritures detaillees compte par compte) | journal (ecritures par journal) | bilan (actif/passif) | compte_resultat (produits/charges/resultat) | incoherences (liste des anomalies / incoherences comptables detectees par l'audit de coherence). A utiliser quand on demande d'EXPORTER ou de TELECHARGER en Excel/tableur un etat comptable OU le resultat d'une analyse d'incoherences. Pour un simple affichage chiffre, preferer get_balance_sheet ou get_accounting_summary ; pour afficher les anomalies sans fichier, check_accounting_consistency.

requis report · option format, date_from, date_to

generate_accounting_report lecture

Genere un etat comptable en PDF telechargeable, mis en page facon SYSCOHADA. doc = bilan (ACTIF/PASSIF a une date) | compte_resultat (produits, charges, resultat sur une periode) | balance (balance generale par compte) | incoherences (rapport des anomalies / incoherences comptables detectees par l'audit de coherence). A utiliser quand on demande le bilan / compte de resultat / la balance / un rapport d'incoherences EN PDF ou 'a imprimer'. Les montants sont calcules depuis les ecritures validees (droits utilisateur appliques).

requis doc · option period, date_from, date_to

generate_financial_report lecture

Genere un RAPPORT COMPTABLE du catalogue complet en PDF ou XLSX, via un parcours guide a choix (l'utilisateur selectionne dans l'interface). report_key : general_ledger (grand livre), journal_ledger (livre des journaux), trial_balance (balance generale), aged_partner (balance agee partenaires), open_items (creances/dettes non lettrees), vat_report (rapport TVA), balance_sheet (bilan), profit_loss (compte de resultat), cash_flow (flux de tresorerie), daybook (carnet de jour), cashbook (livre de caisse), bankbook (livret de banque), tva_ci (declaration TVA CI), budget (analyse budgetaire), assets (immobilisations), analytic (rapports analytiques). IMPORTANT : appelle cet outil SANS inventer de parametres ; s'il manque un choix, il renvoie 'needs_report_choices' et l'interface affiche les options. Quand l'utilisateur a choisi, rappelle l'outil en passant EXACTEMENT les valeurs selectionnees (report_key, format, period ou date_from/date_to/date_at, target_move, advanced, adv_done). Apres generation, propose d'envoyer le fichier par email avec send_email(attachment_id=...).

option report_key, format, period, date_from, date_to, date_at, target_move, advanced, adv_done

create_journal_entry écriture

Cree une ecriture comptable (operation diverse) et la COMPTABILISE. A utiliser pour passer une ecriture d'ajustement, de regularisation ou de correction d'un solde anormal. journal = nom ou code du journal (defaut: journal d'operations diverses) ; date = AAAA-MM-JJ (defaut: aujourd'hui) ; ref = libelle de la piece (optionnel) ; lines = liste d'au moins deux lignes [{account, debit, credit, partner?, label?}] ou 'account' = code OU nom du compte. Si la somme des debits n'egale pas la somme des credits, une ligne d'equilibrage est AJOUTEE AUTOMATIQUEMENT sur un compte d'attente (471) : ne demande JAMAIS a l'utilisateur d'ajuster les montants. balancing_account (optionnel) = code du compte d'attente a utiliser.

requis lines · option journal, date, ref, balancing_account

reverse_move écrituredestructif

Contre-passe (extourne) une ecriture comptable deja comptabilisee en creant l'ecriture inverse. Pour annuler proprement une piece erronee SANS la supprimer. move_id = id de la piece (prioritaire) ou move_ref = numero/nom ; date = date de l'extourne (optionnel) ; reason = motif (optionnel).

option move_id, move_ref, date, reason

post_move écriture

Comptabilise (valide) une piece comptable en brouillon (facture, ecriture). move_id = id de la piece (prioritaire) ou move_ref = numero/nom.

option move_id, move_ref

fix_abnormal_balances écriture

Corrige EN UNE SEULE ecriture, equilibree par construction, TOUS les comptes au solde anormal (sens contraire a leur nature). A PRIVILEGIER quand on demande de « corriger les comptes au solde anormal » : chaque compte anormal est ramene a zero et la contrepartie totale va sur un compte d'attente (471). L'equilibre est garanti cote serveur : tu n'as JAMAIS a calculer ni ajuster des montants. accounts (optionnel) = liste de codes/noms a corriger (defaut: tous) ; journal, date, balancing_account, date_from/date_to optionnels. Apres correction, re-verifie avec check_accounting_consistency.

option accounts, journal, date, balancing_account, date_from, date_to, ref

fix_accounting_anomalies écriture

Corrige TOUTES les anomalies comptables detectees par check_accounting_consistency, chacune EQUILIBREE PAR CONSTRUCTION via le compte d'attente 471. A PRIVILEGIER quand on demande de « corriger les anomalies » : gere a la fois les comptes au solde anormal (ecriture d'ajustement par societe), les lignes sans compte (reimputation sur 471) et les ecritures desequilibrees (ligne d'equilibrage sur 471, ce qui corrige AUSSI la balance generale desequilibree). Regroupe par societe, resout journal et compte d'attente automatiquement : tu n'as JAMAIS a demander le journal ni a ajuster des montants. types (optionnel) = sous-ensemble parmi solde_anormal / ligne_sans_compte / ecriture_desequilibree (defaut: tous). journal, date, balancing_account, date_from/date_to, ref optionnels. NE corrige PAS (volontairement) les comptes de transit non soldes (471, 477...) ni les indicateurs a verifier (T.V.A. au sens inhabituel, tresorerie creditrice...) : ce sont des points a INVESTIGUER manuellement (lettrage, rapprochement, piece manquante), pas des erreurs a solder a l'aveugle ; explique-le a l'utilisateur au lieu de promettre de les corriger. Les lignes de section / note d'une facture n'ont pas de compte par nature : ce ne sont pas des lignes sans compte anormales. Apres correction, re-verifie avec check_accounting_consistency.

validate_invoice écriture

Comptabilise (valide) une facture client ou fournisseur en brouillon (passe a Comptabilise/Poste). Cibler par name (reference ex. INV/2026/00001 ou BILL/2026/00001), partner_name ou id.

option id, name, partner_name, move_type

register_payment écriture

Enregistre le REGLEMENT (encaissement client ou paiement fournisseur) d'une ou plusieurs factures COMPTABILISEES non reglees. invoice_ids = ids des factures, OU invoice_ref = numero/nom ; journal = banque/caisse (optionnel) ; date, amount (optionnels, defaut = solde du).

option invoice_ids, invoice_ref, journal, date, amount

06Écritures & actions

21 outils.

Ventes & achats (écriture)

18 outils
create_quotation écriture

Cree un devis (brouillon) pour un client. partner_name = nom du client ; lines = [{product_name, qty}] optionnel.

requis partner_name · option lines

confirm_quotation écriture

Confirme un devis / commande de vente (passe de Devis a Commande confirmee). Cibler par name (reference ex. S00001), partner_name ou id.

option id, name, partner_name

create_purchase_order écriture

Cree un bon de commande d'achat (brouillon) chez un fournisseur. supplier_name = nom du fournisseur ; lines = [{product_name, qty}] (optionnel).

requis supplier_name · option lines

confirm_purchase_order écriture

Confirme un bon de commande d'achat (passe de Brouillon a Bon de commande envoye). Cibler par name (reference ex. P00001), supplier_name ou id.

option id, name, supplier_name

create_vendor_bill écriture

Cree une facture fournisseur (brouillon, NON comptabilisee). supplier_name = nom du fournisseur ; lines = [{product_name, qty, price_unit}] (au moins une ligne ; price_unit optionnel). La facture reste en brouillon : l'utilisateur la verifie et la comptabilise lui-meme dans Madata.

requis supplier_name · option lines

create_customer_invoice écriture

Cree une facture client (brouillon, NON comptabilisee). customer_name = nom du client ; lines = [{product_name, qty, price_unit}] (au moins une ligne ; price_unit optionnel) ; due_date = AAAA-MM-JJ (optionnel). La facture reste en brouillon pour verification avant validation.

requis customer_name · option lines, due_date

create_transfer écriture

Cree un transfert de stock en brouillon : operation = 'in' (reception), 'out' (livraison) ou 'internal' (transfert interne) ; lines = [{product_name, qty}]. Pour valider ensuite le transfert, utilise validate_stock_picking ou action_record.

requis lines · option operation

validate_stock_picking écriture

Valide un transfert / une reception de stock (passe a Fait). Cibler par name (reference ex. WH/IN/00001), partner_name ou id. Si des quantites a la demande n'ont pas ete saisies, utilise les quantites prevues (immediate transfer).

option id, name, partner_name

create_contact écriture

Cree un contact (client/fournisseur). name requis ; email, phone, city, is_company (optionnels).

requis name · option email, phone, city, is_company

create_product écriture

Cree un produit dans le catalogue. name requis ; sale_price, standard_price (cout), categ_name, product_type ('consu'|'service'|'storable'), ref (reference interne) optionnels.

requis name · option sale_price, standard_price, categ_name, product_type, ref

update_product_price écriture

Met a jour le prix de vente de un ou plusieurs produits. product_name = nom ou partie du nom ; product_ids = liste d'ids. new_price = nouveau prix de vente. Confirmation requise.

requis new_price · option product_name, product_ids

create_category écriture

Cree une categorie de produits. name = nom ; parent_name = categorie parente optionnelle (pour organiser en arborescence).

requis name · option parent_name

create_expense écriture

Cree une note de frais pour l'utilisateur courant. name = description de la depense ; amount = montant.

requis name, amount

create_lead écriture

Cree une opportunite commerciale (CRM). name = sujet de l'opportunite ; partner_name = client (optionnel) ; expected_revenue = montant attendu (optionnel).

requis name · option partner_name, expected_revenue

set_lead_stage écriture

Fait avancer une ou plusieurs opportunites CRM vers une etape du pipeline. ids = liste d'IDs d'opportunites ; stage_name = nom de l'etape cible (resolu par nom approche).

requis ids, stage_name

create_task écriture

Cree une tache de projet. name = titre de la tache ; project_name = nom du projet (optionnel) ; description (optionnel) ; assignees = liste de noms d'utilisateurs a affecter (optionnel).

requis name · option project_name, description, assignees

create_project écriture

Cree un projet. name = nom du projet (requis) ; manager_name = nom du chef de projet (optionnel) ; description (optionnel).

requis name · option manager_name, description

log_time écriture

Saisit des heures sur un projet/tache. employee_name requis ; project_name, task_name, hours (defaut 1.0), date (YYYY-MM-DD), description optionnels.

requis employee_name · option project_name, task_name, hours, date, description

Fabrication

3 outils
create_manufacturing_order écriture

Cree un ordre de fabrication (brouillon). product_name = produit a fabriquer ; qty = quantite.

requis product_name · option qty

confirm_manufacturing_order écriture

Confirme un ou plusieurs ordres de fabrication (Brouillon -> Confirme). UN seul : cibler par name (ex. WH/MO/00001), product_name ou id. PLUSIEURS EN UN SEUL APPEL (groupe, une seule confirmation) : all=true confirme TOUS les OF en brouillon ; ou names=[...] / ids=[...] pour une liste precise. Si l'utilisateur demande 'tous' ou une liste, utilise all/names/ids, n'appelle JAMAIS l'outil une fois par OF.

option id, name, product_name, all, ids, names

mark_manufacturing_done écriture

Marque un ou plusieurs ordres de fabrication comme Termine (Fait). L'OF doit etre Confirme. UN seul : cibler par name (ex. WH/MO/00001), product_name ou id. PLUSIEURS EN UN SEUL APPEL (groupe, une seule confirmation) : all=true termine TOUS les OF confirmes/en cours ; ou names=[...] / ids=[...] pour une liste precise. Si l'utilisateur demande 'tous les produire' ou une liste, utilise all/names/ids, n'appelle JAMAIS l'outil une fois par OF.

option id, name, product_name, all, ids, names

07RH & paie

25 outils.

search_leaves lecture

Liste les conges / absences (demandes de conges). Filtres optionnels : employe, etat (a_confirmer/a_approuver/approuve/refuse), periode.

option employee_name, state, period

create_leave écriture

Cree une demande de conge / absence pour un employe, sur une periode de dates. Le type de conge est optionnel (defaut : le premier type disponible). La demande n'est PAS approuvee automatiquement (utilise validate_leave pour cela).

requis employee_name, date_from, date_to · option leave_type, reason

validate_leave écriture

Approuve (valide) une demande de conge identifiee par son id ou par employe + periode.

option leave_id, employee_name, period

search_payslips lecture

Liste les fiches de paie (bulletins). Filtres optionnels : employee_name, period (today/week/month/quarter/year), state (draft/verify/done/paid/cancel). Renvoie employe, periode, brut, net et etat.

option employee_name, period, state, limit

search_payslip_batches lecture

Liste les lots de paie (batches) avec leur etat, le nombre de fiches et la periode.

option limit

list_payroll_structures lecture

Liste les structures de paie disponibles (ex. Salaire de base, Solde de tout compte, 13e mois...). A utiliser AVANT create_payslip pour demander a l'utilisateur sur quelle structure generer la fiche. employee_name (optionnel) : indique aussi la structure par defaut du contrat de l'employe.

option employee_name

create_payslip écriture

Cree ET calcule une fiche de paie pour un employe. employee_name requis. date_from/date_to au format AAAA-MM-JJ (defaut : mois en cours). struct_name = structure salariale (optionnel, sinon celle du contrat). sursalaire = montant du sursalaire applique sur ce bulletin (optionnel). Renvoie le numero du bulletin, le brut et le net.

requis employee_name · option date_from, date_to, struct_name, sursalaire

set_sursalaire écriture

Definit le sursalaire d'une fiche de paie (en brouillon ou calculee) puis la recalcule. Cibler par employee_name (+ period ou date_from/date_to) ou par payslip_id. amount = montant.

requis amount · option employee_name, payslip_id, period, date_from, date_to

create_payslip_batch écriture

Cree un lot de paie et genere les fiches calculees des employes vises. date_from/date_to au format AAAA-MM-JJ (defaut : mois en cours). name = nom du lot (optionnel). department_name = limiter a un departement. employee_names = liste de noms (sinon tous les employes avec un contrat actif). struct_name = structure salariale (optionnel).

option date_from, date_to, name, department_name, employee_names, struct_name

validate_payslip écriture

Valide une fiche de paie (passe a l'etat Termine). Cibler par payslip_id ou employee_name (+ period/date).

option payslip_id, employee_name, period, date_from, date_to

validate_batch écriture

Valide un lot de paie : valide toutes ses fiches et cloture le lot. Cibler par batch_id ou batch_name.

option batch_id, batch_name

mark_payslip_paid écriture

Marque une fiche de paie comme payee (action sensible). La fiche doit etre a l'etat Termine. Cibler par payslip_id ou employee_name (+ period/date).

option payslip_id, employee_name, period, date_from, date_to

mark_batch_paid écriture

Marque un lot de paie entier comme paye (action sensible). Cibler par batch_id ou batch_name.

option batch_id, batch_name

refund_payslip écrituredestructif

Cree le remboursement (note de credit) d'une fiche de paie : une copie inversee. Cibler par payslip_id ou employee_name (+ period/date).

option payslip_id, employee_name, period, date_from, date_to

create_employee écriture

Cree une fiche employe. name requis. job_title (poste), work_email, mobile, department_name optionnels. Etape prealable a la creation d'un contrat puis d'une fiche de paie.

requis name · option job_title, work_email, mobile, department_name

create_contract écriture

Cree un contrat de travail ACTIF (en cours) pour un employe, prerequis a la creation d'une fiche de paie. employee_name et wage (salaire de base mensuel) requis. date_start (AAAA-MM-JJ, defaut aujourd'hui), date_end, sursalaire, structure_name (structure salariale) optionnels.

requis employee_name, wage · option date_start, date_end, sursalaire, structure_name, name

set_overtime écriture

Ajoute des heures supplementaires sur une fiche de paie (en brouillon ou calculee) puis recalcule. hours = nombre d'heures ; type = taux de majoration (HS15 +15%, HS50 +50%, HS75 +75%, HS100 +100% ; defaut HS15). Cibler par payslip_id ou employee_name (+ period/date).

requis hours · option payslip_id, employee_name, period, date_from, date_to, type

send_payslip écriturehors-espace

Genere le PDF d'une fiche de paie et l'envoie par email a l'employe concerne. Cibler par payslip_id ou employee_name (+ period/date). Si l'employe n'a pas d'adresse email, l'outil le signale : redemande l'adresse a l'utilisateur puis rappelle l'outil avec email=<adresse> (elle sera ajoutee a la fiche employe avant l'envoi).

option payslip_id, employee_name, period, date_from, date_to, email

search_expense_reports lecture

Liste les notes de frais (rapports de depenses) : employe, montant total, etat (brouillon/soumis/approuve/comptabilise/paye).

option state, employee_name, limit

approve_expense_report écriture

Approuve une note de frais soumise (etat 'submit'). Identifiee par son nom ou par l'employe. Demande confirmation.

option name, employee_name

post_expense_report écriture

Comptabilise une note de frais approuvee (genere les ecritures comptables). Demande confirmation.

option name, employee_name

reimburse_expense_report écriture

Rembourse une note de frais comptabilisee : enregistre le paiement a l'employe (journal au choix). Demande confirmation.

option name, employee_name, journal_name

search_employee_loans lecture

Liste les prets (emprunts) des employes : montant, nombre d'echeances, etat, reste a rembourser.

option employee_name, state, limit

create_employee_loan écriture

Cree une fiche de pret pour un employe : montant, nombre d'echeances mensuelles, date de premiere echeance, taux optionnel. L'echeancier lineaire est genere automatiquement. Demande confirmation.

requis employee_name, amount, installments, first_payment_date · option rate

confirm_employee_loan écriture

Confirme une fiche de pret en brouillon (le remboursement demarre). Identifiee par l'employe ou le libelle. Demande confirmation.

option employee_name, name

08POS, fidélité, abonnements, immobilisations

20 outils.

Point de vente

3 outils
open_pos_session écriture

Ouvre une session de caisse (point de vente) sur une caisse donnee (par nom ; la premiere caisse si une seule). Refuse si une session est deja ouverte. Demande confirmation.

option config_name, opening_cash

close_pos_session écrituredestructif

Cloture une session POS ouverte. session_name = nom exact ou 'current' pour la session active. Confirmation requise.

requis session_name

recharge_customer_wallet écriture

Recharge le portefeuille (wallet) d'un client du point de vente : credite le solde et enregistre le paiement entrant. Montant strictement positif. Demande confirmation.

requis partner_name, amount · option journal_name

Fidélité & promotions

6 outils
search_promotions lecture

Liste les offres de promotion / fidelite (promotions, codes promo, coupons, achetez X obtenez Y, cartes de fidelite, cartes-cadeaux, e-wallet) avec leur type, etat (active), periode de validite, code eventuel et nombre de coupons/usages. program_type = filtre optionnel sur le type.

option program_type, active, limit

get_promotion lecture

Detail d'une offre de promotion/fidelite : ses regles (conditions) et ses recompenses (remises / produits offerts). name = nom de l'offre.

requis name

create_promotion écriture

Cree une offre de promotion / fidelite. program_type (obligatoire) : 'promotion' (remise auto sur le panier), 'promo_code' (remise via un code a saisir), 'coupons' (coupons a code), 'buy_x_get_y' (achetez X obtenez Y offert), 'loyalty' (carte a points), 'gift_card' (carte-cadeau), 'ewallet' (porte-monnaie), 'next_order_coupons'. name = nom de l'offre. discount_percent OU discount_fixed = valeur de la remise. code = code promo (promo_code). minimum_amount / minimum_qty = conditions d'application. product / product_category = restreint l'offre a un produit ou une categorie. reward_product (+reward_product_qty) = produit offert (buy_x_get_y). date_from / date_to = periode de validite (AAAA-MM-JJ). max_usage = nombre maximum d'utilisations.

requis program_type, name · option discount_percent, discount_fixed, code, minimum_amount, minimum_qty, product, product_category, reward_product, reward_product_qty, date_from, date_to, max_usage

update_promotion écriture

Modifie une offre existante : remise (discount_percent / discount_fixed), periode (date_from / date_to), plafond (max_usage), ou etat (active=true/false pour activer/desactiver). name = nom de l'offre a modifier.

requis name · option active, discount_percent, discount_fixed, minimum_amount, minimum_qty, date_from, date_to, max_usage

search_coupons lecture

Suivi des coupons / cartes emis pour une offre : code, points, nombre d'utilisations, client rattache, date d'expiration. program = nom de l'offre (optionnel).

option program, limit

generate_coupons écriture

Emet des coupons / cartes pour une offre. program = nom de l'offre ; count = nombre de coupons a generer ; partner = client beneficiaire (optionnel) ; points = points initiaux (optionnel).

requis program · option count, partner, points

Abonnements & locations

5 outils
create_subscription écriture

Cree un devis d'abonnement recurrent pour un client avec un plan (ex. Mensuel, Trimestriel, Annuel) et une ou plusieurs lignes de produits/services recurents. Obligatoires : partner_name, plan_name. Optionnels : products=[{name, qty, price}], start_date (YYYY-MM-DD).

requis partner_name, plan_name · option products, start_date

close_subscription écrituredestructif

Resilie (cloture) un ou plusieurs abonnements en cours ou en pause (passage a l'etat Resilie). Cible par ids=[...] ou domain=[...]. Parametre optionnel : close_reason (texte, ex. 'Non-paiement'). Ne pas utiliser pour annuler un devis : utiliser action_record(cancel).

option ids, domain, close_reason

create_rental_order écriture

Cree un devis de location pour un client, avec les biens a louer, la date de remise et la date de retour. Obligatoires : partner_name, products=[{name, qty}], rental_start_date (YYYY-MM-DD), rental_return_date (YYYY-MM-DD).

requis partner_name, products, rental_start_date, rental_return_date

pickup_rental écriture

Marque les biens d'une ou plusieurs locations comme remis au client (valide la remise sans wizard). La location doit etre confirmee (etat 'A remettre'). Cible par ids=[...] ou domain=[...].

option ids, domain

return_rental écriture

Marque les biens d'une ou plusieurs locations comme retournes par le client. La location doit etre en cours (biens chez le client). Cible par ids=[...] ou domain=[...].

option ids, domain

Immobilisations & budgets

6 outils
search_assets lecture

Liste les immobilisations (actifs amortissables) : valeur brute, valeur residuelle, categorie, etat (brouillon/en cours/cloture).

option state, category_name, limit

create_asset écriture

Cree une immobilisation en brouillon : nom, categorie d'immobilisation (par nom), valeur brute, date. Le plan d'amortissement est calcule automatiquement. Utilise validate_asset ensuite pour la mettre en cours.

requis name, category_name, value · option date, company_id

validate_asset écriture

Valide une immobilisation en brouillon (passe en cours : l'amortissement demarre). Identifiee par nom ou id.

option name, asset_id

search_budgets lecture

Liste les budgets : periode, etat, et par ligne le poste budgetaire, le montant prevu, le montant reel et le montant theorique (suivi budgetaire).

option state, limit

create_budget écriture

Cree un budget en brouillon avec ses lignes : nom, periode, et pour chaque ligne un poste budgetaire (par nom) et un montant prevu (negatif pour une depense, positif pour un revenu).

requis name, date_from, date_to, lines · option company_id

confirm_budget écriture

Fait avancer un budget dans son cycle : confirmer (brouillon -> confirme), valider (confirme -> valide) ou terminer. Identifie par nom.

requis name · option action

09Communication, agenda, RAG, FNE, helpdesk

13 outils.

Communication

3 outils
send_email écriturehors-espace

Envoie un email au nom de l'utilisateur connecte : objet, corps HTML riche (gras, listes, liens), un ou plusieurs destinataires (adresses libres ET/OU contacts resolus par nom), CC optionnel. Peut joindre un fichier genere par un outil precedent (rapport, facture, export PDF ou Excel) via son attachment_id. Si l'adresse email du profil n'est pas renseignee, l'outil renvoie un message clair a relayer.

requis to, subject, body · option cc, attachment_id

prepare_whatsapp_message lecturehors-espace

Prepare un message WhatsApp pour un contact : renvoie un LIEN pre-rempli a ouvrir. L'integration WhatsApp de Madata n'envoie rien automatiquement : annonce toujours un lien a cliquer, JAMAIS un message deja envoye. partner = nom du contact ; message = texte a pre-remplir (redige-le toi-meme a partir de la demande, en francais et signe au nom de l'entreprise). Pour un envoi reellement automatique, utiliser send_email.

requis partner, message

send_payment_followups écriturehors-espace

Envoie les emails de relance de paiement aux clients en retard (selon leur niveau de relance). Sans partner_names : tous les clients en retard avec email. Demande une confirmation avant tout envoi.

option partner_names

Agenda

3 outils
create_event écriture

Cree un evenement d'agenda (reunion, rendez-vous, rappel). name requis. Evenement horaire : start et stop au format 'AAAA-MM-JJ HH:MM'. Journee entiere : allday=true avec start_date/stop_date (AAAA-MM-JJ). location, description optionnels. attendee_names = participants (resolus par nom). reminders = liste de rappels {type: notification|email, duration, interval: minutes|hours|days}. recurrence = {freq: daily|weekly|monthly, interval, count, until} pour un evenement recurrent.

requis name · option start, stop, allday, start_date, stop_date, location, description, attendee_names, reminders, recurrence

update_event écriture

Modifie un evenement existant (deplacer, changer le lieu, la description ou les participants). Cibler par event_id ou event_name (+ on_date optionnelle). Champs : start, stop, location, description, attendee_names.

option event_id, event_name, on_date, start, stop, location, description, attendee_names

cancel_event écrituredestructif

Annule (archive) un evenement d'agenda. Cibler par event_id ou event_name (+ on_date optionnelle).

option event_id, event_name, on_date

Base de connaissances (RAG)

4 outils
upload_knowledge écriture

Ajoute un document a la base de connaissances de Mia (RAG). title = titre du document ; content = texte brut du document ; scope = 'user' (personnel, defaut) ou 'company' (partage societe). Le contenu est decoupe en fragments et vectorise pour recherche semantique.

requis title, content · option scope

search_knowledge lecture

Recherche dans la base de connaissances Mia. query = question ou mots-cles. Renvoie les fragments les plus pertinents.

requis query · option top_k

list_knowledge lecture

Liste les documents de la base de connaissances Mia.

delete_knowledge écrituredestructif

Supprime un document de la base de connaissances Mia. doc_id = identifiant du document (obtenu via list_knowledge).

requis doc_id

FNE (Côte d'Ivoire)

2 outils
get_fne_status lecture

Etat de la facturation normalisee electronique (FNE / DGI Cote d'Ivoire) : combien de factures sont certifiees, combien restent a transmettre, le montant en attente, le solde de stickers restant et la liste des factures non transmises. A utiliser pour 'cette facture est-elle transmise a la DGI', 'mes factures normalisees', 'factures non certifiees', 'combien de stickers me reste-t-il'. move_type = out_invoice (defaut) ou out_refund (avoirs).

option move_type, date_from, date_to, limit

send_invoice_to_fne écriturehors-espace

Transmet une ou plusieurs factures a la DGI via la FNE (certification definitive, consomme un sticker par facture). Cibler UNE facture par name (ex. FAC/2026/00002) ou ids ; all=true transmet TOUTES les factures publiees encore en attente. move_type = out_invoice (defaut) ou out_refund. Pour seulement CONSULTER l'etat de transmission, prendre get_fne_status.

option name, ids, all, move_type

Helpdesk

1 outil
create_ticket écriture

Cree un ticket helpdesk. name et team_name requis ; description, partner_name, priority optionnels.

requis name, team_name · option description, partner_name, priority

10Requêtes & exports génériques

12 outils.

query_records lecture

Consultation GENERIQUE : lit n'importe quel module accessible (ventes, achats, stock, comptabilite, contacts, produits, CRM, projets, RH, fabrication, point de vente...). A utiliser des qu'aucun outil dedie ne convient, PLUTOT QUE DE REFUSER. 'model' = nom technique (sale.order, product.template, res.partner, crm.lead, account.move, stock.picking). 'domain' = [[champ, operateur, valeur], ...] (ET implicite ; '|'/'&' pour combiner). 'fields' = champs a retourner.

requis model · option domain, fields, order, limit, company_id

find_inactive_contacts lecture

Outil DEDIE pour trouver en UN SEUL appel les contacts (res.partner) sans aucune activite liee : aucun devis/vente, facture, opportunite, achat, evenement d'agenda, vente en caisse ni tache. A utiliser des qu'on demande les contacts 'inutilises', 'sans activite', 'a nettoyer' ou 'a supprimer' (ne JAMAIS refaire ce calcul a la main avec query_records). 'activity_types' = liste des activites qui rendent un contact ACTIF (donc exclu du resultat) ; par defaut toutes. Adapte-la a la demande : 'sans devis ni facture' -> ['sales','invoices']. Le calcul preserve les comptes utilisateurs et la famille de contacts (parent/enfants) d'un client actif. Droits de l'utilisateur appliques. Apres affichage, propose d'ARCHIVER ces contacts via update_records(active=False) ; ne supprime jamais definitivement.

option activity_types, company_type, limit

aggregate_records lecture

AGREGATION/CLASSEMENT generique (totaux, 'par mois', 'par client', 'top N'). group_by = champs de regroupement (date : 'date_order:month'), measures = champs numeriques sommes, order = tri sur une mesure. Ajoute le filtre de date des qu'une periode est demandee. Pour le chiffre d'affaires et les meilleurs clients : account.move ou top_customers, JAMAIS sale.order (devis et annules = chiffres faux).

requis model, group_by · option measures, domain, order, limit, company_id

top_customers lecture

MEILLEURS / TOP CLIENTS par chiffre d'affaires REEL / plus gros clients / classement clients. Outil dedie FIABLE pour ces questions. Calcul sur les FACTURES CLIENT COMPTABILISEES (avoirs deduits), JAMAIS sur les devis (sale.order inclut brouillons et commandes annulees = chiffres gonfles). Renseigne TOUJOURS date_from/date_to quand une periode est demandee. basis='untaxed' (HT, defaut) ou 'total' (TTC).

option date_from, date_to, basis, limit, company_id

top_products lecture

MEILLEURES VENTES / TOP PRODUITS / best-sellers / produits les plus vendus : outil dedie fiable. Classe des PRODUITS, jamais des personnes : si la question porte sur QUI vend le plus (« le meilleur vendeur », « mes commerciaux »), c'est top_salespersons qu'il faut appeler, PAS cet outil. Source = lignes de factures client comptabilisees (avoirs deduits), repli automatique sur les commandes confirmees. Renseigne date_from/date_to des qu'une periode est demandee.

option date_from, date_to, metric, basis, limit, company_id

top_salespersons lecture

MEILLEURS VENDEURS / TOP COMMERCIAUX / classement de l'equipe de vente : classe des PERSONNES (les vendeurs), pas des produits. A utiliser des que la question porte sur QUI vend le plus : « le meilleur vendeur », « mes meilleurs commerciaux », « qui a le plus vendu », « performance de l'equipe commerciale ». Ne le confonds PAS avec top_products (produits les plus vendus) ni top_customers (clients qui achetent le plus). Source = factures client comptabilisees (avoirs deduits), repli automatique sur les commandes confirmees. Renseigne date_from/date_to des qu'une periode est demandee.

option date_from, date_to, basis, limit, company_id

top_suppliers lecture

MEILLEURS / PRINCIPAUX FOURNISSEURS par montant d'ACHATS reel / plus gros fournisseurs / classement fournisseurs : « a qui j'achete le plus », « mes principaux fournisseurs », « top fournisseurs ». Calcul sur les FACTURES FOURNISSEUR COMPTABILISEES (avoirs deduits), repli automatique sur les bons de commande confirmes. Ne le confonds PAS avec top_customers (les clients, qui achetent CHEZ toi). Renseigne date_from/date_to des qu'une periode est demandee.

option date_from, date_to, basis, limit, company_id

export_records lecture

Exporte des donnees en fichier CSV telechargeable. dataset = sales|purchases|invoices|stock.

requis dataset · option format, date_from, date_to

generate_report lecture

Genere le PDF d'un document. doc = quotation|invoice|purchase_order, name = reference du document (ex. S00001).

requis doc, name

update_records écriture

Modifie des champs d'enregistrements EXISTANTS, sur tout module autorise. Cible par domain ou ids. many2one : donne le NOM (resolu automatiquement). many2many/one2many : liste = remplace, {'add':[...]}, {'remove':[...]}, {'set':[...]} ; lignes de document = liste de dicts. UN SEUL appel pour la meme modification sur N enregistrements. Confirmation requise.

requis model, values · option domain, ids

create_record écriture

CREE un enregistrement dans N'IMPORTE QUEL module auquel l'utilisateur a droit (filet universel) : abonnement (sale.subscription/sale.order), location (sale.order/rental), demande de maintenance (maintenance.request), projet (project.project), etc. model = nom technique du modele ; values = champs (pour une relation many2one, donne le NOM, Mia le resout). Champs relationnels multiples : liste de noms/ids ou {'add':[...]} (many2many : etiquettes, assignes...) ; lignes (one2many) = liste de dicts, ex. values={'order_line':[{'product_id':'Chaise','product_uom_qty':2}]}. N'utilise create_record que si aucun outil dedie n'existe pour ce type d'objet. Confirmation requise (directe en mode goal).

requis model, values

action_record écriture

Execute une TRANSITION de cycle de vie sur des enregistrements de N'IMPORTE QUEL module : confirmer un devis/BC (action='confirm'), valider un transfert ('validate'), comptabiliser ('post'), terminer un OF ('done'), annuler ('cancel'), remettre en brouillon ('draft'), soumettre une note de frais ('submit'), approuver ('approve'), refuser ('refuse'), gagner/perdre une opportunite ('set_won'/'set_lost'), demarrer ('start'). model = modele ; action = l'une des cles ci-dessus ; cible par ids ou domain. N'utilise ceci que si aucun outil dedie (confirm_quotation, validate_invoice...) ne convient mieux.

requis model, action · option domain, ids

11Outils internes (non exposés)

5 outils d’import sont enregistrés mais ne sont pas exposés via MCP : ils passent par le téléversement de fichier depuis l’interface :

import_records interne

Importe des enregistrements depuis un fichier tabulaire televerse.

import_purchases interne

Cree des bons de commande brouillon depuis un fichier televerse.

import_sales interne

Cree des devis brouillon depuis un fichier televerse.

import_expenses interne

Cree des notes de frais depuis un fichier televerse.

import_inventory interne

Ajuste l'inventaire depuis un fichier televerse.