snapshot of https://github.com/twentyhq/twenty.git (main, 2026-09-17; blobs > 131072B omitted)
Some checks failed
App Prod-Parity E2E Dispatch / dispatch (push) Failing after 10s
CD Storybook UI / build (push) Failing after 3m25s
CD Storybook UI / dispatch (push) Has been skipped
CD deploy main / website-changed-files (push) Successful in 18m8s
CI Agent Skills / changed-files-check (push) Successful in 18m9s
CI Create App E2E minimal / changed-files-check (push) Successful in 24s
CI Create App / changed-files-check (push) Successful in 26s
CI Docs / changed-files-check (push) Successful in 26s
CI Emails / changed-files-check (push) Successful in 28s
CI Example App Hello World / changed-files-check (push) Successful in 23s
CI Front / changed-files-check (push) Has been skipped
CI Example App Postcard / changed-files-check (push) Successful in 27s
CI UI / changed-files-check (push) Has been skipped
CI Utils Test / changed-files-check (push) Successful in 45s
CI Twenty Apps / discover (push) Successful in 1m3s
CD deploy main / deploy-main (push) Failing after 3s
CI Agent Skills / agent-skills-validate (push) Has been skipped
CI Create App / create-app-test (lint) (push) Has been skipped
CI Emails / emails-test (push) Has been skipped
CI Front / front-task (lingui:compile) (push) Has been skipped
CI Front / front-task (lint) (push) Has been skipped
CI Example App Postcard / example-app-postcard (push) Has been skipped
CI UI / ui-task (lint) (push) Has been skipped
CI UI / ui-task (pack-size) (push) Has been skipped
CI UI / ui-task (size) (push) Has been skipped
CI UI / ui-task (test) (push) Has been skipped
CI UI / ui-task (typecheck) (push) Has been skipped
CI Utils Test / utils-test (push) Has been skipped
CI Twenty Apps / ${{ matrix.app.name }} (push) Has been skipped
CI Emails / ci-emails-status-check (push) Successful in 2s
CI Example App Hello World / ci-example-app-hello-world-status-check (push) Successful in 2s
CI Example App Postcard / ci-example-app-postcard-status-check (push) Successful in 3s
CI UI / ui-sb-test (push) Has been skipped
CI Utils Test / ci-utils-test-status-check (push) Successful in 2s
CI Twenty Apps / ci-twenty-apps-status-check (push) Successful in 2s
CI UI / ci-ui-status-check (push) Successful in 2s
CI Desktop / desktop (push) Failing after 1m8s
Push docs to Crowdin / Push documentation to Crowdin (push) Failing after 55s
Push translations to Crowdin / Extract and upload translations (push) Failing after 5s
Push website translations to Crowdin / Extract and upload website translations (push) Failing after 5s
CI Create App / create-app-test (test) (push) Has been skipped
CI Create App / create-app-test (typecheck) (push) Has been skipped
CI Docs / docs-lint (push) Has been skipped
CI Example App Hello World / example-app-hello-world (push) Has been skipped
CI Front / front-task (lingui:extract) (push) Has been skipped
CI Front / front-task (test) (push) Has been skipped
CI Front / front-task (typecheck) (push) Has been skipped
CI UI / ui-sb-build (push) Failing after 1m32s
CI Twenty Apps / ${{ matrix.app.name }} (${{ matrix.server-source }}) (push) Has been skipped
CI Agent Skills / agent-skills-publish (push) Has been skipped
CI Create App / ci-create-app-status-check (push) Successful in 2s
CI Agent Skills / agent-skills-remote-source (push) Has been skipped
CI Create App E2E minimal / create-app-e2e-minimal (push) Has been cancelled
CI E2E Main / e2e-test (push) Has been cancelled
CI Front / front-sb-build (push) Has been cancelled
CI Front / front-build (push) Has been cancelled
CI Create App E2E minimal / ci-create-app-e2e-minimal-status-check (push) Has been cancelled
CI E2E Main / ci-e2e-main-status-check (push) Has been cancelled
CI E2E Main / notify-main-ci-failure (push) Has been cancelled
CI E2E Main / qa-scout-comment (push) Has been cancelled
CI Front / front-sb-test (push) Has been cancelled
CI Front / front-sb-screenshots (push) Has been cancelled
CI Front / ci-front-status-check (push) Has been cancelled
DPA Sub-Processor Sync / sync-subprocessors (push) Failing after 3s
AI Catalog Sync / sync-catalog (push) Failing after 2s

This commit is contained in:
upstream-mirror
2026-09-17 23:28:13 +05:00
commit e7da97194a
32688 changed files with 4208681 additions and 0 deletions

View File

@@ -0,0 +1,167 @@
---
title: Envoi d'e-mails via les workflows
description: Envoyez automatiquement des e-mails personnalisés en utilisant des actions de workflows.
---
Envoyez automatiquement des e-mails lorsque des événements spécifiques se produisent dans votre CRM—accueillez les nouveaux contacts, assurez le suivi des opportunités ou informez les membres de l'équipe.
## Prérequis
Avant de pouvoir envoyer des e-mails depuis des workflows :
1. Connectez un compte e-mail dans **Paramètres → Comptes**
2. Assurez-vous que les autorisations d'envoi sont activées pour le compte
## Workflow d'e-mails de base
### Exemple : E-mail de bienvenue pour les nouveaux contacts
**Objectif** : Envoyer un e-mail de bienvenue lorsqu'une nouvelle personne est ajoutée au CRM.
**Installation**:
1. **Créer un workflow** : Allez dans **Paramètres → Workflows** et cliquez sur **+ Nouveau workflow**
2. **Ajouter un déclencheur** : Sélectionnez **Enregistrement créé** → **Personnes**
3. **Ajouter l'action Envoyer un e-mail** :
* Cliquez sur **+** pour ajouter une action
* Sélectionnez **Envoyer un e-mail**
* Configurez l'e-mail :
| Champ | Valeur |
| -------------------- | -------------------------------------- |
| **À** | `{{trigger.object.email}}` |
| **Objet** | `Bienvenue sur {{Your Company Name}}` |
| **Corps du message** | `Hi {{trigger.object.firstName}}, ...` |
4. **Tester et activer** : Testez avec un enregistrement d'exemple, puis activez
## Utiliser des variables dans les e-mails
Faites référence aux données des étapes précédentes en utilisant la syntaxe `{{variable}}` :
```text
Hi {{trigger.object.firstName}},
Thank you for connecting with us!
Your company, {{trigger.object.company.name}}, is now in our system.
Best regards,
The Team
```
### Variables disponibles à partir des déclencheurs
| Type de déclencheur | Variables courantes |
| ---------------------------------- | -------------------------------------- |
| **Enregistrement créé/mis à jour** | `{{trigger.object.fieldName}}` |
| **Manuel** | `{{trigger.selectedRecord.fieldName}}` |
| **Webhook** | `{{trigger.body.fieldName}}` |
## Avancé : E-mails conditionnels
### Exemple : Différents e-mails selon la source du prospect
**Objectif** : Envoyer différents e-mails de bienvenue selon l'origine du prospect.
**Installation**:
1. **Déclencheur** : Enregistrement créé (Personnes)
2. **Ajouter l'action Filtre** :
* Condition : `{{trigger.object.source}}` est égal à `"Website"`
* Si vrai → continuer vers l'e-mail de bienvenue du site web
3. **Branche pour les autres sources** :
* Créez des branches parallèles pour différentes sources
* Chaque branche a sa propre action Envoyer un e-mail
## Envoi d'e-mails à plusieurs destinataires
### Exemple : Avertir l'équipe lorsqu'une opportunité est gagnée
**Objectif** : Envoyer un e-mail au commercial et à son responsable lorsqu'une opportunité est gagnée.
**Installation**:
1. **Déclencheur** : Enregistrement mis à jour (Opportunités, Étape = "Fermé Gagné")
2. **Rechercher des enregistrements** : Trouver le responsable du propriétaire de l'opportunité
3. **Envoyer l'e-mail #1** : Au propriétaire de l'opportunité
* À : `{{trigger.object.owner.email}}`
* Objet : `Congratulations on closing {{trigger.object.name}}!`
4. **Envoyer l'e-mail #2** : Au responsable
* À : `{{searchRecords.manager.email}}`
* Objet : `Deal Won: {{trigger.object.name}}`
## E-mails de suivi planifiés
### Exemple : Relancer 3 jours après la réunion
**Objectif** : Envoyer un e-mail de relance 3 jours après l'enregistrement d'une réunion.
**Installation**:
1. **Déclencheur** : Enregistrement créé (Activités, Type = "Réunion")
2. **Action de délai** : Attendre 3 jours
3. **Envoyer l'e-mail** :
* À : Participant à la réunion
* Objet : Suite à notre conversation
* Corps : Faites référence aux détails de la réunion depuis le déclencheur
## Pièces jointes aux e-mails
Vous pouvez joindre des fichiers aux e-mails envoyés à partir de workflows. La pièce jointe est un fichier statique que vous téléversez lors de la configuration du workflow.
### Comment ajouter une pièce jointe
1. Dans l'action **Envoyer un e-mail**, cliquez sur le bouton **Pièces jointes**
2. Cliquez pour téléverser un fichier depuis votre ordinateur
3. Le fichier sera joint à tous les e-mails envoyés par cette action
### Cas d'utilisation courants
| Cas d'utilisation | Fichier d'exemple |
| ------------------------------ | -------------------------------------- |
| **E-mails de bienvenue** | Brochure de l'entreprise (PDF) |
| **Séquences d'intégration** | Guide de prise en main |
| **Suivis des ventes** | Catalogue de produits ou liste de prix |
| **Confirmations d'événements** | Détails de l'événement ou programme |
<Note>
Les pièces jointes sont statiques — le même fichier est envoyé à tous les destinataires. Pour les documents dynamiques (comme des devis personnalisés), générez et joignez des fichiers à l'aide d'une [Logic Function](/l/fr/user-guide/workflows/how-tos/connect-to-other-tools/generate-pdf-from-twenty).
</Note>
## Meilleures pratiques
### Contenu de l'e-mail
* Conservez des lignes d'objet concises et pertinentes
* Personnalisez avec le nom du destinataire
* Incluez un appel à l'action clair
* Testez les e-mails avant l'activation
### Délivrabilité
* N'envoyez pas trop d'e-mails trop rapidement
* Utilisez des signatures d'e-mail professionnelles
* Évitez les mots déclencheurs de spam
* Assurez-vous de proposer des options de désabonnement pour les e-mails marketing
### Résolution des problèmes
* Vérifiez que le compte e-mail est connecté et actif
* Vérifiez que l'adresse e-mail du destinataire est valide
* Examinez les exécutions de workflows pour les messages d'erreur
* Testez d'abord avec votre propre adresse e-mail
## Articles connexes
* [Déclencheurs de workflows](/l/fr/user-guide/workflows/capabilities/workflow-triggers)
* [Actions de workflows](/l/fr/user-guide/workflows/capabilities/workflow-actions)

View File

@@ -0,0 +1,88 @@
---
title: Utiliser les branches dans les flux de travail
description: Comprendre le fonctionnement des branches et comment contrôler le chemin exécuté.
---
## Fonctionnement des branches
Dans l'éditeur de flux de travail, vous pouvez créer plusieurs chemins (branches) partant d'un seul nœud. Cela vous permet de créer des automatisations complexes avec des résultats différents.
**Important** : Lorsqu'un flux de travail s'exécute, **toutes les branches s'exécutent en parallèle par défaut**. Il n'existe pas de logique "if/else" intégrée pour choisir une branche plutôt qu'une autre — chaque chemin s'exécutera simultanément.
## Contrôler quelle branche s'exécute
Pour exécuter une seule branche selon des conditions spécifiques, **ajoutez un nœud Filter au début de chaque branche**.
### Exemple de configuration
1. Créez votre flux de travail avec plusieurs branches à partir d'un seul nœud
2. Ajoutez un nœud **Filter** comme première étape de chaque branche
3. Définissez des conditions sur chaque Filter pour déterminer quand cette branche doit continuer
4. Seules les branches dont les conditions du Filter sont satisfaites continueront
### Fonctionnement des nœuds Filter
* Si la condition du Filter est **remplie** : La branche continue son exécution
* Si la condition du Filter **n'est pas remplie** : La branche s'arrête au nœud Filter
Cela crée effectivement une logique conditionnelle où seule la branche appropriée s'exécute en fonction de vos données.
## Exemple : Routage selon le montant de l'affaire
**Scénario** : Lorsqu'une affaire est conclue, envoyez différentes notifications selon le montant de l'affaire.
1. **Déclencheur** : Opportunité mise à jour (Étape = Fermée gagnée)
2. **Branche 1** : Filter pour Montant > 10 000 $ → Envoyer un message Slack dans #big-deals
3. **Branche 2** : Filter pour Montant ≤ 10 000 $ → Envoyer un e-mail au responsable commercial
Les deux branches démarrent, mais seule celle qui correspond au montant de l'affaire continuera au-delà de son Filter.
## Création de branches
<Note>
Pour créer une nouvelle branche à partir d'une étape existante, cliquez sur le bouton **+** sur l'étape et ajoutez votre action. Vous pouvez ajouter plusieurs branches en cliquant plusieurs fois sur **+**.
</Note>
1. Dans l'éditeur de flux de travail, sélectionnez l'étape à partir de laquelle vous souhaitez créer une branche
2. Cliquez sur le bouton **+** pour ajouter une action
3. Cela crée une branche
4. Cliquez de nouveau sur **+** sur la même étape pour créer d'autres branches
5. Chaque branche peut avoir sa propre séquence d'actions
## Fusionner les branches
Une fois que les branches parallèles ont terminé leur travail, vous pouvez les fusionner de nouveau en un seul chemin :
1. Terminez vos actions dans les branches
2. Ajoutez une nouvelle étape qui doit s'exécuter après toutes les branches
3. Faites glisser une connexion depuis la dernière étape de chaque branche vers cette nouvelle étape
4. L'étape fusionnée attend que toutes les branches connectées soient terminées avant de s'exécuter
### Exemple : Traiter puis notifier
```
Trigger
│
├── Branch A: Update Customer Record
│
└── Branch B: Create Support Ticket
↘ ↙
Merged Step: Send Confirmation Email
```
L'e-mail de confirmation n'est envoyé qu'après la mise à jour du client et la création de tickets.
## Meilleures pratiques
* Utilisez toujours des **nœuds Filter** au début des branches lorsque vous souhaitez une exécution conditionnelle
* Gardez des conditions de branche **mutuellement exclusives** pour éviter les actions en double
* Testez vos flux de travail avec différentes données pour vous assurer que les bonnes branches s'exécutent
* **Renommez les étapes de branche** de manière descriptive afin qu'il soit clair ce que fait chaque chemin
* **Fusionnez les branches** lorsque vous avez besoin d'une action finale après un traitement en parallèle
## Articles connexes
* [FAQ sur les flux de travail](/l/fr/user-guide/workflows/how-tos/need-more-help/workflows-faq) — réponses concernant l'exécution parallèle
* [Actions de workflows](/l/fr/user-guide/workflows/capabilities/workflow-actions) — actions disponibles pour les branches

View File

@@ -0,0 +1,183 @@
---
title: Utiliser l'itérateur
description: Parcourez des tableaux d'enregistrements pour exécuter des actions sur chaque élément.
---
L'itérateur vous permet de parcourir un tableau d'enregistrements et d'exécuter des actions sur chacun. Il est essentiel pour les workflows qui doivent traiter plusieurs enregistrements renvoyés par Rechercher des enregistrements ou reçus via des webhooks.
## Quand utiliser l'itérateur
| Scénario | Exemple |
| -------------------------------------- | ------------------------------------------------------------------ |
| **Traiter les résultats de recherche** | Envoyer un e-mail à chaque personne trouvée |
| **Gérer les tableaux de webhooks** | Créer des enregistrements pour chaque élément, dans l'ordre |
| **Mises à jour en masse** | Mettre à jour plusieurs enregistrements avec des valeurs calculées |
| **Notifications** | Avertir plusieurs personnes d'un événement |
## Comprendre l'itérateur
L'itérateur attend un **tableau** en entrée. Il va ensuite :
1. Prend le premier élément du tableau
2. Exécute toutes les actions à l'intérieur de l'itérateur avec cet objet
3. Passe à l'élément suivant
4. Répète jusqu'à ce que tous les éléments soient traités
### Sélection du tableau à parcourir
La plupart des sources de tableaux (Search Records, un champ de tableau de webhook, un déclencheur manuel Bulk) peuvent être sélectionnées directement dans le sélecteur de variables.
Lorsqu’une étape **Code** ou **Logic Function** renvoie un *tableau de premier niveau*, sa sortie apparaît dans le sélecteur de variables sous forme d’entrées indexées (`0`, `1`, `2`, …). Pour effectuer une boucle sur le tableau dans son ensemble, sélectionnez l’option **Whole list** pour cette étape — l’Iterator en déduit alors automatiquement la structure de chaque élément à partir de la liste.
## Configuration de base
### Exemple : envoyer un e-mail à toutes les personnes dans les résultats de recherche
**Objectif** : Trouver tous les contacts d'une entreprise spécifique et envoyer à chacun un e-mail personnalisé.
### Étape 1 : Rechercher des enregistrements
1. Ajoutez l'action **Rechercher des enregistrements**
2. Objet : **Personnes**
3. Filtre : Entreprise égale à "Acme Inc"
4. Cela renvoie un tableau de personnes
### Étape 2 : Vérifier que des résultats existent
1. Ajoutez l'action **Filtre**
2. Condition : `{{searchRecords.length}}` est supérieur à 0
3. Cela évite les erreurs de l'itérateur sur des résultats vides
### Étape 3 : Ajouter un itérateur
1. Ajoutez une action **Itérateur**
2. Entrée du tableau : sélectionnez `{{searchRecords}}`
3. Cela crée une boucle
### Étape 4 : Ajouter des actions dans l'itérateur
Les actions placées dans l'itérateur s'exécutent pour chaque élément :
1. Ajouter l'action **Envoyer Email** (à l'intérieur de l'itérateur)
2. À : `{{iterator.currentItem.email}}`
3. Objet : Bonjour `{{iterator.currentItem.firstName}}` !
4. Corps : Message personnalisé utilisant les champs de l'élément en cours
### Résultat
Si l'action Rechercher des enregistrements renvoie 5 personnes, l'itérateur :
* Envoie un e-mail à la personne 1
* Envoie un e-mail à la personne 2
* ... continue pour les 5
## Accéder aux données de l'élément en cours
Dans l'itérateur, utilisez `{{iterator.currentItem}}` pour accéder à l'enregistrement en cours :
| Variable | Description |
| --------------------------------------- | --------------------------------------------------------- |
| `{{iterator.currentItem}}` | L'objet de l'enregistrement en cours dans son intégralité |
| `{{iterator.currentItem.id}}` | ID de l'enregistrement |
| `{{iterator.currentItem.email}}` | Champ e-mail |
| `{{iterator.currentItem.company.name}}` | Nom de l'entreprise associée |
| `{{iterator.index}}` | Position actuelle dans le tableau (indexé à partir de 0) |
Dans le sélecteur de variables, vous pouvez soit explorer un champ spécifique de l’élément courant, soit choisir **Use the whole item** pour référencer l’intégralité de l’élément courant (`{{iterator.currentItem}}`). Sélectionner l’élément entier est pratique lorsque vous voulez transmettre un enregistrement complet directement à une étape en aval plutôt que de le reconstruire champ par champ.
## Modèles courants
### Mettre à jour plusieurs enregistrements
**Objectif** : Marquer toutes les tâches en retard comme "En retard"
```
1. Search Records (Tasks, Due Date < Today, Status ≠ Completed)
2. Filter (length > 0)
3. Iterator (searchRecords)
└── Update Record
- Object: Tasks
- Record: {{iterator.currentItem.id}}
- Status: Late
```
### Créer des enregistrements à partir d'un tableau
**Objectif** : Le webhook reçoit une commande avec plusieurs éléments, créer un enregistrement pour chacun
```
1. Webhook Trigger (receives items array)
2. Filter (items.length > 0)
3. Iterator (trigger.body.items)
└── Create Record
- Object: Order Items
- Name: {{iterator.currentItem.name}}
- Quantity: {{iterator.currentItem.qty}}
- Related Order: {{trigger.body.orderId}}
```
### Traitement conditionnel dans la boucle
**Objectif** : N'envoyer un e-mail qu'aux contacts avec des adresses valides
```
1. Search Records (People)
2. Iterator (searchRecords)
└── Filter (currentItem.email is not empty)
└── Send Email
- To: {{iterator.currentItem.email}}
```
## Résolution des problèmes
### "L'itérateur attend un tableau"
**Cause** : Vous avez passé un seul enregistrement au lieu d'un tableau.
**Correctif** : Assurez-vous de passer le résultat de Rechercher des enregistrements ou un champ de type tableau, pas un seul enregistrement.
```
✅ Correct: {{searchRecords}}
❌ Wrong: {{searchRecords[0]}}
```
### L'itérateur ne s'exécute pas
**Cause** : Le tableau est vide.
**Correctif** : Ajoutez un filtre avant l'itérateur pour vérifier la longueur du tableau :
```
Filter: {{searchRecords.length}} > 0
```
### Les actions s'exécutent trop de fois
**Cause** : Rechercher des enregistrements a renvoyé plus d'enregistrements que prévu.
**Correctif** :
* Ajoutez des filtres plus spécifiques à Rechercher des enregistrements
* Définissez une limite sur Rechercher des enregistrements (max 200)
* Ajoutez un filtre dans l'itérateur pour des conditions supplémentaires
## Considérations relatives aux performances
* **Utilisation de crédits** : Chaque itération consomme des crédits pour ses actions
* **Temps** : Les grands tableaux prennent plus de temps à traiter
* **Limites** : Envisagez de traiter par lots les opérations très volumineuses
* **Limites de débit** : Les appels d'API externes peuvent atteindre des limites de débit avec de nombreuses itérations
## Meilleures pratiques
1. **Vérifiez toujours la longueur du tableau** avant l'itérateur pour éviter les erreurs
2. **Ajoutez des filtres dans les boucles** quand tous les éléments n'ont pas besoin d'être traités
3. **Renommez votre étape Itérateur** pour décrire ce qu'elle parcourt
4. **Testez avec de petits tableaux** avant de traiter de grands ensembles de données
5. **Surveillez l'exécution des workflows** pour vous assurer que les itérations se terminent comme prévu
## Articles connexes
* [Actions de workflows](/l/fr/user-guide/workflows/capabilities/workflow-actions)
* [Comment utiliser les branches](/l/fr/user-guide/workflows/capabilities/use-branches-in-workflows)
* [FAQ sur les workflows](/l/fr/user-guide/workflows/how-tos/need-more-help/workflows-faq)

View File

@@ -0,0 +1,332 @@
---
title: Actions de flux de travail
description: Découvrez les actions disponibles dans les workflows de Twenty.
---
import { VimeoEmbed } from '/snippets/vimeo-embed.mdx';
## À propos des actions
Les actions définissent ce qui se passe après le déclenchement d'un déclencheur. Vous pouvez enchaîner plusieurs actions pour créer des automatisations complexes.
<Tip>
* Utilisez le sélecteur de variables (cliquez sur l'icône `(x+)`) pour parcourir les données disponibles provenant des étapes précédentes
* Survolez n'importe quel champ de saisie pour voir de quelle étape provient une variable — utile lorsque le même champ (par ex., ID) existe dans plusieurs étapes précédentes
* Donnez à chaque action un nom explicite pour faciliter la maintenance
</Tip>
## Actions sur les enregistrements
<img src="/images/user-guide/workflows/workflow_actions.png" style={{width:'100%'}} />
### Créer un enregistrement
Ajoute un nouvel enregistrement à un objet sélectionné.
**Configuration**:
* Sélectionnez l'objet cible
* Remplissez les champs requis et optionnels
* Utilisez les données des étapes précédentes ou saisissez des valeurs manuellement pour remplir les champs
**Sortie**: Les données de l'enregistrement nouvellement créé sont disponibles pour une utilisation dans les étapes suivantes.
### Mettre à jour un enregistrement
Modifie un enregistrement existant dans un objet sélectionné.
<img src="/images/user-guide/workflows/update_record.png" style={{width:'100%'}} />
**Configuration**:
* Sélectionnez l'objet cible
* Choisissez l'enregistrement spécifique à mettre à jour.
* Vous pouvez choisir un enregistrement fixe, à l'aide du menu déroulant affichant tous les enregistrements disponibles.
* Ou vous pouvez sélectionner l'enregistrement de façon dynamique, en désignant un enregistrement trouvé lors d'une étape précédente, à l'aide du `(x+)`. Vous ne pouvez pas rechercher l'enregistrement selon différents critères à ce stade. Si vous n'avez pas encore identifié l'enregistrement, ajoutez une étape `Search Record` avant cette étape `Update Record`.
* Sélectionnez les champs à modifier et entrez de nouvelles valeurs
**Sortie**: Les données de l'enregistrement mis à jour sont disponibles pour une utilisation dans les étapes suivantes.
### Supprimer un enregistrement
Supprime un enregistrement d'un objet sélectionné.
**Configuration**:
* Sélectionnez l'objet cible
* Choisissez l'enregistrement spécifique à supprimer
**Sortie**: Les données de l'enregistrement supprimé restent disponibles pour une utilisation dans les étapes suivantes.
### Rechercher des enregistrements
Trouve des enregistrements dans un objet sélectionné en utilisant des conditions de filtre.
**Configuration**:
* Sélectionnez l'objet à rechercher
* Définissez les critères de filtre pour restreindre les résultats
* Configurez le tri et les limites
**Sortie**: Renvoie les enregistrements correspondants qui peuvent être utilisés dans les étapes suivantes.
<Note>
**Limite**: Search Records renvoie un maximum de **200 enregistrements**. Si vous devez en traiter davantage, ajoutez des filtres spécifiques pour réduire les résultats ou utilisez des workflows planifiés pour traiter par lots.
</Note>
**Meilleure pratique**: Utilisez [branches](/l/fr/user-guide/workflows/capabilities/workflow-branches) après Search Records pour gérer les scénarios "trouvé" vs "non trouvé".
### Créer ou mettre à jour un enregistrement
Crée un nouvel enregistrement ou met à jour un enregistrement existant en fonction de critères de correspondance. C'est utile lorsque vous n'êtes pas certain qu'un enregistrement existe déjà.
<img src="/images/user-guide/workflows/upsert_double_identifier.png" style={{width:'100%'}} />
**Configuration**:
* Sélectionnez l'objet cible
* Notez quels champs peuvent être utilisés pour la correspondance : adresse e-mail pour les Contacts, domaine pour les Entreprises, ID pour tout objet, ou tout champ marqué comme unique. Vous devrez renseigner au moins l'un des éléments ci-dessous.
* Renseignez les valeurs des champs. N'oubliez pas de renseigner au moins un des identifiants uniques.
<Note>
**La correspondance fonctionne généralement encore mieux lorsque vous n'ajoutez qu'un seul identifiant unique.** Par exemple, la capture d'écran ci-dessous fera correspondre les entreprises en fonction de leur domaine. L'ID n'est pas forcément nécessaire.
</Note>
<img src="/images/user-guide/workflows/upsert_simple_identifier.png" style={{width:'100%'}} />
* Utilisez les données des étapes précédentes pour remplir les champs
**Comment ça marche**:
1. Recherche un enregistrement correspondant à vos critères
2. S'il est trouvé → met à jour l'enregistrement existant
3. S'il n'est pas trouvé → crée un nouvel enregistrement
**Sortie**: Les données de l'enregistrement créé ou mis à jour sont disponibles pour une utilisation dans les étapes suivantes.
## Actions de flux de travail
### Itérateur
**Parcourt un tableau d'enregistrements** renvoyé par une étape précédente, vous permettant d'effectuer des actions sur chaque enregistrement individuellement.
**Configuration**:
* Sélectionnez le tableau des enregistrements à partir d'une étape précédente (par exemple, les résultats de la recherche d'enregistrements, à partir d'un déclencheur manuel avec disponibilité en vrac à partir d'un noeud de Code). Lorsqu’une étape Code ou fonction logique renvoie un tableau de premier niveau, sélectionnez l’option **Whole list** pour itérer sur l’intégralité de la sortie.
* Définissez les actions à effectuer sur chaque enregistrement dans la boucle.
<Note>
- Vous pouvez ajouter plusieurs actions dans un itérateur.
- Lorsque vous utilisez des branches à l'intérieur d'un itérateur, assurez-vous que la dernière étape de chaque branche se connecte à l'itérateur pour fermer la boucle.
</Note>
* Accéder aux champs `Current Item`: pour utiliser les champs de l'enregistrement en cours de traitement, cliquez sur l'étape **Iterator**, puis sélectionnez **Current item**. La liste des champs disponibles de cet enregistrement s'affichera et pourra être sélectionnée pour une utilisation dans les actions suivantes. Vous pouvez également sélectionner **Use the whole item** pour transmettre l’intégralité de l’élément en cours à une étape en aval.
<VimeoEmbed videoId="1146577247" title="Démonstration vidéo" />
### Filtre
Filtre les enregistrements selon des conditions spécifiées, ne laissant passer que ceux qui répondent aux critères.
**Configuration**:
* Sélectionnez l'enregistrement à filtrer
* Définissez les conditions de filtre et les critères
* Configurez quels enregistrements doivent passer aux étapes suivantes
<Note>
1. **Sortie**: Les nœuds de filtre ne renvoient pas de données — ils agissent comme des portes. Si les conditions sont remplies, le flux de travail continue. Sinon, le flux de travail s'arrête à cette branche.
2. L'opérateur `IS` peut être utilisé avec des champs numériques. Il équivaut à `EQUAL`.
</Note>
### Délai
Met en pause l'exécution du flux de travail pendant une durée spécifiée ou jusqu'à une date/heure spécifique.
**Types de délai**:
| Type | Description |
| ------------------ | ---------------------------------------------------------------- |
| **Durée** | Attendre une durée spécifique (jours, heures, minutes, secondes) |
| **Date planifiée** | Attendre jusqu'à une date et une heure spécifiques |
**Configuration pour la durée**:
* Définissez des jours, des heures, des minutes et/ou des secondes
* Combinez plusieurs unités (par ex., 2 jours et 4 heures)
**Configuration pour la date planifiée**:
* Sélectionnez une date et une heure
* Peut référencer un champ de date d'une étape précédente (par ex., relancer 3 jours après une réunion)
**Cas d'utilisation**:
* Attendre 24 heures avant d'envoyer un e-mail de relance
* Mettre en pause jusqu'à la date de clôture d'une opportunité
* Planifier des actions pendant les heures ouvrées
<Note>
La date planifiée ne peut pas être dans le passé. Si un champ de date d'une étape précédente est utilisé et que la date est déjà passée, le flux de travail échouera.
</Note>
**Limites et crédits**:
* **Aucune limite de durée maximale** — vous pouvez définir des délais de quelques minutes, jours, semaines, ou plus
* **1 crédit consommé** lorsque le nœud Délai s'exécute, quelle que soit la durée
* **Aucun crédit consommé** pendant l'attente — un délai de 5 minutes coûte autant qu'un délai de 5 jours
## Actions de communication
### Envoyer l'email
Envoie un e-mail à partir de votre flux de travail. Idéal pour des e-mails groupés basés sur des modèles. Les e-mails auront l'apparence de ceux que vous envoyez depuis votre boîte aux lettres.
Il ne convient pas aux lettres d'information (qui nécessitent un formatage plus riche) ou aux séquences automatiques de courriel.
**Prérequis**: Ajoutez un compte de messagerie dans Paramètres → Comptes
**Configuration**:
* Sélectionnez le compte e-mail de l'expéditeur
<Note>
Vous pouvez uniquement envoyer des e-mails à partir de boîtes aux lettres synchronisées avec votre propre compte Twenty. L'envoi depuis les boîtes aux lettres d'autres membres de l'équipe (par ex., l'e-mail du propriétaire du compte) est sur la feuille de route.
</Note>
Pour toutes les étapes suivantes, vous pouvez référencer des variables des étapes précédentes pour la personnalisation.
* Entrez l'adresse e-mail du destinataire.
<Note>
Un seul destinataire est possible pour le moment.
</Note>
* Définissez la ligne d'objet.
* Rédigez le corps du message. Vous pouvez formater des liens, créer des listes numérotées, des listes de puces et ajouter des pièces jointes.
<Note>
L'ajout de signatures HTML n'est pas possible pour le moment.
</Note>
### Formulaire
Affiche un formulaire lors de l'exécution du flux de travail pour recueillir les saisies de l'utilisateur. Les réponses peuvent ensuite être utilisées dans les étapes suivantes pour créer des enregistrements, envoyer des e-mails ou exécuter toute autre action selon la saisie.
<Warning>
**Les formulaires sont conçus uniquement pour les déclencheurs manuels**. Pour les flux de travail avec d'autres déclencheurs (Enregistrement créé, mis à jour, etc.), les formulaires ne sont accessibles que via l'interface de l'exécution de flux de travail, ce qui n'est pas l'expérience utilisateur attendue. Un centre de notification sera publié en 2026 pour prendre en charge correctement les formulaires dans les flux de travail automatisés.
</Warning>
**Configuration**:
* Configurez les champs que les utilisateurs devront remplir. Pour chaque champ, choisissez
* un type parmi texte, nombre, date, un enregistrement donné, un champ de sélection. Les champs de tous les objets sont disponibles pour la sélection.
* une étiquette
* une valeur par défaut sous `Placeholder` (facultatif)
* Modifiez le titre du formulaire
**Sortie**: Les réponses au formulaire sont disponibles pour une utilisation dans les étapes suivantes.
**Exemple**: Le workflow "Lancer rapide" est disponible par défaut dans tous les espaces de travail, disponible n'importe où dans le menu de commande `Cmd+K`.
**Comment remplir le formulaire**:
* Déclenchez votre workflow manuel depuis le menu de commande `Cmd+K`
* Remplissez le formulaire affiché dans le panneau latéral et cliquez sur `Submit`.
<Note>
Les champs ne peuvent pas être rendus obligatoires.
</Note>
<VimeoEmbed videoId="1147277989" title="Démonstration vidéo" />
## Actions d'intégration
### Code
Exécute du JavaScript personnalisé dans votre flux de travail.
En arrière-plan, chaque action de code est prise en charge par sa propre **fonction logique** — une fonction TypeScript côté serveur qui s’exécute sur la plateforme Twenty. Lorsque vous ajoutez une action de code, Twenty crée une fonction logique dédiée pour cette étape et affiche son éditeur en ligne, de sorte que le code que vous écrivez soit associé au workflow.
**Configuration**:
* Accédez aux variables des étapes précédentes. Vous pouvez modifier les noms des variables de façon dynamique.
<VimeoEmbed videoId="1147281795" title="Démonstration vidéo" />
* Écrivez le code JavaScript dans l'éditeur
* Retournez des variables pour une utilisation dans les étapes suivantes
* Testez le code directement dans l'étape
<Note>
Si vous devez utiliser des clés d'API externes dans votre code, vous devez les saisir directement dans le corps de la fonction. Vous ne pouvez pas configurer des clés d'API ailleurs et les référencer dans la fonction logique.
</Note>
<Tip>
**Vous travaillez avec des tableaux ?** Les tableaux provenant de systèmes externes ou d'étapes précédentes peuvent arriver sous forme de chaînes de caractères. Voir [Gérer les tableaux dans les actions Code](/l/fr/user-guide/workflows/how-tos/advanced-configurations/handle-arrays-in-code-actions) pour la solution.
</Tip>
<Tip>
Cliquez sur l'icône carrée en haut à droite de l'éditeur de code pour l'afficher en plein écran — utile car la largeur par défaut de l'éditeur est limitée.
</Tip>
#### Réutiliser une fonction logique dans plusieurs workflows
L’action de code en ligne est idéale pour de la logique ponctuelle, mais le code qu’elle contient est propre à cette seule étape. Lorsque vous voulez partager la même logique entre plusieurs workflows — ou la maintenir comme code source versionné dans une application — définissez une **fonction logique réutilisable** au lieu de copier-coller du code dans chaque action de code.
Une fonction logique est définie une seule fois dans une application (à l’aide de `defineLogicFunction` du SDK) et exposée au concepteur de workflows en ajoutant `workflowActionTriggerSettings`. Une fois votre application installée, cette fonction apparaît comme une action à part entière dans le concepteur de workflows, à côté des actions intégrées. La sélectionner affiche les champs d’entrée que vous avez déclarés (avec des sélecteurs de variables, comme pour les autres actions) et exécute votre code mutualisé — aucun JavaScript en ligne n’est requis.
| | Action de code | Fonction logique réutilisable |
| ------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------- |
| **Où le code est stocké** | Éditeur en ligne, lié à une étape de workflow | Définie dans une application, versionnée dans un système de contrôle de version |
| **Réutilisation** | Copié-collé par étape | Ajoutée comme action dans n’importe quel workflow |
| **Entrées** | Variables connectées dans l’éditeur | Champs générés à partir de votre schéma d’entrée déclaré |
| **Idéal pour** | Logique rapide, spécifique à un workflow | Logique partagée utilisée dans plusieurs workflows |
Les deux s’exécutent sur le même environnement d’exécution des fonctions logiques, de sorte qu’une action de code que vous avez prototypée en ligne peut ensuite être promue en fonction logique réutilisable avec des modifications minimales.
<Tip>
Pour la documentation destinée aux développeurs sur la définition des fonctions logiques et leur exposition dans le concepteur de workflows, consultez [Logic Functions](/l/fr/developers/extend/apps/logic/logic-functions) — en particulier la section **Exposing a function as an AI tool or workflow action** et `workflowActionTriggerSettings`.
</Tip>
### Requête HTTP
Envoie une requête à une API externe dans le cadre de votre flux de travail.
<img src="/images/user-guide/workflows/http_action.png" style={{width:'100%'}} />
**Configuration**:
* Entrez l'URL du point de terminaison de l'API. Il est possible d'utiliser des paramètres issus des étapes précédentes.
* Sélectionnez la méthode HTTP (GET, POST, PUT, PATCH, DELETE)
* Ajoutez les en-têtes et valeurs requis
* Fournissez un exemple de réponse pour l'aperçu de la structure
## Actions d'IA
### Agent IA - Bientôt disponible
Exécute un agent IA au sein de votre flux de travail pour effectuer des tâches intelligentes.
**Configuration**:
* **Agent**: Sélectionnez un agent IA existant ou utilisez l'agent par défaut
* **Prompt**: Écrivez l'instruction pour l'agent IA
* Référencez des variables des étapes précédentes dans le prompt
**Ce que les agents IA peuvent faire**:
* Analyser et résumer des données
* Classer ou catégoriser des enregistrements
* Générer du contenu textuel
* Prendre des décisions basées sur des données
* Interagir avec vos données CRM à l'aide d'outils
**Sortie**: La réponse de l'agent IA est disponible pour une utilisation dans les étapes suivantes. Si l'agent a un schéma de sortie structuré, la réponse suivra ce format.
<Note>
Les actions d'agent IA consomment des crédits de flux de travail en fonction du modèle d'IA utilisé. Voir [Crédits de flux de travail](/l/fr/user-guide/workflows/capabilities/workflow-credits) pour plus de détails.
</Note>
<Note>
Les agents IA respectent les autorisations basées sur les rôles. Vous pouvez attribuer des rôles spécifiques aux agents dans **Paramètres → Membres → Rôles** pour contrôler les données auxquelles ils peuvent accéder. Voir [Autorisations](/l/fr/user-guide/permissions-access/capabilities/permissions) pour plus de détails.
</Note>

View File

@@ -0,0 +1,66 @@
---
title: Branches de flux de travail
description: Créez des chemins parallèles et une logique conditionnelle dans vos flux de travail.
---
Les branches vous permettent de scinder votre flux de travail en plusieurs chemins pouvant s’exécuter simultanément ou de façon conditionnelle selon vos données.
<img src="/images/user-guide/workflows/branches.png" style={{width:'100%'}} />
## Fonctionnement des branches
Lorsque vous créez plusieurs connexions à partir d’un seul nœud, chaque chemin devient une branche. Par défaut, **toutes les branches s’exécutent en parallèle** — elles ne s’attendent pas les unes les autres.
## Création de branches
### Ajouter une nouvelle branche
1. **Cliquez avec le bouton droit sur la zone de travail principale** du flux de travail (et non sur un nœud existant)
2. Cliquez sur **Ajouter un nœud**
3. Choisissez le type de nœud pour votre nouvelle branche
4. Faites glisser une flèche depuis le bas de l’étape précédente vers le haut de cette nouvelle action
5. Répétez pour ajouter d’autres branches à partir du même nœud
<Note>
Chaque branche est indépendante. L’ajout d’une branche n’affecte pas les autres chemins existants à partir de ce nœud.
</Note>
### Disposition visuelle
Les branches apparaissent comme des chemins parallèles dans l’éditeur de flux de travail. Vous pouvez faire glisser les nœuds pour réorganiser la disposition visuelle sans affecter l’exécution.
## Branches conditionnelles
Puisque toutes les branches s’exécutent par défaut, utilisez des nœuds **Filtre** pour contrôler quels chemins s’exécutent réellement :
| Branche | Condition de filtre | Action |
| ------- | --------------------- | ---------------------------------- |
| A | Étape = "Gagnée" | Envoyer un e-mail de félicitations |
| B | Étape = "Perdue" | Créer une tâche de suivi |
| C | Étape = "Négociation" | Notifier le responsable |
1. Créez des branches à partir de votre déclencheur ou action
2. Ajoutez un nœud **Filtre** comme première étape de chaque branche
3. Configurez chaque filtre avec des conditions mutuellement exclusives
4. Ajoutez vos actions après chaque filtre
Seules les branches pour lesquelles la condition du filtre est remplie poursuivront l’exécution.
## Fusion de branches
**Les branches ne fusionnent pas automatiquement.** Chaque branche s’exécute indépendamment jusqu’à sa fin. Vous avez toute latitude quant à la manière de gérer cela :
* **Option 1 : Garder les branches séparées**
Chaque branche gère ses propres actions de suivi de manière indépendante. C’est l’approche la plus simple lorsque les branches n’ont pas besoin de converger.
* **Option 2 : Fusionner les branches manuellement**
Lors de la création de votre flux de travail, vous pouvez connecter manuellement plusieurs branches à la même action en aval. Il suffit de faire glisser des flèches depuis la fin de chaque branche vers un nœud commun.
<Note>
Bien que vous puissiez utiliser un nœud [Delay](/l/fr/user-guide/workflows/capabilities/workflow-actions#delay) pour mettre l’exécution en pause, il n’est pas actuellement configurable pour attendre "jusqu’à ce qu’une autre branche se termine".
</Note>
## Contenus associés
* [Comment utiliser les branches dans les flux de travail](/l/fr/user-guide/workflows/capabilities/use-branches-in-workflows) - Guide étape par étape
* [Actions de flux de travail](/l/fr/user-guide/workflows/capabilities/workflow-actions) - Actions disponibles, y compris Filtre

View File

@@ -0,0 +1,75 @@
---
title: Crédits de flux de travail
description: Comprendre la consommation et la gestion des crédits de flux de travail.
---
Les crédits de flux de travail alimentent vos automatisations dans Twenty. Comprendre comment ils fonctionnent vous aide à optimiser les coûts et gérer efficacement votre budget d'automatisation.
## Allocation des crédits
Les crédits de flux de travail sont alloués en fonction de votre cycle de facturation, et non de votre niveau de forfait :
| Cycle de facturation | Crédits |
| ---------------------- | ------------------ |
| **Abonnement mensuel** | 5 crédits par mois |
| **Abonnement annuel** | 50 crédits par an |
<Note>
5 crédits mensuels suffisent largement pour les automatisations standard. La plupart des équipes ne dépasseront pas cette limite avec une utilisation typique des flux de travail. Des crédits supplémentaires sont principalement nécessaires pour les actions de Code avancées et les flux de travail alimentés par l'IA.
</Note>
## Comment fonctionne la consommation de crédits
Les crédits sont consommés lors de l'exécution des flux de travail, et non lors de leur création. Chaque action du flux de travail consomme des crédits en fonction de sa complexité :
### Consommation de crédits par type d'action
* **Opérations internes de base** : Très faible consommation de crédits
* Rechercher des enregistrements
* Créer un enregistrement
* Mettre à jour un enregistrement
* Supprimer un enregistrement
* Actions de formulaire
* **Opérations complexes** : Consommation de crédits plus élevée
* Actions de code (exécution JavaScript)
* Requêtes HTTP vers des services externes
* **Fonctionnalités d'IA** : Consommation de crédits plus élevée
* Les actions de l'agent IA consomment des crédits en fonction du modèle d'IA utilisé
* Des requêtes plus complexes et des réponses plus longues utilisent davantage de crédits
* **Actions de type Delay** : Consommation de crédits minimale
* Le nœud Delay consomme **1 crédit** lors de son exécution
* **Aucun crédit n'est consommé** pendant la période d'attente
* Un délai de 5 minutes coûte autant qu'un délai de 5 jours
### Déduction en temps réel
Les crédits sont déduits en temps réel au fur et à mesure des exécutions des flux de travail. Cela signifie :
* Les flux de travail en brouillon ne consomment pas de crédits
* Seuls les flux de travail actifs et en cours d'exécution utilisent votre allocation de crédits
* Les flux de travail échoués consomment tout de même des crédits pour les étapes complétées
## Gestion des crédits
### Vérifier l'utilisation des crédits
1. Allez dans **Paramètres → Facturation**
2. Consultez votre consommation actuelle de crédits et votre solde restant
3. Surveillez les habitudes d'utilisation pour optimiser vos flux de travail
### Achat de crédits supplémentaires
Si vous avez besoin de plus de crédits que votre allocation de plan :
1. Allez dans **Paramètres → Facturation**
2. Cliquez sur l'option pour acheter des crédits supplémentaires. Des forfaits de différentes tailles sont disponibles.
3. Les crédits sont ajoutés à votre solde actuel
## Meilleures pratiques
* **Traitement par lots** : Utilisez les opérations de masse et les actions Iterator efficacement pour réduire les appels d'action individuels
* **Optimisation du déclencheur manuel** : Pour les déclencheurs manuels, choisissez `Bulk` pour traiter plusieurs enregistrements en une seule exécution de flux de travail
* Optimisez les actions de code pour l'efficacité

View File

@@ -0,0 +1,93 @@
---
title: Exécutions de workflows
description: Surveiller et gérer les exécutions de flux de travail.
---
## À propos des Exécutions
Une **Exécution** est un enregistrement de l'exécution du flux de travail. Chaque fois qu'un flux de travail est déclenché — qu'il s'agisse d'un événement d'enregistrement, d'une planification, d'une action manuelle ou d'un webhook — une nouvelle exécution est créée.
## Visualisation des exécutions
### Depuis l'éditeur de flux de travail
1. Ouvrez le flux de travail que vous souhaitez surveiller
2. Cliquez sur le panneau **Exécutions** à droite
3. Affichez une liste des exécutions récentes avec leur statut
### Depuis la vue Exécutions de flux de travail
1. Accédez à **Exécutions de flux de travail** dans la barre latérale
2. Affichez les exécutions dans l'ensemble des flux de travail
3. Filtrez par statut, flux de travail ou date
## Statuts des exécutions
| Statut | Description |
| ---------------------- | ---------------------------------------------------------------------------------------------------------- |
| **Exécution en cours** | Le flux de travail est en cours d'exécution |
| **Terminé** | Le flux de travail s'est terminé avec succès |
| **Échec** | Le flux de travail a rencontré une erreur et s'est arrêté |
| **En attente** | Le flux de travail est en pause (par exemple, en attente d'une action Delay ou de l'envoi d'un formulaire) |
## Détails de l'exécution
Cliquez sur une exécution pour voir :
* **Statut** : État actuel de l'exécution
* **Heure de début** : Moment où l'exécution a commencé
* **Durée** : Temps nécessaire à l'exécution
* **Données du déclencheur** : Les données qui ont déclenché le flux de travail
* **Résultats des étapes** : Données renvoyées par chaque étape
* **Messages d'erreur** : Si l'exécution a échoué, ce qui s'est mal passé
## Exécution étape par étape
Chaque exécution montre la progression au sein de votre flux de travail :
1. Voir quelles étapes se sont terminées avec succès
2. Identifier où les échecs se sont produits
3. Afficher les données transmises entre les étapes
4. Déboguez les problèmes en examinant les entrées et sorties des étapes
## Gestion des erreurs
Lorsqu'une exécution échoue :
1. Ouvrez l'exécution échouée
2. Trouvez l'étape à l'origine de l'échec
3. Consultez le message d'erreur pour plus de détails
Problèmes courants:
* Champs obligatoires manquants
* Format de données invalide
* Erreurs de l'API externe
* Problèmes d'autorisation
## Ré-exécution des Workflows
Si un run échoue, vous pouvez:
* Corriger le problème sous-jacent et attendre le prochain déclenchement
* Pour les flux de travail manuels, déclenchez à nouveau avec les mêmes données ou mises à jour
* Examinez la logique du workflow pour éviter les échecs futurs
## Conseils de performance
### Gestion de l'historique des courses
* Les courses sont conservées pour référence historique
* Les exécutions très anciennes peuvent être archivées automatiquement
* Exporter les données d'exécution si vous avez besoin de conserver les enregistrements
### Suivi des meilleures pratiques
* Vérifier les exécutions régulières après l'activation des nouveaux workflows
* La revue a échoué pour identifier les patrons
## Articles connexes
* [Déclencheurs de workflows](/l/fr/user-guide/workflows/capabilities/workflow-triggers)
* [Actions de workflows](/l/fr/user-guide/workflows/capabilities/workflow-actions)
* [Dépannage du workflow](/l/fr/user-guide/workflows/how-tos/need-more-help/workflow-troubleshooting)

View File

@@ -0,0 +1,137 @@
---
title: Déclencheurs de flux de travail
description: Découvrez les différents déclencheurs qui démarrent vos flux de travail.
---
## À propos des déclencheurs
Les flux de travail commencent toujours par un seul déclencheur qui définit quand l’automatisation doit s’exécuter.
<img src="/images/user-guide/workflows/workflow_triggers.png" style={{width:'100%'}} />
<Tip>
**Des objets avancés sont pris en charge !** Au-delà des objets CRM standard (Personnes, Entreprises, Opportunités), vous pouvez aussi déclencher des flux de travail et effectuer des actions sur :
* Membres de l'espace de travail
* Événements de calendrier
* Messages (e-mails)
* Tâches, notes et de nombreux autres objets système
Cela permet des automatisations puissantes, comme avertir les membres de l'équipe lorsque des événements de calendrier sont créés, ou traiter automatiquement les e-mails entrants.
</Tip>
## Un enregistrement est créé
Démarre le flux de travail lorsqu'un nouvel enregistrement est créé dans un objet sélectionné (Personnes, Entreprises, Opportunités, ou tout objet personnalisé).
**Configuration**: Sélectionnez le type d'objet à surveiller pour les nouveaux enregistrements.
<Note>
* Ce déclencheur est idéal pour les enregistrements créés par CSV, boîte aux lettres et synchronisation de calendrier, ou API.
* **Il n'est pas recommandé pour les enregistrements créés manuellement** : avec ce déclencheur, les flux de travail démarrent dès que l'enregistrement est créé. Puisque 20 UI propose l'enregistrement automatique à la volée (il n'y a pas de mode d'édition, puis une validation pour enregistrer les enregistrements), le workflow sera déclenché avant que l'utilisateur ne saisisse tous les champs.
Pour déclencher ce flux de travail sur des enregistrements créés manuellement, il est recommandé d'utiliser plutôt le déclencheur `Record is created or updated`.
</Note>
## Un enregistrement est mis à jour
Démarre le flux de travail lorsque des modifications sont apportées à un enregistrement existant.
**Configuration**:
* Sélectionnez le type d'objet
* Spécifiez éventuellement quels champs surveiller pour les changements
## Un enregistrement est mis à jour ou créé
Démarre le flux de travail lorsqu'un enregistrement est soit créé soit mis à jour dans un objet sélectionné.
**Pourquoi est-ce important**: Ce déclencheur est particulièrement utile car les enregistrements créés par différentes méthodes se comportent différemment :
* **Importations API/CSV** : Les enregistrements sont créés avec tous les champs remplis immédiatement
* **Création manuelle** : Les enregistrements sont créés d'abord, puis les champs sont ajoutés lors de mises à jour ultérieures
**Configuration**:
* Sélectionnez le type d'objet à surveiller
* Spécifiez éventuellement quels champs surveiller pour les changements
* Le flux de travail se déclenchera à la fois lors de la création initiale et lors de mises à jour ultérieures
## Un enregistrement est supprimé
Démarre le flux de travail lorsqu'un enregistrement est supprimé d'un objet.
**Configuration**: Sélectionnez le type d'objet à surveiller pour les suppressions.
## Déclencheur manuel
Démarre le flux de travail lorsqu'il est déclenché par une action de l'utilisateur. Ce déclencheur est accessible via le menu `Cmd+K` ou via un bouton personnalisé qui s'affichera dans la barre de navigation supérieure après avoir sélectionné un ou plusieurs enregistrements.
<img src="/images/user-guide/workflows/add_to_newsletter_button.png" style={{width:'100%'}} />
**Configuration de disponibilité**:
Choisissez comment le flux de travail doit gérer la sélection des enregistrements :
* **Global** : Aucun enregistrement n'est requis pour déclencher ce flux de travail. Le workflow est déclenché depuis le menu de commande `Cmd+K` n'importe où (depuis n'importe quel objet) et n'utilise pas d'enregistrement(s) en entrée.
Pour une disponibilité **simple** et **en bloc**, le(s) enregistrement(s) sélectionné(s) seront passés à votre flux de travail. Ceci est configuré pour un objet donné, et plusieurs enregistrements peuvent être sélectionnés avant de déclencher le workflow.
* **Single**: Le workflow s'exécutera du début à la fin autant de fois qu'il y a des enregistrements sélectionnés.
<Note>
**Limite souple : 100 exécutions/minute**. Au-delà de cela, les flux de travail restent au statut "Not Started" et sont traités progressivement — soit par une tâche en arrière-plan, soit lorsqu'un autre flux de travail entre dans la file d'attente. Cela signifie que vous pouvez sélectionner plus de 100 enregistrements avec un déclencheur unique ; l'exécution sera simplement plus lente.
</Note>
* **En vrac** : Le workflow s'exécutera une fois, fournissant la liste complète des enregistrements en entrée. Cela signifie que le flux de travail doit contenir une [Action d'itération](/l/fr/user-guide/workflows/capabilities/workflow-actions#iterator).
<Note>
C'est plus avancé, et idéal pour les personnes qui souhaitent optimiser le nombre d'exécutions de flux de travail.
</Note>
<img src="/images/user-guide/workflows/manual_trigger.png" style={{width:'100%'}} />
**Configuration supplémentaire**:
* Sélectionnez l'objet cible (pour disponibilité Unique et en masse)
* Choisissez une icône de commande pour le déclencheur de flux de travail
* Configurez le placement dans la barre de navigation (Épinglé ou Non épinglé)
**Méthodes d'accès**:
* Menu `Cmd+K` pour trouver et lancer des flux de travail manuels
* Bouton personnalisé dans la barre de navigation supérieure (si configuré)
## Déclencheur basé sur le temps : sur un planning
Démarre le flux de travail sur une base récurrente que vous définissez.
**Configuration**:
* Sélectionnez l'unité de temps (minutes, heures, jours)
* Entrez une valeur ou utilisez des expressions cron personnalisées pour une planification avancée
<Note>
**Fuseau horaire** : Les flux de travail planifiés s'exécutent en **UTC**. Lors de la définition des heures pour les plannings quotidiens, convertissez votre heure locale en UTC.
</Note>
## Déclencheur externe : Webhook
Démarre le flux de travail lorsqu'une requête GET ou POST est reçue d'un service externe.
<img src="/images/user-guide/workflows/webhook_trigger.png" style={{width:'100%'}} />
**Configuration**:
* Le flux de travail fournit une URL de webhook unique — copiez-la et ajoutez-la à votre système externe comme point de terminaison à appeler.
* Pour les requêtes POST, définissez la structure attendue du corps afin que Twenty sache quelles données attendre. Ajoutez ici les champs que vous recevrez et qui seront nécessaires plus bas dans votre flux de travail.
* Configurez l'authentification (bientôt disponible).
## Choisir le bon déclencheur
| Cas d'utilisation | Déclencheur recommandé |
| ------------------------------------------------------------ | ---------------------------------------- |
| Les nouveaux prospects doivent être traités | Un enregistrement est créé |
| Les modifications de données nécessitent une synchronisation | Un enregistrement est mis à jour |
| Import/gestion manuelle des données | Un enregistrement est mis à jour ou créé |
| Nettoyage après suppression | Un enregistrement est supprimé |
| Action initiée par l'utilisateur | Lancer manuellement |
| Rapports récurrents | À une heure programmée |
| Intégration externe | Webhook ou sur un planning |

View File

@@ -0,0 +1,84 @@
---
title: Versions de Workflow
description: Gérer les versions et les brouillons de workflows.
---
## À propos des versions
Chaque fois que vous activez un workflow, une nouvelle version est créée. Cela vous permet de suivre les modifications dans le temps et de revenir aux configurations précédentes si nécessaire.
## Statuts des versions
| Statut | Description |
| ------------- | ------------------------------------------------- |
| **Brouillon** | En cours d'édition, pas encore publié |
| **Actif** | Version active répondant aux déclencheurs |
| **Désactivé** | Auparavant actif, mais arrêté manuellement |
| **Archivé** | Versions antérieures conservées pour l'historique |
## Travailler avec des brouillons
Lorsque vous modifiez un workflow actif, vos modifications sont enregistrées en tant que **brouillon**. La version active continue de s'exécuter pendant que vous travaillez sur des mises à jour.
Une fois vos modifications terminées, vous pouvez :
* **Activer** : Publier le brouillon comme nouvelle version active (la version précédente est archivée)
* **Abandonner** : Supprimer le brouillon et conserver la version active actuelle
## Historique des versions
### Afficher les versions précédentes
1. Ouvrez le workflow
2. Cliquez sur l'onglet **Versions**
3. Affichez toutes les versions précédentes avec leurs horodatages
### Restaurer une version
1. Trouvez la version que vous souhaitez restaurer
2. Cliquez sur **Utiliser comme brouillon**
3. La version est copiée dans un nouveau brouillon
4. Effectuez les mises à jour nécessaires
5. Activez lorsque vous êtes prêt
## Meilleures pratiques
### Gestion des versions
* N'activez que lorsque vous êtes prêt pour la mise en production
* Conservez des modifications significatives d'une version à l'autre.
* Documentez les modifications majeures dans les noms ou les descriptions de workflows
* Testez en mode brouillon avant d'activer
### Annulation des modifications
* Si une nouvelle version pose des problèmes, restaurez la version précédente
* Utilisez l'historique des versions pour suivre ce qui a changé
* Testez toujours les versions restaurées avant de les activer
## Workflows courants
### Modification rapide
1. Apportez des modifications mineures à un workflow actif
2. Testez en mode brouillon
3. Activez la nouvelle version
### Révision majeure
1. Utilisez la version précédente comme point de départ
2. Apportez des modifications importantes dans un brouillon
3. Testez minutieusement tous les scénarios
4. Activez lorsque vous êtes confiant
### Retour en arrière
1. Identifiez le problème avec la version actuelle
2. Trouvez la dernière version fonctionnelle dans l'historique
3. Cliquez sur **Utiliser comme brouillon**
4. Activez pour rétablir l'ancien comportement
## Articles connexes
* [Prise en main des workflows](/l/fr/user-guide/workflows/overview)
* [Exécutions de workflows](/l/fr/user-guide/workflows/capabilities/workflow-runs)