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.