---
title: "CRM"
description: "Pistes et pipeline. Chaque application est un module sur un même modèle de données."
canonical: "https://obop.dev/fr/apps/crm/"
lang: "fr"
---

# CRM

## À quoi elle sert

Keep track of prospective deals from first contact to won or lost. A lead has a title, a contact, an expected revenue and a stage, and moving it along the pipeline is a named action that the team and its agents can both run.

## Ce que fait et ne fait pas le paquet

Leads and the sales pipeline.

## Modèles

### `lead`

A prospective deal with a contact

Groupe de lecture: `crm.user`. Groupe d'écriture: `crm.user`.

| Champ | Type | Classe de données | Données personnelles | Groupe | Vu par les agents | Description |
|---|---|---|---|---|---|---|
| `title` | text | `none` | non | `crm.user` | en clair | Short description of the opportunity |
| `contact_name` | text | `public_directory` | oui | `crm.user` | masqué | Name of the contact person |
| `contact_email` | text | `public_directory` | oui | `crm.user` | masqué | Email of the contact person |
| `expected_revenue_minor` | money | `none` | non | `crm.user` | en clair | Expected revenue in minor units |
| `stage` | select (new, qualified, won, lost) | `none` | non | `crm.user` | en clair | Pipeline stage: new, qualified, won or lost |

## Flux de travail

### `lead`

| Action | Transition | Qui peut l'exécuter | Approbation |
|---|---|---|---|
| `lead.qualify` | stage: new → qualified | `crm.user` | non |
| `lead.mark_won` | stage: * → won | `crm.user` | non |
| `lead.mark_lost` | stage: * → lost | `crm.user` | non |
| `lead.reopen` | stage: * → new | `crm.user` | non |

## Groupes de permissions

Groupes utilisés par cette application :

- `crm.user`

## Étapes d'approbation

Aucune étape de cette application ne requiert d'approbation, hormis la suppression d'enregistrements.

## Ce que les agents peuvent et ne peuvent pas faire

Un agent peut lire, rechercher, créer et modifier les enregistrements de cette application, et exécuter les actions qui ne requièrent pas d'approbation, dans les limites des groupes de permissions de son jeton.

Il ne peut que proposer ces étapes, qu'une personne doit approuver : `lead.delete`.

Les données personnelles sont masquées sous forme de jetons de substitution : `lead.contact_name`, `lead.contact_email`.

## Dépendances

- `base`

## Installation

Intégrée. Elle est disponible dans chaque instance et ne peut pas être supprimée.

## Créer la vôtre

[Le guide des modules montre comment sont écrites les applications de ce type](/fr/docs/reference/module-manifest/)
