A heterogeneous inbox

Requests arrive by phone, by email, through a web form or through internal entry. Before they become interventions, they are kept in an inbox. Qualifying them means assigning a priority and a technical domain, which then drives the contractual deadline and the profile of the technician to send.

Handing this step entirely to a language model would be tempting, but fragile: an unavailable API, a malformed response or an expired key must never block request handling.

Rules first, the model second

By default, qualification relies on deterministic rules written for French. They produce a suggestion with a confidence score and readable reasons. An optional call to the OpenAI Responses API, with structured JSON output, can be enabled on top.

FieldFlow automatically falls back to the local rules in four cases:

  • the model’s response does not match the expected schema;
  • its confidence is too low;
  • the call fails (network error, limit reached);
  • no API key is configured.

Tracing every attempt

The provider used, the model and the reason for any fallback are stored with the suggestion. Every call is audited without keeping the prompt: feature, resource concerned, provider, model, result or fallback, latency, response identifier and token usage.

On the data side, only the subject, the description and the equipment category, if any, are sent to the model, never the requester’s contact details. The user identity, passed as a safety identifier, is irreversibly hashed.

People stay in charge

A suggestion is neither a decision nor a diagnosis. When converting the request into an intervention, the dispatcher explicitly confirms the priority, the time slot and the contract.

The same principle applies to the other uses of AI in the prototype: a voice memo transcription remains a draft until the technician confirms it, and visual assistance on a photo never changes an intervention’s status on its own.

Why this split

Deterministic rules make the feature testable, with reproducible results, and usable without any API key. The model improves behaviour that already works instead of being a precondition for it. Finally, comparing its suggestions with the rules and tracking the fallback rate shows concretely what the AI adds.