Chapitre 5/8 • 15 min de lecture

Workflows

Automatiser des tâches CRM directement dans Attio sans passer par Zapier ou Make.

⏱️ En bref : Les Workflows Attio sont l'équivalent natif des automations Zapier mais intégrés au CRM. Ils permettent de réagir à des événements (record créé, champ modifié, deal stagé), d'appliquer des conditions, et de déclencher des actions (Slack, email, mise à jour de champ). Excellents pour les flows internes, à compléter avec Make.com pour les intégrations externes complexes.

Pourquoi des workflows natifs (et pas Zapier)

Beaucoup d'équipes commencent avec Attio + Zapier/Make par réflexe. Les Workflows natifs Attio gagnent dans 3 cas :

  • Latence zéro : un trigger natif s'exécute instantanément, contre 1-15 min via webhook externe
  • Pas de coût additionnel : inclus dans le plan Attio, pas d'opérations Make consommées
  • Accès direct aux données Attio : pas de mapping JSON à reconstruire à chaque étape

En revanche, dès qu'on touche un outil externe avec mapping complexe ou enrichissement multi-source, Make.com reste plus puissant.

Anatomie d'un workflow Attio

Trois blocs à configurer :

  • Trigger : événement déclencheur. Types disponibles : Record created, Record updated, Field changed, Entered list, Schedule (cron-like)
  • Conditions (optionnel) : filtre booléen sur les attributs du record. Ex : only if deal.stage = "Closed Won" AND deal.value > 10000
  • Actions : ce qu'on fait. Update field, Add to list, Send Slack message, Send email, Create task, Make HTTP request, Run code (JavaScript)

Les workflows peuvent enchaîner plusieurs actions séquentielles, et même brancher avec un If/Else.

Créer son premier workflow

Settings → Workflows → New workflow. Exemple pas à pas : "Quand un nouveau Deal est créé avec value > 50k, notifier #big-deals sur Slack".

  • Trigger : Record created → Object: Deal
  • Condition : deal.value > 50000
  • Action : Send Slack message → Channel: #big-deals → Message: "🔥 Nouveau gros deal : {{deal.name}} - {{deal.value}}€ par {{deal.owner.full_name}}"
  • Activer (toggle en haut à droite)

💡 Toujours tester en dry-run

Avant d'activer un workflow, utiliser le bouton "Test" et choisir un record existant pour vérifier la sortie. Ça évite de spammer #all-team avec 200 notifications de deals historiques au moment de l'activation.

Patterns courants en B2B

  • Auto-assignment de leads : quand Person créé avec source = "Inbound", assigner round-robin entre les SDR du team
  • Auto-tagging d'entreprises : quand Company créé avec headcount > 200, ajouter le tag "Enterprise" et changer l'owner
  • Détection de stagnation : workflow schedulé chaque semaine qui repère les Deals sans activité depuis 14 jours et notifie l'owner
  • Lifecycle email : quand Deal passe en "Won", envoyer l'email d'onboarding au contact principal
  • Sync multi-objet : quand un Person est mis à jour avec un nouveau title, mettre à jour automatiquement le champ "Decision maker level" sur la Company associée

Le module Run Code : JavaScript dans un workflow

Pour les transformations de données complexes, Attio permet d'inclure du JavaScript dans un workflow. Cas d'usage :

  • Parser une string complexe (ex : extraire les hashtags d'une note)
  • Calculer un score basé sur plusieurs champs avec une formule custom
  • Construire un payload JSON spécifique pour un appel HTTP suivant

Le code reçoit en input les variables du workflow (input.deal, input.person) et doit retourner un objet qu'on peut référencer en aval.

Workflows schedulés

Le trigger "Schedule" permet de faire tourner un workflow régulièrement (toutes les heures, chaque jour à 9h, chaque lundi...). Très utile pour :

  • Recalcul de scores ou de tags hebdomadaire
  • Détection de records inactifs ou orphelins
  • Génération de rapports automatiques (export CSV → Slack)
  • Sync croisé avec d'autres systèmes via API

⚠️ Attention aux boucles

Un workflow qui modifie un champ peut déclencher un autre workflow qui modifie le même champ → boucle infinie. Attio détecte les boucles évidentes et arrête, mais pas toujours. Toujours mettre une condition de sortie claire (ex : "only if status != 'processed'") puis marquer le record comme processé.

Workflows vs Triggers de Lists

Attio propose aussi des "List entry triggers" : quand un record entre/sort d'une List, déclencher quelque chose. C'est différent des Workflows :

  • Workflows : globaux, basés sur les changements d'attributs des records
  • List triggers : spécifiques à une List, basés sur l'appartenance

Pratique pour gérer des "stages" custom hors du data model strict (ex : une List "À rappeler cette semaine" avec un trigger qui crée une task quand un Person y entre).

Pour tout ce qui dépasse le scope des workflows natifs (intégrations, enrichissement multi-source), voir le chapitre Intégrations.