lumnik. / scenarios All scenarios · Français

The €240,000 deal that confirms itself during dinner

Goal Tell the sales engineer on their phone as soon as the CRM marks a deal ready to confirm, with the line, the parts and the catalogue at hand, and have one tap on Traiter move the CRM and send the customer email.

A sales engineer has dinner with Lumilait's managing director. They must answer without opening four tools:

Meanwhile, the CRM marks the deal ready to confirm.

sage-crm-opportunities-day1.csv
opportunity_id,customer_code,site_code,line_id,customer_name,contact_name,contact_email,amount_eur,status,shutdown_start,shutdown_days,next_step
OPP-2026-1042,LUM-001,LUM-STF,MF-PACK-2011-047,Lumilait,Claire Vignal,direction@lumilait.example,240000,EN_PREPARATION,2026-10-12,9,Valider la compatibilite et le delai
erp-lines.csv
customer_code,site_code,line_id,customer_name,site_name,installed_on,model,original_controller,formats_mm,nominal_rate_units_h
LUM-001,LUM-STF,MF-PACK-2011-047,Lumilait,Saint-Flour,2011-06-14,MF-PACK 400,S7-300,200x120|250x140,4200
sav-modifications.csv
line_id,last_visit,actual_controller,drive_family,actual_formats_mm,field_note,intervention_days_estimate
MF-PACK-2011-047,2026-05-18,S7-300,VarioDrive-V2,200x120|250x140|300x160,Format 300x160 ajoute en 2018 hors dossier ERP,7
stock.csv
part_no,description,compatible_model,qty_available,qty_required,lead_time_days,reserved_for
KIT-S7-1500-MF400,Kit automate S7-1500 pour MF-PACK 400,MF-PACK 400,2,1,2,
DRV-V3-22KW,Variateur VarioDrive V3 22 kW,MF-PACK 400,4,3,1,
IO-MF400,Module entrees sorties retrofit MF400,MF-PACK 400,3,2,4,
HMI-12-FOOD,IHM inox alimentaire 12 pouces,MF-PACK 400,1,1,5,
packaging-parts.csv
part_no,description,family,compatible_model,active
KIT-S7-1500-MF400,Kit automate S7-1500 pour MF-PACK 400,Automate,MF-PACK 400,Y
DRV-V3-22KW,Variateur VarioDrive V3 22 kW,Variateur,MF-PACK 400,Y
IO-MF400,Module entrées sorties retrofit MF-PACK 400,Entrées/sorties,MF-PACK 400,Y
HMI-12-FOOD,IHM inox alimentaire 12 pouces,IHM,MF-PACK 400,Y
MOT-9016,Motoréducteur 4 kW convoyeur,Moteur,MF-PACK 400,Y
BLT-3813,Courroie de convoyeur alimentaire 50 mm,Courroie,MF-PACK 400,Y
VLV-7982,Électrovanne 5/2 12 mm,Électrovanne,MF-PACK 600,Y
BRG-2712,Roulement inox 20 mm,Roulement,FL-WRAP 200,Y
SEN-7827,Codeur incrémental 12 pts,Capteur,FL-WRAP 200,Y
PLC-1440,Kit automate S7-1500 pour MF-PACK 600,Automate,MF-PACK 600,Y
MOT-3924,Moteur asynchrone 11 kW inox,Moteur,MF-PACK 300,Y
MOT-8820,Moteur asynchrone 3 kW inox,Moteur,FL-WRAP 200,Y
DRV-5244,Variateur VarioDrive V3 11 kW,Variateur,MF-PACK 400,Y
SEN-8710,Codeur incrémental 40 pts,Capteur,FL-WRAP 200,Y
SEAL-4142,Joint silicone alimentaire 25 mm,Joint,MF-PACK 400,Y
PLC-8109,Automate S7-1500 CPU 32,Automate,MF-PACK 400,Y
VLV-1897,Électrovanne 5/2 8 mm,Électrovanne,MF-PACK 300,Y
MOT-4963,Moteur asynchrone 22 kW inox,Moteur,MF-PACK 400,Y
VLV-5216,Îlot de distribution 40 postes,Électrovanne,FL-WRAP 200,Y

… 341 more lines

manifests/60-lumilait-line.yaml
kind: Entityname: LumilaitLinedescription: "La ligne d'emballage Lumilait, rapprochée entre le dossier ERP et la vérité terrain du SAV."match: [line_id]scopes: [lumilait]columns:  line_id:    label: "Ligne"  customer_code:    label: "Code client"  customer_name:    label: "Client"  site_name:    label: "Site"  model:    label: "Modèle"  original_controller:    label: "Automate au dossier ERP"  actual_controller:    label: "Automate constaté par le SAV"  formats_mm:    label: "Formats au dossier ERP"  actual_formats_mm:    label: "Formats constatés par le SAV"  intervention_days_estimate:    label: "Durée estimée en jours"sources:  - table: t_lumi_lumilait_erp_lines    map:      line_id: line_id      customer_code: customer_code      customer_name: customer_name      site_name: site_name      model: model      original_controller: original_controller      formats_mm: formats_mm  - table: t_lumi_lumilait_sav    map:      line_id: line_id      actual_controller: actual_controller      actual_formats_mm: actual_formats_mm      intervention_days_estimate: intervention_days_estimate
manifests/61-lumilait-retrofit-part.yaml
kind: Entityname: LumilaitRetrofitPartdescription: "Une pièce nécessaire à la modernisation de la ligne d'emballage Lumilait."match: [part_no]scopes: [lumilait]columns:  part_no:    label: "Référence"    description: "Référence unique de la pièce de modernisation."  description:    label: "Pièce"    description: "Désignation lisible de la pièce."  compatible_model:    label: "Modèle compatible"    description: "Modèle de ligne sur lequel la pièce peut être installée."    example: "MF-PACK 400"  qty_available:    label: "Quantité disponible"    description: "Nombre de pièces actuellement disponibles dans le stock."  qty_required:    label: "Quantité requise"    description: "Nombre de pièces nécessaires pour ce retrofit."  lead_time_days:    label: "Délai en jours"    description: "Délai d'approvisionnement annoncé en jours."sources:  - table: t_lumi_lumilait_stock    map:      part_no: part_no      description: description      compatible_model: compatible_model      qty_available: qty_available      qty_required: qty_required      lead_time_days: lead_time_days
manifests/62-packaging-part.yaml
kind: Entityname: PackagingPartlabel: Pièce de ligne d'emballagedescription: "Une pièce détachée du catalogue des lignes d'emballage (données synthétiques)."match: [part_no]scopes: [lumilait]columns:  part_no:    label: "Référence"  description:    label: "Désignation"  family:    label: "Famille"  compatible_model:    label: "Modèle compatible"  active:    label: "Actif"sources:  - table: t_lumi_packaging_parts    map:      part_no: part_no      description: description      family: family      compatible_model: compatible_model      active: active
manifests/70-line-overview.yaml
apiVersion: apps.lumnik.io/v1kind: Viewmetadata:  name: lumi-lumilait-linespec:  scope: lumilait  table: connector.v_lumilaitline  title: "Lumilait — ligne à moderniser"  columns: [line_id, customer_name, site_name, model, actual_controller, actual_formats_mm, intervention_days_estimate]
manifests/71-retrofit-stock.yaml
apiVersion: apps.lumnik.io/v1kind: Viewmetadata:  name: lumi-lumilait-stockspec:  scope: lumilait  table: connector.v_lumilaitretrofitpart  title: "Lumilait — pièces du retrofit"  columns: [part_no, description, qty_available, qty_required, lead_time_days]
manifests/72-packaging-parts.yaml
apiVersion: apps.lumnik.io/v1kind: Viewmetadata:  name: lumi-packaging-partsspec:  scope: lumilait  table: connector.v_packagingpart  title: "Catalogue des pièces d'emballage"  columns: [part_no, description, family, compatible_model, active]
manifests/74-packaging-part-search.yaml
apiVersion: search.lumnik.io/v1kind: SearchIndexmetadata:  name: packaging-partsspec:  entity: PackagingPart  language: french  titleField: description  fields:    - name: part_no      match: prefix    - name: description      match: text    - name: family      facet: true    - name: compatible_model      facet: true
manifests/73-lumilait-app.yaml
apiVersion: apps.lumnik.io/v1kind: Appmetadata:  name: lumilaitspec:  title: Lumilait  scope: lumilait  icon: generic  theme:    accentColor: "#4fd1a5"    backgroundColor: "#f4f1ea"  default: false
manifests/80-agreement-process.yaml
apiVersion: apps.lumnik.io/v1kind: Processmetadata:  name: lumi-accord-client-a-confirmerspec:  scope: lumilait  on:    event: data.row.changed    table: connector.t_lumi_lumilait_sage_crm  when:    - status=PRET_CONFIRMATION_CLIENT  emit:    type: decision.accord-client-a-confirmer    message: "Accord Lumilait à confirmer : affaire {opportunity_id}, ligne {line_id}, montant {amount_eur} EUR, contact {contact_email}"
sage-crm-opportunities-day2.csv
opportunity_id,customer_code,site_code,line_id,customer_name,contact_name,contact_email,amount_eur,status,shutdown_start,shutdown_days,next_step
OPP-2026-1042,LUM-001,LUM-STF,MF-PACK-2011-047,Lumilait,Claire Vignal,direction@lumilait.example,240000,PRET_CONFIRMATION_CLIENT,2026-10-12,9,Envoyer le dossier de modernisation
Handled by user
1002
Simulated CRM
OPP-2026-1042 → ACCORD_DE_PRINCIPE · 20576
Customer email
direction@lumilait.example — Lumilait — dossier de modernisation MF-PACK-2011-047

evidence: replay.log, webhook-events.jsonl, mailpit-summary.json, sage-crm-state.json · transform v1

Limits

  • The CRM, the automation and the mailbox are simulated.
  • lumnik reads the exports; it does not write to the CRM, the automation does.
  • People, companies, amounts and catalogue are fictitious.

Sales · live deal

€240,000, to confirm tonight.

The sales engineer is at dinner, not at the CRM.

The line, the parts, the catalogue: all in their pocket.

Fictitious people, companies and amounts

The problem

Four tools for one answer.

  • ERP and after-sales disagree.
  • Stock is in another file.
  • The CRM moves on without a word.

Nothing is changed

The exports stay as they are.

  • lumnik reconciles ERP and after-sales.
  • It makes the catalogue searchable.
  • It tells when the deal is ready.

What it took to write

when:
  - status=PRET_CONFIRMATION_CLIENT

One condition, one decision.

The whole scenario fits in 14 declaration files, 236 lines.

The answers

The answer fits in a pocket.

  • Format 300x160: after-sales sees it, the ERP does not.
  • 7 days of work within a 9-day shutdown.
  • A drive for the MF-PACK 400, among 360 parts.

The gesture

Traiter, and the rest follows.

Decision inbox
Accord Lumilait à confirmer : affaire OPP-2026-1042, ligne MF-PACK-2011-047, montant 240000 EUR

The CRM moves to ACCORD_DE_PRINCIPE, the email goes out. Replay of 29 October 2026.

The limit

lumnik reads; the automation writes.

  • lumnik does not write to the CRM.
  • CRM, automation and mailbox are simulated.

Try it

The scenario replays end to end.

Five exports, three entities, an app, a Process: each step is published with its output.

This scenario needs lumnik Pro.

See the editions →