Aller au contenu principal

n8n

Forfait Basic et au-dessus

Les webhooks nécessitent un forfait payant. Voir Automatisations webhook pour les limites et détails.

n8n est une plateforme d'automatisation que tu peux auto-héberger ou utiliser dans le cloud. Connecte TellDone à n8n via un nœud Webhook. Ton instance n8n doit avoir une URL HTTPS accessible depuis Internet.

Configuration

Dans n8n

  1. Ajoute un nœud Webhook à ton workflow
  2. Définis la méthode HTTP sur POST
  3. Définis un chemin (par exemple, telldone)
  4. (Facultatif) Active Header Auth : Name = Authorization, Value = ton token secret
  5. Copie l'URL de production (pas l'URL de test)

Dans TellDone

  1. Va dans Paramètres > Intégrations > Automatisations webhook
  2. Appuie sur Nouvelle automatisation et colle l'URL de production n8n
  3. Si tu as activé Header Auth dans n8n, saisis le même token comme en-tête d'auth dans TellDone
  4. Choisis quels types de données envoyer
  5. Appuie sur Enregistrer, puis Test pour envoyer un payload d'exemple

Vérifie le journal d'exécution n8n - tu devrais voir un payload avec "test": true.

Router par type d'événement

Ajoute un nœud Switch après le nœud Webhook pour router les données par type d'événement :

  • Routing field : la valeur event des données entrantes
  • Rule 1 : égale note.created - route vers tes actions notes
  • Rule 2 : égale task.created - route vers tes actions tâches
  • Rule 3 : égale calendar_event.created - route vers tes actions calendrier
  • Rule 4 : égale report.created - route vers tes actions rapports

Connecte chaque sortie de Switch au nœud d'action approprié (Todoist, Google Calendar, Slack, etc.).

Expressions utiles

Quand tu configures les nœuds d'action, utilise ces expressions n8n pour accéder aux données TellDone :

ExpressionDescription
{{ $json.data.title }}Titre de la note, tâche ou événement
{{ $json.data.tags.join(', ') }}Tags en chaîne séparée par des virgules
{{ $json.data.priority }}Niveau de priorité
{{ $json.data.due_date }}Date d'échéance (tâches)
{{ $json.data.summary }}Résumé généré par IA (notes)
{{ $json.event }}Type d'événement

Pour la liste complète des champs de chaque type de données, voir Automatisations webhook - Ce qui est envoyé.

Filtrer les événements de test

Ajoute un nœud IF juste après le nœud Webhook :

  • Condition : {{ $json.test }} n'est pas vrai
  • Chemin Vrai : reste de ton workflow
  • Chemin Faux : No Operation (jeter les événements de test)

Exemples de workflows

  • Webhook - Switch - Todoist : crée des tâches avec priorité et échéance
  • Webhook - Switch - Google Calendar : crée des événements avec heure, lieu et participants
  • Webhook - Switch - Slack : poste les rapports quotidiens dans un canal
  • Webhook - Switch - Google Sheets : journalise toutes les notes comme lignes de tableur
  • Webhook - Switch - Notion : enregistre les notes avec tags et résumé

Vérifier les signatures de webhook (facultatif)

Limitation du corps brut dans n8n

Le nœud Code de n8n n'expose que l'objet JSON analysé, pas le corps brut de la requête. La vérification de signature nécessite les octets bruts exacts signés par TellDone. En pratique, la plupart des utilisateurs n8n s'appuient sur l'en-tête Authorization: <signing_secret> par défaut pour l'authentification plutôt que sur la vérification HMAC.

Pour un usage en production, tu peux vérifier que les données du webhook viennent réellement de TellDone en contrôlant la signature HMAC-SHA256. Ajoute un nœud Code juste après le nœud Webhook :

const crypto = require('crypto');

const secret = 'whsec_your_signing_secret_here';
const signature = $input.first().headers['x-lp-signature'];
const timestamp = $input.first().headers['x-lp-timestamp'];
const body = JSON.stringify($input.first().json);

const expected = 'sha256=' + crypto
.createHmac('sha256', secret)
.update(timestamp + '.' + body)
.digest('hex');

if (signature !== expected) {
throw new Error('Invalid webhook signature');
}

// Reject timestamps older than 5 minutes
const age = Math.floor(Date.now() / 1000) - parseInt(timestamp);
if (age > 300) {
throw new Error('Webhook timestamp too old');
}

return $input.all();

Remplace whsec_your_signing_secret_here par le secret de signature que tu as copié à la création de l'automatisation dans TellDone.

Déconnecter

Pour arrêter d'envoyer des données vers n8n :

  • Désactive le workflow dans n8n, ou
  • Désactive ou supprime l'automatisation dans Paramètres TellDone > Intégrations > Automatisations webhook

Voir aussi

  • Automatisations webhook - format du payload, limites de livraison et sécurité
  • Zapier - alternative d'automatisation cloud
  • Make - alternative d'automatisation cloud