Skip to content

Intégration n8n

Automatisation de workflows auto-hébergée avec contrôle total sur vos données.

Aperçu

n8n est un outil d'automatisation open-source et auto-hébergeable. Gardez les données de photos sur votre infrastructure tout en automatisant les workflows avec plus de 200 intégrations.

Prérequis

  • Compte Visiono avec accès API
  • Instance n8n (auto-hébergée ou cloud)
  • Clé API de Visiono

Pourquoi n8n ?

FonctionnalitéAvantage
Auto-hébergéContrôle total des données
Open sourceInspecter et modifier le code
Pas de limites d'exécutionWorkflows illimités
Nodes personnalisésConstruire des intégrations
Licence fair-codeGratuit pour la plupart des usages

Étapes de configuration

1. Créer un node Webhook

  1. Ouvrez l'éditeur de workflow n8n
  2. Ajoutez un node Webhook
  3. Définissez la méthode : POST
  4. Copiez l'URL du webhook (Production ou Test)

2. Configurer dans Visiono

  1. Allez dans Paramètres de l'espace de travailWebhooks
  2. Cliquez sur Ajouter un Webhook
  3. Collez l'URL du webhook n8n
  4. Sélectionnez les événements à déclencher
  5. Enregistrez la configuration

3. Tester la connexion

  1. Dans n8n, cliquez sur Listen for Test Event
  2. Soumettez une photo de test dans Visiono
  3. n8n affiche les données reçues
  4. Cliquez sur Stop Listening

4. Construire votre workflow

Ajoutez des nodes pour traiter les données :

[Webhook] → [IF] → [HTTP Request] → [Email]
                 ↘ [Slack]

Exemples de workflows

Workflow de sauvegarde de photos

Sauvegardez les photos sur le stockage local ou S3 :

json
{
  "nodes": [
    {
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "parameters": {
        "path": "visiono-photos",
        "httpMethod": "POST"
      }
    },
    {
      "name": "Loop Photos",
      "type": "n8n-nodes-base.splitInBatches",
      "parameters": {
        "batchSize": 1
      }
    },
    {
      "name": "Download Photo",
      "type": "n8n-nodes-base.httpRequest",
      "parameters": {
        "url": "={{$json.url}}",
        "responseFormat": "file"
      }
    },
    {
      "name": "Save to S3",
      "type": "n8n-nodes-base.awsS3",
      "parameters": {
        "operation": "upload",
        "bucketName": "visiono-backups",
        "fileName": "={{$json.slot_name}}.jpg"
      }
    }
  ]
}

Workflow de notification

Alertez l'équipe sur les nouvelles soumissions :

Nodes :

  1. Webhook - Recevoir l'événement Visiono
  2. Set - Formater les données du message
  3. Slack - Envoyer au canal
  4. Email - Envoyer le résumé

Journalisation en base de données

Enregistrez les soumissions dans PostgreSQL :

Nodes :

  1. Webhook - Recevoir l'événement
  2. Postgres - Insérer l'enregistrement
  3. IF - Vérifier le nombre de photos
  4. HTTP Request - Appeler une API externe

Configuration des nodes

Node Webhook

yaml
HTTP Method: POST
Path: visiono-webhook
Response Mode: On Received
Response Data: Success

Node HTTP Request

Pour télécharger les photos :

yaml
Method: GET
URL: ={{ $json.data.photos[0].url }}
Response Format: File

Node IF

Routage conditionnel :

yaml
Condition: Number
Value 1: ={{ $json.data.photos.length }}
Operation: Larger
Value 2: 5

Référence des données

Accédez aux données du webhook dans les expressions :

ExpressionDonnées
{{ $json.event }}Type d'événement
{{ $json.data.smart_link.name }}Nom du lien permanent
{{ $json.data.photos[0].url }}URL de la première photo
{{ $json.data.photos.length }}Nombre de photos
{{ $json.data.metadata.full_name }}Nom du soumetteur
{{ $json.data.metadata.unique_field }}Identifiant

Boucles et itération

Traiter toutes les photos

Utilisez le node Split In Batches :

  1. Ajoutez après le Webhook
  2. Définissez items : {{ $json.data.photos }}
  3. Batch size : 1
  4. Connectez les nodes de traitement
  5. Ajoutez Merge à la fin

Agréger les résultats

Collectez les données traitées :

  1. Node Code pour l'agrégation
  2. Stockez dans les données statiques du workflow
  3. Sortez les résultats combinés

Gestion des erreurs

Réessai en cas d'échec

Configurez par node :

  • Continue on Fail : Traiter l'élément suivant
  • Retry on Fail : Réessayer
  • Max Retries : 3

Déclencheur d'erreur

Capturez et gérez les erreurs :

  1. Ajoutez un node Error Trigger
  2. Connectez-le au node de notification
  3. Journalisez ou alertez sur les échecs

Conseils d'auto-hébergement

Déploiement Docker

yaml
version: "3"
services:
  n8n:
    image: n8nio/n8n
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=admin
      - N8N_BASIC_AUTH_PASSWORD=mot-de-passe-securise
      - WEBHOOK_URL=https://n8n.votredomaine.com/
    volumes:
      - n8n_data:/home/node/.n8n

URL du Webhook

Pour les webhooks de production :

  • Utilisez l'URL de production (pas de test)
  • Configurez la variable d'environnement WEBHOOK_URL
  • Utilisez HTTPS avec un certificat valide

Sécurité

  • Activez l'authentification
  • Utilisez HTTPS
  • Restreignez l'accès réseau
  • Sauvegardes régulières

Fonctionnalités avancées

Code personnalisé

Utilisez le node Code pour JavaScript :

javascript
const photos = items[0].json.data.photos;
const processed = photos.map(photo => ({
  url: photo.url,
  name: photo.slot_name,
  downloaded: new Date().toISOString()
}));
return [{ json: { photos: processed } }];

Identifiants

Stockez les clés API de manière sécurisée :

  1. Allez dans Credentials
  2. Ajoutez un nouvel identifiant
  3. Référencez dans les nodes

Sous-workflows

Modularisez les workflows :

  1. Créez un workflow réutilisable
  2. Appelez via le node Execute Workflow
  3. Passez les données entre workflows

Dépannage

Le Webhook ne reçoit pas

  1. Vérifiez que n8n est en cours d'exécution
  2. Vérifiez que l'URL inclut le port si nécessaire
  3. Vérifiez que le pare-feu autorise le trafic
  4. Testez avec curl

Erreurs d'expression

  1. Vérifiez la structure des données
  2. Vérifiez les chemins des propriétés
  3. Utilisez le chaînage optionnel : $json.data?.photos

Problèmes d'exécution

  1. Vérifiez le journal d'exécution
  2. Consultez les sorties des nodes
  3. Testez les nodes individuellement
  4. Vérifiez les identifiants

Optimisation des performances

Traitement par lots

  • Groupez les opérations similaires
  • Utilisez les appels API en masse
  • Limitez les exécutions concurrentes

Gestion des ressources

  • Surveillez l'utilisation de la mémoire
  • Limitez les exécutions de workflow
  • Archivez les anciennes données

Ressources connexes

Plateforme Professionnelle de Documentation Photo