Sur cette page
- À savoir
- Exemple : du prospect à l'argumentaire
- L'objet SimulationSummary
- L'objet Simulation
- L'objet Pitch
- Simulations de couverture de l'organisation, les plus récemment modifiées d'abord
- Créer une simulation de zone : couverture du réseau autour d'un point pour un client
- Une simulation : zone, couverture, concurrents, client
- Changer le statut commercial ou le nom d'une simulation
- Rédiger l'argumentaire d'une simulation (IA si disponible, sinon gabarit)
Une simulation mesure la couverture du réseau de votre organisation autour d'un client : combien de stations de votre réseau se trouvent dans un rayon donné autour de son site, face aux réseaux concurrents. Elle suit ensuite l'avancement commercial du dossier, et l'API rédige l'argumentaire de vente à remettre au client.
À savoir
- Créer une simulation calcule aussitôt les résultats d'une zone : stations du réseau de l'organisation dans le rayon (
stationCount), total recensé (networkTotal), couverture (coveragePct) et niveau de confiance. Un réseau absent de la zone donne une couverture de 0 %. - Le client se désigne par son SIRET (
companySiret, rattaché à l'annuaire) ou par son nom (companyName). La simulation est créée au nom du membre désigné du compte d'API, et apparaît dans l'application. - Statuts :
todo,progress,won,lost,archived; changez-les parPATCH. L'API crée des simulations de zone ; les trajets et les simulations multi-sites se préparent dans l'application. - L'argumentaire est rédigé par l'IA avec une clé
fw_live_, si l'IA est disponible et sous le plafond quotidien de l'organisation ; sinon, et toujours avec une cléfw_test_, il vient du gabarit.generatordit lequel. Chaque appel remplace l'argumentaire enregistré sur la simulation. - Les textes de l'argumentaire sont en Markdown réduit (
**gras**,==surligné==, listes numérotées), dans la langue d'Accept-Language. - Ces opérations demandent le module Simulation dans l'offre de l'organisation (voir offres et IA).
Exemple : du prospect à l'argumentaire
Trouvez l'établissement dans l'annuaire, géocodez son adresse avec le géocodage, créez la simulation avec son SIRET et ces coordonnées, puis rédigez l'argumentaire. Quand le dossier est signé, passez la simulation en won.
L'objet SimulationSummary
| Champ | Type | Description |
|---|---|---|
idtoujours présent | string (uuid) | |
nametoujours présent | string | |
modetoujours présent | "zone" | "trajet" | "multi" | |
statustoujours présent | "todo" | "progress" | "won" | "lost" | "archived" | |
confidencetoujours présent | "high" | "med" | "low" | |
coveragePcttoujours présent | number | null | |
stationCounttoujours présent | number | null | |
companyIdtoujours présent | string (uuid) | null | |
createdAttoujours présent | string (date-time) | |
updatedAttoujours présent | string (date-time) |
{
"id": "ffffffff-0000-0000-0000-000000000001",
"name": "Transports Bonin · Zone 50 km",
"mode": "zone",
"status": "todo",
"confidence": "high",
"coveragePct": 98,
"stationCount": 30,
"companyId": "cccccccc-0000-0000-0000-000000000001",
"createdAt": "2026-07-06T09:24:53.171192+00:00",
"updatedAt": "2026-07-09T22:05:45.68844+00:00"
}L'objet Simulation
| Champ | Type | Description |
|---|---|---|
idtoujours présent | string (uuid) | |
nametoujours présent | string | |
modetoujours présent | "zone" | "trajet" | "multi" | |
statustoujours présent | "todo" | "progress" | "won" | "lost" | "archived" | |
confidencetoujours présent | "high" | "med" | "low" | |
coveragePcttoujours présent | number | null | |
stationCounttoujours présent | number | null | |
companyIdtoujours présent | string (uuid) | null | |
createdAttoujours présent | string (date-time) | |
updatedAttoujours présent | string (date-time) | |
productIdtoujours présent | string (uuid) | null | |
zonetoujours présent | object | null | |
zone.centertoujours présent | object | |
zone.center.labeltoujours présent | string | |
zone.center.lattoujours présent | number | |
zone.center.lngtoujours présent | number | |
zone.radiusKmtoujours présent | number | |
fuelstoujours présent | string[] | |
servicestoujours présent | string[] | |
competitorstoujours présent | object[] | |
competitors[].nametoujours présent | string | |
competitors[].pcttoujours présent | number | |
competitors[].stationstoujours présent | number | |
networkTotaltoujours présent | number | null | |
savingsPerMonthtoujours présent | integer | null | Économies estimées, centimes par mois. |
recommendationtoujours présent | string | null | |
companytoujours présent | object | null | |
company.idtoujours présent | string (uuid) | |
company.nametoujours présent | string | |
company.sirettoujours présent | string | null | |
company.citytoujours présent | string | null |
{
"id": "ffffffff-0000-0000-0000-000000000001",
"name": "Transports Bonin · Zone 50 km",
"mode": "zone",
"status": "todo",
"confidence": "high",
"coveragePct": 98,
"stationCount": 30,
"companyId": "cccccccc-0000-0000-0000-000000000001",
"createdAt": "2026-07-06T09:24:53.171192+00:00",
"updatedAt": "2026-07-09T22:05:45.68844+00:00",
"productId": "eeeeeeee-0000-0000-0000-000000000001",
"zone": {
"center": {
"label": "Lyon 7e — Siège social",
"lat": 45.7485,
"lng": 4.8467
},
"radiusKm": 50
},
"fuels": [
"B7",
"SP95_E10",
"SP98"
],
"services": [
"LAVAGE_PL",
"PARKING_PL",
"RESTAURATION"
],
"competitors": [
{
"name": "Carbu Express",
"pct": 98,
"stations": 30
},
{
"name": "TotalEnergies Pro",
"pct": 98,
"stations": 18
},
{
"name": "BP+",
"pct": 98,
"stations": 18
}
],
"networkTotal": 160,
"savingsPerMonth": null,
"recommendation": null,
"company": {
"id": "cccccccc-0000-0000-0000-000000000001",
"name": "Transports Bonin",
"siret": "43219876500017",
"city": "Lyon"
}
}L'objet Pitch
| Champ | Type | Description |
|---|---|---|
titletoujours présent | string | null | |
sectionstoujours présent | object[] | |
sections[].headingtoujours présent | string | |
sections[].bodytoujours présent | string | Markdown : gras, ==surligné==, listes numérotées. |
nextSteptoujours présent | string | null | |
sourcestoujours présent | string[] | |
generatortoujours présent | "gemini" | "template" | gemini : rédigé par l'IA ; template : gabarit de repli (toujours avec une clé fw_test_). |
{
"title": "Why Carbu Express is the right partner for your fleet",
"sections": [
{
"heading": "Your current situation",
"body": "You operate your fleet around Lyon 7e in the transports routiers de fret interurbains sector. Our simulation over a 50 km radius shows a ==coverage of 98%== of your activity by our current network (**30 stations** out of 160 listed in the zone) — solid, but with room to improve."
},
{
"heading": "Three key benefits",
"body": "1. Measurable savings from the first month — our average diesel price in the zone is competitive against the major networks present.\n2. 30 stations in the immediate vicinity of your rounds — your drivers save time on technical stops.\n3. A multi-energy card starting today — 3 energies covered (B7, SP95_E10, SP98), to anticipate the transition of your next renewals without changing supplier."
},
{
"heading": "And what about the less covered areas?",
"body": "This is our point of attention. Some secondary routes remain less covered. To compensate, we offer the Card + 24/7 breakdown assistance bundle — at no extra cost — and our network plan includes new openings in the area."
}
],
"nextStep": "Propose a 30-day trial on 5 vehicles to validate the actual savings before full rollout.",
"sources": [
"50 km zone simulation · 12:46 PM",
"Carbu Express network: stations listed in Floweet",
"Public prices: prix-carburants.gouv.fr"
],
"generator": "template"
}Simulations de couverture de l'organisation, les plus récemment modifiées d'abord
/v1/simulationsScope simulations:readParamètres
| Champ | Où | Type | Description |
|---|---|---|---|
limitfacultatif | requête | integerde 1 à 100 · défaut 20 | Nombre d'éléments par page (1 à 100, 20 par défaut). |
cursorfacultatif | requête | stringau plus 400 caractères | Curseur opaque : la valeur nextCursor de la page précédente. |
statusfacultatif | requête | "todo" | "progress" | "won" | "lost" | "archived" | |
modefacultatif | requête | "zone" | "trajet" | "multi" | |
qfacultatif | requête | stringau plus 100 caractères | Recherche dans le nom. |
Réponse 200
Succès — Une page de SimulationSummary { data, nextCursor, hasMore }
Erreurs
| HTTP | Signification |
|---|---|
400 | Requête invalide |
401 | Clé d'API absente, invalide ou révoquée |
403 | Accès refusé (scope, plan ou statut du compte) |
404 | Ressource introuvable |
429 | Trop de requêtes |
500 | Erreur interne |
curl "https://api.floweet.com/v1/simulations" \
-H "Authorization: Bearer $FLOWEET_API_KEY"{
"data": [
{
"id": "ffffffff-0000-0000-0000-000000000002",
"name": "Garage Mercier & Fils · Zone 30 km",
"mode": "zone",
"status": "won",
"confidence": "low",
"coveragePct": 36,
"stationCount": 14,
"companyId": "cccccccc-0000-0000-0000-000000000009",
"createdAt": "2026-07-05T08:24:53.171192+00:00",
"updatedAt": "2026-09-28T20:47:50.083018+00:00"
},
{
"id": "ffffffff-0000-0000-0000-000000000001",
"name": "Transports Bonin · Zone 50 km",
"mode": "zone",
"status": "todo",
"confidence": "high",
"coveragePct": 98,
"stationCount": 30,
"companyId": "cccccccc-0000-0000-0000-000000000001",
"createdAt": "2026-07-06T09:24:53.171192+00:00",
"updatedAt": "2026-07-09T22:05:45.68844+00:00"
}
],
"nextCursor": "eyJwIjoyLCJzIjoyfQ",
"hasMore": true
}Créer une simulation de zone : couverture du réseau autour d'un point pour un client
/v1/simulationsScope simulations:writeParamètres
| Champ | Où | Type | Description |
|---|---|---|---|
Idempotency-Keyfacultatif | en-tête | stringau plus 255 caractères | Clé unique de cette requête (un UUID v4 neuf, gardé pour ses nouvelles tentatives) : la première réponse est rejouée pendant 24 heures. |
Corps de la requête SimulationInput
| Champ | Type | Description |
|---|---|---|
namefacultatif | string1 à 200 caractères | Par défaut : « <entreprise> · Zone <rayon> km ». |
companySiretfacultatif | string | SIRET du client (annuaire) ; sinon companyName. |
companyNamefacultatif | string1 à 200 caractères | |
centerobligatoire | object | |
center.labelobligatoire | stringau plus 300 caractères | |
center.latobligatoire | numberde -90 à 90 | |
center.lngobligatoire | numberde -180 à 180 | |
radiusKmobligatoire | numberde 1 à 300 | |
fuelsfacultatif | string[]au plus 20 éléments | Codes carburant dont le client a besoin (B7, GNV…). |
servicesfacultatif | string[]au plus 20 éléments | |
competitorsfacultatif | string[]au plus 10 éléments |
Réponse 201
Simulation créée — Un objet Simulation
Erreurs
| HTTP | Signification |
|---|---|
400 | Requête invalide |
401 | Clé d'API absente, invalide ou révoquée |
403 | Accès refusé (scope, plan ou statut du compte) |
404 | Ressource introuvable |
422 | Requête impossible à traiter |
429 | Trop de requêtes |
500 | Erreur interne |
502 | Service partenaire en erreur |
curl -X POST "https://api.floweet.com/v1/simulations" \
-H "Authorization: Bearer $FLOWEET_API_KEY" \
-H "Idempotency-Key: 6f1c2b0e-8d4a-4f7e-9a51-3c2d1e0f9b87" \
-H "Content-Type: application/json" \
-d '{
"companyName": "Transports Bonin",
"center": {
"label": "Lyon 7e — Siège social",
"lat": 45.7485,
"lng": 4.8467
},
"radiusKm": 50,
"fuels": [
"B7",
"SP95_E10",
"SP98"
]
}'{
"id": "ffffffff-0000-0000-0000-000000000001",
"name": "Transports Bonin · Zone 50 km",
"mode": "zone",
"status": "todo",
"confidence": "high",
"coveragePct": 98,
"stationCount": 30,
"companyId": "cccccccc-0000-0000-0000-000000000001",
"createdAt": "2026-07-06T09:24:53.171192+00:00",
"updatedAt": "2026-07-09T22:05:45.68844+00:00",
"productId": "eeeeeeee-0000-0000-0000-000000000001",
"zone": {
"center": {
"label": "Lyon 7e — Siège social",
"lat": 45.7485,
"lng": 4.8467
},
"radiusKm": 50
},
"fuels": [
"B7",
"SP95_E10",
"SP98"
],
"services": [
"LAVAGE_PL",
"PARKING_PL",
"RESTAURATION"
],
"competitors": [
{
"name": "Carbu Express",
"pct": 98,
"stations": 30
},
{
"name": "TotalEnergies Pro",
"pct": 98,
"stations": 18
},
{
"name": "BP+",
"pct": 98,
"stations": 18
}
],
"networkTotal": 160,
"savingsPerMonth": null,
"recommendation": null,
"company": {
"id": "cccccccc-0000-0000-0000-000000000001",
"name": "Transports Bonin",
"siret": "43219876500017",
"city": "Lyon"
}
}Une simulation : zone, couverture, concurrents, client
/v1/simulations/{id}Scope simulations:readParamètres
| Champ | Où | Type | Description |
|---|---|---|---|
idobligatoire | chemin | string (uuid) |
Réponse 200
Succès — Un objet Simulation
Erreurs
| HTTP | Signification |
|---|---|
400 | Requête invalide |
401 | Clé d'API absente, invalide ou révoquée |
403 | Accès refusé (scope, plan ou statut du compte) |
404 | Ressource introuvable |
429 | Trop de requêtes |
500 | Erreur interne |
curl "https://api.floweet.com/v1/simulations/7d0c1f8e-2a4b-4c6d-9e8f-0a1b2c3d4e5f" \
-H "Authorization: Bearer $FLOWEET_API_KEY"{
"id": "ffffffff-0000-0000-0000-000000000001",
"name": "Transports Bonin · Zone 50 km",
"mode": "zone",
"status": "todo",
"confidence": "high",
"coveragePct": 98,
"stationCount": 30,
"companyId": "cccccccc-0000-0000-0000-000000000001",
"createdAt": "2026-07-06T09:24:53.171192+00:00",
"updatedAt": "2026-07-09T22:05:45.68844+00:00",
"productId": "eeeeeeee-0000-0000-0000-000000000001",
"zone": {
"center": {
"label": "Lyon 7e — Siège social",
"lat": 45.7485,
"lng": 4.8467
},
"radiusKm": 50
},
"fuels": [
"B7",
"SP95_E10",
"SP98"
],
"services": [
"LAVAGE_PL",
"PARKING_PL",
"RESTAURATION"
],
"competitors": [
{
"name": "Carbu Express",
"pct": 98,
"stations": 30
},
{
"name": "TotalEnergies Pro",
"pct": 98,
"stations": 18
},
{
"name": "BP+",
"pct": 98,
"stations": 18
}
],
"networkTotal": 160,
"savingsPerMonth": null,
"recommendation": null,
"company": {
"id": "cccccccc-0000-0000-0000-000000000001",
"name": "Transports Bonin",
"siret": "43219876500017",
"city": "Lyon"
}
}Changer le statut commercial ou le nom d'une simulation
/v1/simulations/{id}Scope simulations:writeParamètres
| Champ | Où | Type | Description |
|---|---|---|---|
idobligatoire | chemin | string (uuid) |
Corps de la requête SimulationUpdate
| Champ | Type | Description |
|---|---|---|
statusfacultatif | "todo" | "progress" | "won" | "lost" | "archived" | |
namefacultatif | string1 à 200 caractères |
Réponse 200
Succès — Un objet Simulation
Erreurs
| HTTP | Signification |
|---|---|
400 | Requête invalide |
401 | Clé d'API absente, invalide ou révoquée |
403 | Accès refusé (scope, plan ou statut du compte) |
404 | Ressource introuvable |
429 | Trop de requêtes |
500 | Erreur interne |
curl -X PATCH "https://api.floweet.com/v1/simulations/7d0c1f8e-2a4b-4c6d-9e8f-0a1b2c3d4e5f" \
-H "Authorization: Bearer $FLOWEET_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "won"
}'{
"id": "ffffffff-0000-0000-0000-000000000001",
"name": "Transports Bonin · Zone 50 km",
"mode": "zone",
"status": "todo",
"confidence": "high",
"coveragePct": 98,
"stationCount": 30,
"companyId": "cccccccc-0000-0000-0000-000000000001",
"createdAt": "2026-07-06T09:24:53.171192+00:00",
"updatedAt": "2026-07-09T22:05:45.68844+00:00",
"productId": "eeeeeeee-0000-0000-0000-000000000001",
"zone": {
"center": {
"label": "Lyon 7e — Siège social",
"lat": 45.7485,
"lng": 4.8467
},
"radiusKm": 50
},
"fuels": [
"B7",
"SP95_E10",
"SP98"
],
"services": [
"LAVAGE_PL",
"PARKING_PL",
"RESTAURATION"
],
"competitors": [
{
"name": "Carbu Express",
"pct": 98,
"stations": 30
},
{
"name": "TotalEnergies Pro",
"pct": 98,
"stations": 18
},
{
"name": "BP+",
"pct": 98,
"stations": 18
}
],
"networkTotal": 160,
"savingsPerMonth": null,
"recommendation": null,
"company": {
"id": "cccccccc-0000-0000-0000-000000000001",
"name": "Transports Bonin",
"siret": "43219876500017",
"city": "Lyon"
}
}Rédiger l'argumentaire d'une simulation (IA si disponible, sinon gabarit)
/v1/simulations/{id}/pitchScope simulations:writeAvec une clé fw_test_, l'argumentaire vient toujours du gabarit : aucun appel à l'IA.
Paramètres
| Champ | Où | Type | Description |
|---|---|---|---|
idobligatoire | chemin | string (uuid) | |
Idempotency-Keyfacultatif | en-tête | stringau plus 255 caractères | Clé unique de cette requête (un UUID v4 neuf, gardé pour ses nouvelles tentatives) : la première réponse est rejouée pendant 24 heures. |
Réponse 200
Succès — Un objet Pitch
Erreurs
| HTTP | Signification |
|---|---|
400 | Requête invalide |
401 | Clé d'API absente, invalide ou révoquée |
403 | Accès refusé (scope, plan ou statut du compte) |
404 | Ressource introuvable |
429 | Trop de requêtes |
500 | Erreur interne |
curl -X POST "https://api.floweet.com/v1/simulations/7d0c1f8e-2a4b-4c6d-9e8f-0a1b2c3d4e5f/pitch" \
-H "Authorization: Bearer $FLOWEET_API_KEY" \
-H "Idempotency-Key: 6f1c2b0e-8d4a-4f7e-9a51-3c2d1e0f9b87"{
"title": "Why Carbu Express is the right partner for your fleet",
"sections": [
{
"heading": "Your current situation",
"body": "You operate your fleet around Lyon 7e in the transports routiers de fret interurbains sector. Our simulation over a 50 km radius shows a ==coverage of 98%== of your activity by our current network (**30 stations** out of 160 listed in the zone) — solid, but with room to improve."
},
{
"heading": "Three key benefits",
"body": "1. Measurable savings from the first month — our average diesel price in the zone is competitive against the major networks present.\n2. 30 stations in the immediate vicinity of your rounds — your drivers save time on technical stops.\n3. A multi-energy card starting today — 3 energies covered (B7, SP95_E10, SP98), to anticipate the transition of your next renewals without changing supplier."
},
{
"heading": "And what about the less covered areas?",
"body": "This is our point of attention. Some secondary routes remain less covered. To compensate, we offer the Card + 24/7 breakdown assistance bundle — at no extra cost — and our network plan includes new openings in the area."
}
],
"nextStep": "Propose a 30-day trial on 5 vehicles to validate the actual savings before full rollout.",
"sources": [
"50 km zone simulation · 12:46 PM",
"Carbu Express network: stations listed in Floweet",
"Public prices: prix-carburants.gouv.fr"
],
"generator": "template"
}