---
title: "Outils IA — Pack Time (Gestion des temps CRM)"
module: ai
type: functional
status: active
updated: 2026-07-30
---

# Outils IA — Pack Time (Gestion des temps CRM)

## À quoi ça sert

Le pack `time` permet aux assistants IA d'ISI-APP de **gérer la saisie de temps CRM par conversation**. C'est le premier pack d'outils IA à introduire des opérations d'**écriture** : créer, modifier, supprimer un temps depuis un dialogue avec l'IA, sans passer par les formulaires habituels.

Concrètement, un utilisateur peut demander à son assistant : « Saisis-moi 2 heures hier sur la mission Alpha, catégorie Dev » et l'IA exécute la saisie.

## Outils disponibles

| Outil | Action | Rôle |
|-------|--------|------|
| `times_search` | Lecture | Rechercher des temps avec filtres (utilisateur, mission, catégorie, dates, statut) |
| `time_get` | Lecture | Consulter le détail d'un temps précis |
| `time_create` | Création | Saisir un nouveau temps |
| `time_update` | Modification | Modifier un temps existant |
| `time_delete` | Suppression | Supprimer un temps |

## Comment l'utiliser

Le pack `time` s'active sur un assistant IA depuis `/admin/ai` (formulaire d'assistant, section **Outils IA disponibles**). Pré-requis : l'utilisateur doit avoir le module `b2b` activé.

### Cas d'usage typiques

- « Liste mes temps de la semaine dernière »
- « Combien de temps ai-je passé sur la mission X ce mois-ci ? »
- « Saisis 3h aujourd'hui sur la mission Alpha, catégorie Réunion »
- « Supprime le temps que j'ai saisi hier par erreur »
- « Modifie mon temps de ce matin pour passer de 2h à 4h »

## Périmètre de visibilité

- **Utilisateur standard** : ne voit et ne manipule que **ses propres temps**.
- **Administrateur d'équipe** (`crm_param.is_admin = 1`) : voit et peut agir sur ses temps **et ceux des utilisateurs des équipes qu'il administre**.

## Règles métier (écriture)

| Action | Règle |
|--------|-------|
| Créer un temps pour soi | Toujours autorisé |
| Créer un temps pour quelqu'un d'autre | Droit de création requis (module 62100101) |
| Modifier son propre temps | Autorisé tant que le temps n'est pas validé (`tpstate ≠ VAL`) |
| Modifier le temps de quelqu'un d'autre | Droit de modification requis |
| Supprimer son propre temps | Autorisé uniquement si le temps est en cours de programmation (`tpstate = PROG`) |
| Supprimer le temps d'autrui | Droit de suppression requis |

## Synchronisation Outlook

Si l'utilisateur a connecté son compte Microsoft (Graph), les temps saisis via l'IA sont **automatiquement publiés sur son calendrier Outlook**, comme via les formulaires classiques. Le type d'événement Outlook dépend du type de temps :

| Type de temps | Apparence dans Outlook |
|---------------|------------------------|
| Absent | Absent du bureau |
| Occupé | Occupé |
| Provisoire | Provisoire / À confirmer |
| (vide) | Disponible |

Les modifications (mise à jour, suppression) sont également propagées à Outlook.

**Si la synchronisation Outlook échoue**, la saisie en base reste effective : le temps est bien
enregistré. L'assistant vous l'annonce alors explicitement, en précisant la cause — connexion
Outlook expirée (il faut reconnecter Outlook depuis votre profil), ou refus signalé par Microsoft.
Vous n'avez donc pas à ressaisir le temps : seule la publication dans l'agenda est à reprendre.

## Comportements automatiques

- À chaque création/modification/suppression d'un temps, **les totaux de la mission concernée sont recalculés automatiquement** (idem flow historique).
- En cas de changement de mission lors d'une modification, les totaux de l'ancienne **et** de la nouvelle mission sont recalculés.

## Limitations connues (MVP)

- **Pas de récurrence** : impossible de demander à l'IA « saisis 2h tous les lundis du mois ». À gérer via les formulaires classiques.
- **Pas d'envoi d'email de validation d'absence** depuis l'IA — ce mail n'est déclenché que par les formulaires.
- **Pas de validation administrative** d'un temps via l'IA — la validation passe par l'interface admin standard.

---

> Doc technique : [.claude/technical-docs/ai/ai-tool-calling-time-pack.md](../../.claude/technical-docs/ai/ai-tool-calling-time-pack.md)
