nextmotion
nextmotion.
The Nextmotion clinics the API key's user belongs to — start here: every
setup & usage
⚠ ta clé api nextmotion
connecte-toi à l'application web Nextmotion, puis Settings → API Keys → génère une clé et copie-la : elle n'est plus affichée ensuite. colle-la dans tes clés de connecteur oto sous nextmotion.
▸ agenda, catalogue, ventes, leads, statistiques et stock
commence par nextmotion_clinic() : chaque autre outil demande un clinic_id.
nextmotion_practitioner(op="list", clinic_id=…)nextmotion_appointment(op="list", clinic_id=…, date="AAAA-MM-JJ")nextmotion_availability(clinic_id=…, start_date=…, end_date=…)nextmotion_availability, puis nextmotion_appointment(op="reschedule", appointment_id=…, visit_type_opening_hour_id=<id du créneau>, time_slot=<time_slot du créneau>)nextmotion_catalog(kind="visit_type"|"treatment_type"|"treatment_pricing"|…, clinic_id=…)nextmotion_quote(op="list", clinic_id=…), nextmotion_invoice(op="list", clinic_id=…)nextmotion_invoice(op="list", clinic_id=…, invoiced_from="2026-01-01", invoiced_to="2026-01-31")nextmotion_product(op="list", clinic_id=…, expiring_within_days=30) ou stock_state="low"|"out"nextmotion_calendar(kind="room"|"device"|"opening_hour"|"absence", clinic_id=…) (show_all=True pour toute la clinique, pas seulement l'utilisateur de la clé)nextmotion_calendar(kind="appointment_request", clinic_id=…, request_status="new")nextmotion_journey(clinic_id=…, start_date="AAAA-MM-JJ", end_date="AAAA-MM-JJ")nextmotion_catalog(kind="treatment_package"|"accounting_distribution"|"global_product", clinic_id=…) ; les soins d'un forfait → op="items", la répartition par praticien d'un tarif ou d'un forfait → op="distributions"nextmotion_payment(op="list", clinic_id=…) ou invoice_id=… pour une facturenextmotion_statistics(kind="appointment_income"|"treatment_types"|"treatment_types_income", clinic_id=…, period_type="month")nextmotion_patient_stats(patient_id=…) avec l'id servi par un rendez-vous, un devis ou une facturenextmotion_lead(op="list", clinic_id=…), et les libellés de source ou de statut → nextmotion_setting(kind="object_label", clinic_id=…, label_types=["lead_source"])nextmotion_setting(kind="feature"|"payment_medium"|"communication_template"|"document_template"|"webhook", clinic_id=…)· factures par période : un parcours complet, borné
invoiced_time tombe dans la période, bornes inclusesmax_pages (20 par défaut, 100 au plus) ; la réponse dit pages_lues, factures_parcourues et completcomplet: false = résultat partiel : relance avec offset=<offset_suivant> et la même période pour lire la suitelimit est refusé et offset est le point de départ du parcours· stock produits : pas de lien avec les factures
nextmotion_product lit le stock de la clinique (un lot par ligne : numéro de lot, péremption, niveaux de stock, prix unitaire, produit et marque), en lecture seule· données de santé : ce qui n'est pas servi
fields=["*"] rend la vue par défaut, jamais le brutdry_run compris) : ni nom, ni prénom, ni email, ni téléphone, et aucun outil ne résout cet id en personne — n'essaie pas de deviner qui c'est. nextmotion_patient_stats rend ses totaux financiers et ses dates de visite, rien de plus· ventes : lignes complètes, statistiques, réglages
markup), sa TVA et ses sous-tarifs (subpricing : nature, prix, TVA, code comptable, part clinique ou praticien)nextmotion_invoicetitle, labels, datasets) ; le bloc meta de l'API, non décrit, n'est pas servi· ce qui touche un vrai patient
op="reschedule" et op="delete" ont dry_run=True par défaut : l'appel rend le rendez-vous tel qu'il est et ce qui changerait, sans rien écrire. passe dry_run=False pour agiroutils
chargement…
utilisation
claude code — installe le plugin oto —
claude plugin marketplace add otomata-tech/oto-plugin — mcp + skill configurés.cli —
pipx install oto-cli puis oto nextmotion …