Workflow n8n

Automatiser le traitement d'images et la récupération de nouveaux abonnés avec n8n

Ce workflow a pour objectif d'automatiser la récupération de nouveaux abonnés et le traitement d'images à l'aide de n8n. Dans un contexte où les entreprises cherchent à optimiser leur gestion des abonnés et à améliorer la qualité visuelle de leur contenu, ce workflow se révèle particulièrement utile. Il commence par un déclencheur manuel qui permet à l'utilisateur de lancer le processus à tout moment. Étape 1 : Lorsqu'on clique sur 'exécuter', le workflow initie une requête HTTP pour récupérer les nouveaux abonnés via l'API. Étape 2 : Les données des abonnés sont ensuite traitées à l'aide d'une liste d'éléments pour structurer les informations. Étape 3 : Un ensemble de requêtes HTTP est utilisé pour récupérer des images et des arrière-plans, suivies de plusieurs étapes de traitement d'images, incluant le redimensionnement et le recadrage. Chaque image est soigneusement ajustée pour répondre aux besoins spécifiques du projet. Étape 4 : Enfin, les images traitées sont prêtes à être utilisées dans des campagnes marketing ou sur des plateformes sociales. Ce workflow permet de gagner un temps précieux, d'améliorer la qualité des visuels et d'optimiser la gestion des abonnés, apportant ainsi une réelle valeur ajoutée aux équipes marketing. Tags clés : automatisation, traitement d'images, gestion des abonnés.

Catégorie: Manual · Tags: automatisation, traitement d'images, gestion des abonnés, n8n, workflow0

Vue d'ensemble du workflow n8n

Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.

Inscris-toi pour voir l'intégralité du workflow

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "nodes": [
    {
      "name": "On clicking 'execute'",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        260,
        210
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "name": "Fetch new followers",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        460,
        210
      ],
      "parameters": {
        "url": "https://api.twitter.com/2/users/{YOUR_USER_ID}/followers?user.fields=profile_image_url&max_results=3",
        "options": {},
        "authentication": "headerAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "2",
          "name": "Twitter Token"
        }
      },
      "typeVersion": 1
    },
    {
      "name": "Item Lists",
      "type": "n8n-nodes-base.itemLists",
      "position": [
        660,
        210
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "data"
      },
      "typeVersion": 1
    },
    {
      "name": "Function",
      "type": "n8n-nodes-base.function",
      "position": [
        1660,
        210
      ],
      "parameters": {
        "functionCode": "const binary = {};\nfor (let i=0; i < items.length; i++) {\n  binary[`data${i}`] = items[i].binary.avatar;\n}\n\nreturn [\n  {\n    json: {\n      numIcons: items.length,\n    },\n    binary,\n  }\n];\n"
      },
      "typeVersion": 1
    },
    {
      "name": "Merge",
      "type": "n8n-nodes-base.merge",
      "position": [
        1910,
        110
      ],
      "parameters": {
        "mode": "mergeByIndex"
      },
      "typeVersion": 1
    },
    {
      "name": "Fetching images",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        860,
        210
      ],
      "parameters": {
        "url": "={{$json[\"profile_image_url\"].replace('normal','400x400')}}",
        "options": {},
        "responseFormat": "file",
        "dataPropertyName": "avatar"
      },
      "typeVersion": 1
    },
    {
      "name": "Fetch bg",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1660,
        -40
      ],
      "parameters": {
        "url": "{TEMPLATE_IMAGE_URL}",
        "options": {},
        "responseFormat": "file",
        "dataPropertyName": "bg"
      },
      "typeVersion": 1
    },
    {
      "name": "Resize",
      "type": "n8n-nodes-base.editImage",
      "position": [
        1060,
        210
      ],
      "parameters": {
        "width": 200,
        "height": 200,
        "options": {},
        "operation": "resize",
        "dataPropertyName": "avatar"
      },
      "typeVersion": 1
    },
    {
      "name": "Crop",
      "type": "n8n-nodes-base.editImage",
      "position": [
        1260,
        210
      ],
      "parameters": {
        "options": {
          "format": "png"
        },
        "operation": "multiStep",
        "operations": {
          "operations": [
            {
              "width": 200,
              "height": 200,
              "operation": "create",
              "backgroundColor": "#000000ff"
            },
            {
              "color": "#ffffff00",
              "operation": "draw",
              "primitive": "circle",
              "endPositionX": 25,
              "endPositionY": 50,
              "startPositionX": 100,
              "startPositionY": 100
            },
            {
              "operator": "In",
              "operation": "composite",
              "dataPropertyNameComposite": "avatar"
            }
          ]
        },
        "dataPropertyName": "avatar"
      },
      "typeVersion": 1
    },
    {
      "name": "Edit Image",
      "type": "n8n-nodes-base.editImage",
      "position": [
        2110,
        110
      ],
      "parameters": {
        "options": {},
        "operation": "multiStep",
        "operations": {
          "operations": [
            {
              "operation": "composite",
              "positionX": 1000,
              "positionY": 375,
              "dataPropertyNameComposite": "data0"
            },
            {
              "operation": "composite",
              "positionX": 1100,
              "positionY": 375,
              "dataPropertyNameComposite": "data1"
            },
            {
              "operation": "composite",
              "positionX": 1200,
              "positionY": 375,
              "dataPropertyNameComposite": "data2"
            }
          ]
        },
        "dataPropertyName": "bg"
      },
      "typeVersion": 1
    },
    {
      "name": "Resize1",
      "type": "n8n-nodes-base.editImage",
      "position": [
        1450,
        210
      ],
      "parameters": {
        "width": 75,
        "height": 75,
        "options": {},
        "operation": "resize",
        "dataPropertyName": "avatar"
      },
      "typeVersion": 1
    },
    {
      "name": "HTTP Request",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        2310,
        110
      ],
      "parameters": {
        "url": "https://api.twitter.com/1.1/account/update_profile_banner.json",
        "options": {
          "bodyContentType": "multipart-form-data"
        },
        "requestMethod": "POST",
        "authentication": "oAuth1",
        "jsonParameters": true,
        "sendBinaryData": true,
        "binaryPropertyName": "banner:bg"
      },
      "credentials": {
        "oAuth1Api": {
          "id": "13",
          "name": "Twitter OAuth1.0"
        }
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Crop": {
      "main": [
        [
          {
            "node": "Resize1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Merge": {
      "main": [
        [
          {
            "node": "Edit Image",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Resize": {
      "main": [
        [
          {
            "node": "Crop",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Resize1": {
      "main": [
        [
          {
            "node": "Function",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch bg": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Function": {
      "main": [
        [
          {
            "node": "Merge",
            "type": "main",
            "index": 1
          }
        ]
      ]
    },
    "Edit Image": {
      "main": [
        [
          {
            "node": "HTTP Request",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Item Lists": {
      "main": [
        [
          {
            "node": "Fetching images",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetching images": {
      "main": [
        [
          {
            "node": "Resize",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Fetch new followers": {
      "main": [
        [
          {
            "node": "Item Lists",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On clicking 'execute'": {
      "main": [
        [
          {
            "node": "Fetch new followers",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Pour qui est ce workflow ?

Ce workflow s'adresse aux équipes marketing et aux professionnels du digital qui souhaitent automatiser la gestion de leurs abonnés tout en améliorant la qualité de leurs visuels. Il est idéal pour les entreprises de taille moyenne à grande, ainsi que pour les agences de communication qui gèrent plusieurs clients.

Problème résolu

Ce workflow résout le problème de la gestion manuelle des abonnés et du traitement d'images, qui peut être chronophage et sujet à des erreurs. En automatisant ces processus, les utilisateurs peuvent réduire les frustrations liées à la collecte d'abonnés et à l'édition d'images. Le résultat est une efficacité accrue, une meilleure qualité visuelle et une gestion des abonnés simplifiée, permettant aux équipes de se concentrer sur des tâches à plus forte valeur ajoutée.

Étapes du workflow

Étape 1 : Le workflow débute avec un déclencheur manuel qui permet à l'utilisateur de lancer le processus. Étape 2 : Une requête HTTP est effectuée pour récupérer les nouveaux abonnés. Étape 3 : Les données des abonnés sont organisées à l'aide d'une liste d'éléments. Étape 4 : Plusieurs requêtes HTTP sont utilisées pour récupérer des images et des arrière-plans. Étape 5 : Les images sont ensuite redimensionnées et recadrées selon les besoins du projet. Étape 6 : Les images traitées sont prêtes à être utilisées dans des campagnes marketing.

Guide de personnalisation du workflow n8n

Pour personnaliser ce workflow, vous pouvez modifier les paramètres des requêtes HTTP pour adapter les URL aux API que vous utilisez. Il est également possible d'ajuster les dimensions dans les nœuds de redimensionnement et de recadrage des images pour répondre à vos besoins spécifiques. Si vous souhaitez intégrer d'autres outils, vous pouvez ajouter des nœuds supplémentaires pour les connexions API. Assurez-vous de sécuriser vos clés d'API et de surveiller les performances du flux pour garantir une exécution fluide.