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 source | Inspecter et modifier le code |
| Pas de limites d'exécution | Workflows illimités |
| Nodes personnalisés | Construire des intégrations |
| Licence fair-code | Gratuit pour la plupart des usages |
Étapes de configuration
1. Créer un node Webhook
- Ouvrez l'éditeur de workflow n8n
- Ajoutez un node Webhook
- Définissez la méthode : POST
- Copiez l'URL du webhook (Production ou Test)
2. Configurer dans Visiono
- Allez dans Paramètres de l'espace de travail → Webhooks
- Cliquez sur Ajouter un Webhook
- Collez l'URL du webhook n8n
- Sélectionnez les événements à déclencher
- Enregistrez la configuration
3. Tester la connexion
- Dans n8n, cliquez sur Listen for Test Event
- Soumettez une photo de test dans Visiono
- n8n affiche les données reçues
- 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 :
{
"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 :
- Webhook - Recevoir l'événement Visiono
- Set - Formater les données du message
- Slack - Envoyer au canal
- Email - Envoyer le résumé
Journalisation en base de données
Enregistrez les soumissions dans PostgreSQL :
Nodes :
- Webhook - Recevoir l'événement
- Postgres - Insérer l'enregistrement
- IF - Vérifier le nombre de photos
- HTTP Request - Appeler une API externe
Configuration des nodes
Node Webhook
HTTP Method: POST
Path: visiono-webhook
Response Mode: On Received
Response Data: SuccessNode HTTP Request
Pour télécharger les photos :
Method: GET
URL: ={{ $json.data.photos[0].url }}
Response Format: FileNode IF
Routage conditionnel :
Condition: Number
Value 1: ={{ $json.data.photos.length }}
Operation: Larger
Value 2: 5Référence des données
Accédez aux données du webhook dans les expressions :
| Expression | Donné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 :
- Ajoutez après le Webhook
- Définissez items :
{{ $json.data.photos }} - Batch size : 1
- Connectez les nodes de traitement
- Ajoutez Merge à la fin
Agréger les résultats
Collectez les données traitées :
- Node Code pour l'agrégation
- Stockez dans les données statiques du workflow
- 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 :
- Ajoutez un node Error Trigger
- Connectez-le au node de notification
- Journalisez ou alertez sur les échecs
Conseils d'auto-hébergement
Déploiement Docker
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/.n8nURL 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 :
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 :
- Allez dans Credentials
- Ajoutez un nouvel identifiant
- Référencez dans les nodes
Sous-workflows
Modularisez les workflows :
- Créez un workflow réutilisable
- Appelez via le node Execute Workflow
- Passez les données entre workflows
Dépannage
Le Webhook ne reçoit pas
- Vérifiez que n8n est en cours d'exécution
- Vérifiez que l'URL inclut le port si nécessaire
- Vérifiez que le pare-feu autorise le trafic
- Testez avec curl
Erreurs d'expression
- Vérifiez la structure des données
- Vérifiez les chemins des propriétés
- Utilisez le chaînage optionnel :
$json.data?.photos
Problèmes d'exécution
- Vérifiez le journal d'exécution
- Consultez les sorties des nodes
- Testez les nodes individuellement
- 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
- Webhooks - Configuration des événements
- Référence API - Accès direct à l'API
- Intégration Zapier - Alternative cloud
- Intégration Make - Constructeur visuel
