Workflow n8n

Automatisation Slack avec n8n : gestion des fichiers et alertes

  • Ce workflow n8n a pour objectif d'automatiser la gestion des fichiers et l'envoi d'alertes sur Slack. Dans un contexte où la collaboration et le partage de fichiers sont essentiels, ce système permet de simplifier le processus d'importation et de notification. Par exemple, les équipes peuvent facilement uploader des fichiers sur un bucket S3 et recevoir des notifications en temps réel sur Slack, améliorant ainsi la réactivité et la communication au sein de l'organisation.
  • Le workflow débute par un déclencheur Webhook qui reçoit les données nécessaires. Ensuite, les fichiers sont téléchargés via un appel HTTP, et une fois le téléchargement réussi, le fichier est uploadé sur un bucket S3. En parallèle, des notes autocollantes sont créées pour garder une trace des actions effectuées. Le flux utilise également des nœuds de routage pour gérer les différentes actions à entreprendre selon le succès ou l'échec du téléchargement. Les réponses sont ensuite envoyées à Slack pour informer les utilisateurs de l'état de l'opération.
  • Les bénéfices de cette automatisation n8n sont multiples : réduction des erreurs humaines, gain de temps dans la gestion des fichiers, et amélioration de la communication entre les équipes. En intégrant ce workflow, les entreprises peuvent s'assurer que chaque membre de l'équipe est informé des mises à jour importantes, ce qui favorise une meilleure collaboration et une efficacité accrue.
Tags clés :automatisationSlackn8ngestion de fichiersnotifications
Catégorie: Webhook · Tags: automatisation, Slack, n8n, gestion de fichiers, notifications0

Workflow n8n Slack, gestion de fichiers, notifications : vue d'ensemble

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

Workflow n8n Slack, gestion de fichiers, notifications : détail des nœuds

  • Parse Webhook

    Ce noeud parse les données reçues d'un webhook.

  • Sticky Note

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu spécifiés.

  • Sticky Note15

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu spécifiés.

  • Sticky Note11

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu spécifiés.

  • Close Modal Popup

    Ce noeud répond à un webhook en fermant une fenêtre modale avec un corps de réponse.

  • Sticky Note2

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu spécifiés.

  • Idea Selector Modal

    Ce noeud effectue une requête HTTP pour sélectionner une idée via une URL et des paramètres spécifiés.

  • Route Message

    Ce noeud dirige le flux en fonction de règles définies.

  • Route Message1

    Ce noeud dirige le flux en fonction de règles définies.

  • Create Folder

    Ce noeud effectue une requête HTTP pour créer un dossier à l'aide d'une URL et de paramètres spécifiés.

  • Select Folder

    Ce noeud effectue une requête HTTP pour sélectionner un dossier à l'aide d'une URL et de paramètres spécifiés.

  • Loop Over Items

    Ce noeud divise les éléments en lots pour un traitement ultérieur.

  • Success Response

    Ce noeud définit une réponse de succès avec des options et des affectations spécifiées.

  • Check if uploaded successfully

    Ce noeud vérifie si un fichier a été téléchargé avec succès en fonction de conditions définies.

  • move on to next

    Ce noeud ne fait rien et passe à l'étape suivante.

  • No Operation, do nothing

    Ce noeud ne fait rien et ne produit aucun effet.

  • Aggregate

    Ce noeud agrège des données selon des options et des champs spécifiés.

  • Route Action

    Ce noeud dirige le flux en fonction de règles définies.

  • Webhook

    Ce noeud reçoit des données via un webhook avec des paramètres spécifiés.

  • Sticky Note1

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu spécifiés.

  • Sticky Note3

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu spécifiés.

  • Failure Response

    Ce noeud définit une réponse d'échec avec des options et des affectations spécifiées.

  • Sticky Note4

    Ce noeud crée une note autocollante avec des paramètres de couleur, largeur, hauteur et contenu spécifiés.

  • Respond to Slack Webhook - Success

    Ce noeud répond à un webhook Slack avec un message de succès.

  • Respond to Slack Webhook - No Action

    Ce noeud répond à un webhook Slack sans action spécifique.

  • Download File Binary

    Ce noeud télécharge un fichier binaire à partir d'une URL spécifiée.

  • Upload to S3 Bucket

    Ce noeud télécharge un fichier vers un bucket S3 avec des paramètres spécifiés.

  • Post Image to Channel

    Ce noeud publie une image sur un canal Slack avec des paramètres de texte et de bloc.

  • Split Out Files

    Ce noeud divise les fichiers en fonction d'un champ spécifié.

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

Inscription gratuite

S'inscrire gratuitementBesoin d'aide ?
{
  "nodes": [
    {
      "id": "ec2683b4-06ae-4255-bf20-b6c5850f4fc5",
      "name": "Parse Webhook",
      "type": "n8n-nodes-base.set",
      "position": [
        -480,
        1100
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "e63f9299-a19d-4ba1-93b0-59f458769fb2",
              "name": "response",
              "type": "object",
              "value": "={{ $json.body.payload }}"
            }
          ]
        }
      },
      "typeVersion": 3.3
    },
    {
      "id": "bb178ce9-3177-433e-a877-3635be7c3705",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -820,
        740
      ],
      "parameters": {
        "color": 7,
        "width": 466.8168310000617,
        "height": 567.6433222116042,
        "content": "![Imgur](https://i.imgur.com/iKyMV0N.png)\n## Events Webhook Trigger\nThe first node receives all messages from Slack API via Subscription Events API. You can find more information about setting up the subscription events API by [clicking here](https://api.slack.com/apis/connections/events-api). \n\nThe second node extracts the payload from slack into an object that n8n can understand.  "
      },
      "typeVersion": 1
    },
    {
      "id": "04d35926-1c7d-406b-90f1-9641680cb3b7",
      "name": "Sticky Note15",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -340,
        420
      ],
      "parameters": {
        "color": 7,
        "width": 566.0553219408072,
        "height": 1390.6748140207737,
        "content": "![n8n](https://i.imgur.com/lKnBNnH.png)\n## Efficient Slack Interaction Handling with n8n\n\nThis section of the workflow is designed to efficiently manage and route messages and submissions from Slack based on specific triggers and conditions. When a Slack interaction occurs—such as a user triggering a vulnerability scan or generating a report through a modal—the workflow intelligently routes the message to the appropriate action:\n\n- **Dynamic Routing**: Uses conditions to determine the nature of the Slack interaction, whether it's a direct command to initiate a scan or a request to generate a report.\n- **Modal Management**: Differentiates actions based on modal titles and `callback_id`s, ensuring that each type of submission is processed according to its context.\n- **Streamlined Responses**: After routing, the workflow promptly handles the necessary responses or actions, including closing modal popups and responding to Slack with appropriate confirmation or data.\n\n**Purpose**: This mechanism ensures that all interactions within Slack are handled quickly and accurately, automating responses and actions in real-time to enhance user experience and workflow efficiency."
      },
      "typeVersion": 1
    },
    {
      "id": "e6a046b1-1c8b-4585-b257-117f562dd30f",
      "name": "Sticky Note11",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        520
      ],
      "parameters": {
        "color": 7,
        "width": 396.6025898621133,
        "height": 1553.6713675640199,
        "content": "![Imgur](https://i.imgur.com/iKyMV0N.png)\n## Display Modal Popup\nThis section pops open a modal window that is later used to send data into TheHive. \n\nModals can be customized to perform all sorts of actions. And they are natively mobile! You can see a screenshot of the Slack Modals on the right. \n\nLearn more about them by [clicking here](https://api.slack.com/surfaces/modals)"
      },
      "typeVersion": 1
    },
    {
      "id": "93b094eb-4a0a-4639-b343-932b7f261b0d",
      "name": "Close Modal Popup",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        -320,
        2180
      ],
      "parameters": {
        "options": {},
        "respondWith": "json",
        "responseBody": "{\n  \"response_action\": \"clear\"\n}"
      },
      "typeVersion": 1.1
    },
    {
      "id": "6d67a6f5-9966-40a9-a9ad-db514027257b",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        860
      ],
      "parameters": {
        "color": 5,
        "width": 376.26546828439086,
        "height": 113.6416448104651,
        "content": "### 🙋 Don't forget your slack credentials!\nThankfully n8n makes it easy, as long as you've added credentials to a normal slack node, these http nodes are a snap to change via the drop down. "
      },
      "typeVersion": 1
    },
    {
      "id": "3222f63e-036f-43b6-9d60-a9d1a19bafa5",
      "name": "Idea Selector Modal",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        320,
        1000
      ],
      "parameters": {
        "url": "https://slack.com/api/views.open",
        "method": "POST",
        "options": {},
        "jsonBody": "=  {\n    \"trigger_id\": \"{{ $('Parse Webhook').item.json['response']['trigger_id'] }}\",\n    \"external_id\": \"Image Uploader\",\n    \"view\": {\n\t\"title\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"File Upload - Select\",\n\t\t\"emoji\": true\n\t},\n\t\"type\": \"modal\",\n\t\"external_id\": \"file_upload_selector\",\n\t\"close\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"Cancel\",\n\t\t\"emoji\": true\n\t},\n\t\"blocks\": [\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"block_id\": \"greeting_section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \":wave: Hey {{ $('Route Message').item.json.response.user.username }}!\\n\\nNeed to upload an image to a public repository? If so, you've come to the right place. Use the form below to upload your images to our public S3 CDN. You will get a message with the link to the file after submission. This tool only accepts .jpg, .png, and .pdf uploads.\",\n\t\t\t\t\"emoji\": true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"divider\",\n\t\t\t\"block_id\": \"divider_1\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"actions\",\n\t\t\t\"block_id\": \"folder_type_selection\",\n\t\t\t\"elements\": [\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"radio_buttons\",\n\t\t\t\t\t\"options\": [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"text\": {\n\t\t\t\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\t\t\t\"text\": \"Create New Folder\",\n\t\t\t\t\t\t\t\t\"emoji\": true\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"value\": \"createfolder\"\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\"text\": {\n\t\t\t\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\t\t\t\"text\": \"Use Existing Folder\",\n\t\t\t\t\t\t\t\t\"emoji\": true\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\"value\": \"selectfolder\"\n\t\t\t\t\t\t}\n\t\t\t\t\t],\n\t\t\t\t\t\"action_id\": \"folder-type\"\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}\n}",
        "sendBody": true,
        "jsonQuery": "{\n  \"Content-type\": \"application/json\"\n}",
        "sendQuery": true,
        "specifyBody": "json",
        "specifyQuery": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "slackApi"
      },
      "credentials": {
        "slackApi": {
          "id": "GjRorC99RZt4Wnrp",
          "name": "Image Upload Bot"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a23e7c3b-7f20-4832-a4f0-a696e661accf",
      "name": "Route Message",
      "type": "n8n-nodes-base.switch",
      "position": [
        -300,
        1100
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Idea Selector",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.response.callback_id }}",
                    "rightValue": "idea_selector"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Block Action",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "a0374196-2553-4916-bc55-c2ea663a7c1f",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.response.type }}",
                    "rightValue": "block_actions"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Submit Data",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "65daa75f-2e17-4ba0-8fd8-2ac2159399e3",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.response.type }}",
                    "rightValue": "view_submission"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {
          "fallbackOutput": "none"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "91cde8d3-2eca-4a00-a2cc-61a4f2d3280f",
      "name": "Route Message1",
      "type": "n8n-nodes-base.switch",
      "position": [
        40,
        1400
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "Create Folder",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "02868fd8-2577-4c6d-af5e-a1963cb2f786",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.response.view.state.values.folder_type_selection['folder-type'].selected_option.value }}",
                    "rightValue": "createfolder"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "Select Folder",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "211e13e8-3433-42d3-8884-ad89f2fee5d0",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.response.view.state.values.folder_type_selection['folder-type'].selected_option.value }}",
                    "rightValue": "selectfolder"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {
          "fallbackOutput": "none"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "0dd0e945-8a1d-4ba8-b711-e8ccc4a98ec1",
      "name": "Create Folder",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        320,
        1320
      ],
      "parameters": {
        "url": "https://slack.com/api/views.push",
        "method": "POST",
        "options": {},
        "jsonBody": "=  {\n    \"trigger_id\": \"{{ $('Parse Webhook').item.json['response']['trigger_id'] }}\",\n    \"view\": {\n\t\"title\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"File Upload - New Folder\",\n\t\t\"emoji\": true\n\t},\n\t\"submit\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"Upload\",\n\t\t\"emoji\": true\n\t},\n\t\"type\": \"modal\",\n\t\"external_id\": \"file_upload_new_folder\",\n\t\"close\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"Cancel\",\n\t\t\"emoji\": true\n\t},\n\t\"blocks\": [\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"block_id\": \"greeting_section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \":wave: Hey there!\\n\\nNeed to upload an image to a public repository? If so, you've come to the right place. Use the form below to upload your images to our public S3 CDN. You will get a message with the link to the file after submission. This tool only accepts .jpg, .png, and .pdf uploads.\",\n\t\t\t\t\"emoji\": true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"divider\",\n\t\t\t\"block_id\": \"divider_1\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"input\",\n\t\t\t\"block_id\": \"folder_name_block\",\n\t\t\t\"element\": {\n\t\t\t\t\"type\": \"plain_text_input\",\n\t\t\t\t\"action_id\": \"folder_name_input_action\",\n\t\t\t\t\"placeholder\": {\n\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\"text\": \"example_folder_name\"\n\t\t\t\t}\n\t\t\t},\n\t\t\t\"label\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Folder Name\",\n\t\t\t\t\"emoji\": true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"context\",\n\t\t\t\"block_id\": \"folder_creation_context\",\n\t\t\t\"elements\": [\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\"text\": \"This will create a new folder in the CDN.\",\n\t\t\t\t\t\"emoji\": true\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"type\": \"input\",\n\t\t\t\"block_id\": \"input_block_file\",\n\t\t\t\"label\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Image File Binary\"\n\t\t\t},\n\t\t\t\"element\": {\n\t\t\t\t\"type\": \"file_input\",\n\t\t\t\t\"action_id\": \"file_input_action\",\n\t\t\t\t\"filetypes\": [\n\t\t\t\t\t\"jpg\",\n\t\t\t\t\t\"png\",\n\t\t\t\t\t\"pdf\"\n\t\t\t\t],\n\t\t\t\t\"max_files\": 10\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"context\",\n\t\t\t\"elements\": [\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\"text\": \"You can upload up to 10 files at a time.\",\n\t\t\t\t\t\"emoji\": true\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}\n}",
        "sendBody": true,
        "jsonQuery": "{\n  \"Content-type\": \"application/json\"\n}",
        "sendQuery": true,
        "specifyBody": "json",
        "specifyQuery": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "slackApi"
      },
      "credentials": {
        "slackApi": {
          "id": "GjRorC99RZt4Wnrp",
          "name": "Image Upload Bot"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "d4cdcd35-b28e-4d01-a35f-20d239f92fca",
      "name": "Select Folder",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        320,
        1560
      ],
      "parameters": {
        "url": "https://slack.com/api/views.push",
        "method": "POST",
        "options": {},
        "jsonBody": "=  {\n    \"trigger_id\": \"{{ $('Parse Webhook').item.json['response']['trigger_id'] }}\",\n    \"view\": {\n\t\"title\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"File Upload - Old Folder\",\n\t\t\"emoji\": true\n\t},\n\t\"submit\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"Upload\",\n\t\t\"emoji\": true\n\t},\n\t\"type\": \"modal\",\n\t\"external_id\": \"file_upload_old_folder\",\n\t\"close\": {\n\t\t\"type\": \"plain_text\",\n\t\t\"text\": \"Cancel\",\n\t\t\"emoji\": true\n\t},\n\t\"blocks\": [\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"block_id\": \"greeting_section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \":wave: Hey there!\\n\\nNeed to upload an image to a public repository? If so, you've come to the right place. Use the form below to upload your images to our public S3 CDN. You will get a message with the link to the file after submission. This tool only accepts .jpg, .png, and .pdf uploads.\",\n\t\t\t\t\"emoji\": true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"divider\",\n\t\t\t\"block_id\": \"divider_1\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"input\",\n\t\t\t\"block_id\": \"tool_selector\",\n\t\t\t\"element\": {\n\t\t\t\t\"type\": \"external_select\",\n\t\t\t\t\"placeholder\": {\n\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\"text\": \"Search For Existing Folder Name\",\n\t\t\t\t\t\"emoji\": true\n\t\t\t\t},\n\t\t\t\t\"action_id\": \"folder_selector\"\n\t\t\t},\n\t\t\t\"label\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Folder Selector\",\n\t\t\t\t\"emoji\": true\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"context\",\n\t\t\t\"elements\": [\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\"text\": \"To see all folders, type in 'all'\",\n\t\t\t\t\t\"emoji\": true\n\t\t\t\t}\n\t\t\t]\n\t\t},\n\t\t{\n\t\t\t\"type\": \"input\",\n\t\t\t\"block_id\": \"input_block_file\",\n\t\t\t\"label\": {\n\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\"text\": \"Image File Binary\"\n\t\t\t},\n\t\t\t\"element\": {\n\t\t\t\t\"type\": \"file_input\",\n\t\t\t\t\"action_id\": \"file_input_action\",\n\t\t\t\t\"filetypes\": [\n\t\t\t\t\t\"jpg\",\n\t\t\t\t\t\"png\",\n\t\t\t\t\t\"pdf\"\n\t\t\t\t],\n\t\t\t\t\"max_files\": 10\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"context\",\n\t\t\t\"elements\": [\n\t\t\t\t{\n\t\t\t\t\t\"type\": \"plain_text\",\n\t\t\t\t\t\"text\": \"You can upload up to 10 files at a time.\",\n\t\t\t\t\t\"emoji\": true\n\t\t\t\t}\n\t\t\t]\n\t\t}\n\t]\n}\n}",
        "sendBody": true,
        "jsonQuery": "{\n  \"Content-type\": \"application/json\"\n}",
        "sendQuery": true,
        "specifyBody": "json",
        "specifyQuery": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "slackApi"
      },
      "credentials": {
        "slackApi": {
          "id": "GjRorC99RZt4Wnrp",
          "name": "Image Upload Bot"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "997821dc-c8e8-45f5-87e9-d006fe6b5de7",
      "name": "Loop Over Items",
      "type": "n8n-nodes-base.splitInBatches",
      "position": [
        460,
        2140
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 3
    },
    {
      "id": "e7ae5827-2fe3-411b-9689-f0f6b2d9dfc0",
      "name": "Success Response",
      "type": "n8n-nodes-base.set",
      "position": [
        1440,
        2360
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bd5f7054-0259-45a4-b01e-11c63b76c18e",
              "name": "link",
              "type": "string",
              "value": "=https://uploads.n8n.io/{{ $('Parse Webhook').item.json.response.view.state.values.folder_name_block?.folder_name_input_action?.value ? $('Parse Webhook').item.json.response.view.state.values.folder_name_block.folder_name_input_action.value.replace(/\\s+/g, '_') : $('Parse Webhook').item.json.response.view.state.values.tool_selector.folder_selector.selected_option.value }}/{{ $('Split Out Files').item.json.name.replace(/\\s+/g, '_') }}"
            },
            {
              "id": "2ed40d88-8ca5-4fe6-9387-3b021fe00dcf",
              "name": "slackresponse",
              "type": "string",
              "value": "={\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\"`https://uploads.n8n.io/{{ $('Parse Webhook').item.json.response.view.state.values.folder_name_block?.folder_name_input_action?.value ? $('Parse Webhook').item.json.response.view.state.values.folder_name_block.folder_name_input_action.value.replace(/\\s+/g, '_') : $('Parse Webhook').item.json.response.view.state.values.tool_selector.folder_selector.selected_option.value }}/{{ $('Split Out Files').item.json.name.replace(/\\s+/g, '_') }}`\"}}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "72f1af25-faef-4556-8b71-97deb03b7755",
      "name": "Check if uploaded successfully",
      "type": "n8n-nodes-base.if",
      "position": [
        1160,
        2420
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "8b51d4d6-feb6-4e1a-9077-9bd88207d3b7",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ $json.success }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "912e8689-53e0-4919-a664-b9025b4618b6",
      "name": "move on to next",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1800,
        2360
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "69d94e2e-9ff8-42ae-8969-bbe4b11976d2",
      "name": "No Operation, do nothing",
      "type": "n8n-nodes-base.noOp",
      "position": [
        760,
        1940
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "8c43201b-97ee-419a-81a3-5cd9c204022a",
      "name": "Aggregate",
      "type": "n8n-nodes-base.aggregate",
      "position": [
        980,
        1940
      ],
      "parameters": {
        "options": {
          "mergeLists": false
        },
        "fieldsToAggregate": {
          "fieldToAggregate": [
            {
              "fieldToAggregate": "slackresponse"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "792eaa0e-e281-451a-b582-4e3ecef9cb20",
      "name": "Route Action",
      "type": "n8n-nodes-base.switch",
      "position": [
        -80,
        2180
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "File Upload",
              "conditions": {
                "options": {
                  "version": 1,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "54f7e9ca-23d5-428c-8148-41f27cafffd8",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "t",
                    "rightValue": "f"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {
          "fallbackOutput": 0
        }
      },
      "typeVersion": 3
    },
    {
      "id": "3877766c-dc3f-4e4e-9921-5ef36c7ae787",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -720,
        1100
      ],
      "webhookId": "7f9dd2fb-e324-4f72-8fbf-d1f6b4fa5c79",
      "parameters": {
        "path": "slack-image-upload-bot",
        "options": {},
        "httpMethod": "POST",
        "responseMode": "responseNode"
      },
      "typeVersion": 2
    },
    {
      "id": "b2ee67cb-dd60-4775-aa1a-8d52e192991a",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -320,
        2080
      ],
      "parameters": {
        "color": 7,
        "width": 940,
        "height": 300,
        "content": "## Split Files out for processing\nTakes the single response from Slack and splits out the file objects to loop across them."
      },
      "typeVersion": 1
    },
    {
      "id": "c28de034-b4d6-4f78-a91b-0667830a7632",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        2180
      ],
      "parameters": {
        "color": 7,
        "width": 1360,
        "height": 540,
        "content": "## Loop through files to upload to S3 Cloudflare Bucket\nThe success and failure path report back to slack once all files are uploaded. "
      },
      "typeVersion": 1
    },
    {
      "id": "141cb7dc-d9a3-4440-b60f-7a3b3dd8f831",
      "name": "Failure Response",
      "type": "n8n-nodes-base.set",
      "position": [
        1460,
        2560
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "bd5f7054-0259-45a4-b01e-11c63b76c18e",
              "name": "link",
              "type": "string",
              "value": "=Unable to upload {{ $('Parse Webhook').item.json.response.view.state.values.folder_name_block?.folder_name_input_action?.value ? $('Parse Webhook').item.json.response.view.state.values.folder_name_block.folder_name_input_action.value.replace(/\\s+/g, '_') : $('Parse Webhook').item.json.response.view.state.values.tool_selector.folder_selector.selected_option.value }}/{{ $('Split Out Files').item.json.name.replace(/\\s+/g, '_') }}"
            },
            {
              "id": "39bbddba-e7a4-44cf-aab4-a90669548454",
              "name": "slackresponse",
              "type": "string",
              "value": "={\"type\":\"section\",\"text\":{\"type\":\"mrkdwn\",\"text\":\":warning:Unable to upload: `https://uploads.n8n.io/{{ $('Parse Webhook').item.json.response.view.state.values.folder_name_block?.folder_name_input_action?.value ? $('Parse Webhook').item.json.response.view.state.values.folder_name_block.folder_name_input_action.value.replace(/\\s+/g, '_') : $('Parse Webhook').item.json.response.view.state.values.tool_selector.folder_selector.selected_option.value }}/{{ $('Split Out Files').item.json.name.replace(/\\s+/g, '_') }}`\"}}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "e947e3b4-a016-4d9e-a647-53a666d4c1b9",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        640,
        1780
      ],
      "parameters": {
        "color": 7,
        "width": 1080,
        "height": 380,
        "content": "## Combine Success and failure responses in final message\nAllows for the workflow to fail gracefully. "
      },
      "typeVersion": 1
    },
    {
      "id": "7e7275c8-976b-493d-bfd8-7180517bac53",
      "name": "Respond to Slack Webhook - Success",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        40,
        1000
      ],
      "parameters": {
        "options": {},
        "respondWith": "noData"
      },
      "typeVersion": 1.1
    },
    {
      "id": "d508c32d-414d-4316-8fdc-e1c8687f6fa8",
      "name": "Respond to Slack Webhook - No Action",
      "type": "n8n-nodes-base.respondToWebhook",
      "position": [
        -140,
        1400
      ],
      "parameters": {
        "options": {},
        "respondWith": "noData"
      },
      "typeVersion": 1.1
    },
    {
      "id": "b2a06a70-4ec6-4d10-94e6-0467009af01e",
      "name": "Download File Binary",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        760,
        2420
      ],
      "parameters": {
        "url": "={{ $json.url_private_download }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        },
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "slackApi"
      },
      "credentials": {
        "slackApi": {
          "id": "bqdMGoCMwzFKzBXQ",
          "name": "Image Upload Bot User Token"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3ea9d291-233b-4f25-8538-f9427e55001b",
      "name": "Upload to S3 Bucket",
      "type": "n8n-nodes-base.s3",
      "position": [
        960,
        2420
      ],
      "parameters": {
        "fileName": "={{ $('Parse Webhook').item.json.response.view.state.values.folder_name_block?.folder_name_input_action?.value ? $('Parse Webhook').item.json.response.view.state.values.folder_name_block.folder_name_input_action.value.replace(/\\s+/g, '_') : $('Parse Webhook').item.json.response.view.state.values.tool_selector.folder_selector.selected_option.value }}/{{ $('Split Out Files').item.json.name.replace(/\\s+/g, '_') }}",
        "operation": "upload",
        "bucketName": "n8n-uploads",
        "additionalFields": {}
      },
      "credentials": {
        "s3": {
          "id": "5sdH8lDK8m8bje6X",
          "name": "S3 account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "e1182b20-d90d-4f53-96e7-90b36aff7053",
      "name": "Post Image to Channel",
      "type": "n8n-nodes-base.slack",
      "position": [
        1420,
        1940
      ],
      "webhookId": "050fb588-26db-489d-86c0-9ac5d573108d",
      "parameters": {
        "text": "New Files Uploaded",
        "select": "channel",
        "blocksUi": "={\n\t\"blocks\": [\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \":file_folder: *{{ $('Parse Webhook').item.json.response.view.state.values.folder_name_block?.folder_name_input_action?.value ? $('Parse Webhook').item.json.response.view.state.values.folder_name_block.folder_name_input_action.value.replace(/\\s+/g, '_') : $('Parse Webhook').item.json.response.view.state.values.tool_selector.folder_selector.selected_option.value }}*\"\n\t\t\t}\n\t\t},\n\t\t{\n\t\t\t\"type\": \"divider\"\n\t\t},\n\t\t{\n\t\t\t\"type\": \"section\",\n\t\t\t\"text\": {\n\t\t\t\t\"type\": \"mrkdwn\",\n\t\t\t\t\"text\": \"*Here are the file URLs you uploaded:*\"\n\t\t\t}\n\t\t},\n\t\t{{ $('Aggregate').item.json.slackresponse }}\n\t]\n}",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "C081EHWKKH6"
        },
        "messageType": "block",
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "id": "GjRorC99RZt4Wnrp",
          "name": "Image Upload Bot"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "39814189-fbc3-46c0-992a-41623d7d0e7b",
      "name": "Split Out Files",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        140,
        2180
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "response.view.state.values.input_block_file.file_input_action.files"
      },
      "typeVersion": 1
    }
  ],
  "pinData": {
    "Webhook": [
      {
        "body": {
          "payload": "{\"type\":\"view_submission\",\"team\":{\"id\":\"T07JRGYN3KR\",\"domain\":\"n8n-labs\"},\"user\":{\"id\":\"U07K60SESLB\",\"username\":\"angel\",\"name\":\"angel\",\"team_id\":\"T07JRGYN3KR\"},\"api_app_id\":\"A07S1KHUHRD\",\"token\":\"dBcQKoCOKOLa2AkgMZH3EGvt\",\"trigger_id\":\"8124283638884.7637576751671.e215c65a755f3dcb5523094558e07a50\",\"view\":{\"id\":\"V0848FGHQ2C\",\"team_id\":\"T07JRGYN3KR\",\"type\":\"modal\",\"blocks\":[{\"type\":\"section\",\"block_id\":\"greeting_section\",\"text\":{\"type\":\"plain_text\",\"text\":\":wave: Hey there!\\n\\nNeed to upload an image to a public repository? If so, you've come to the right place. Use the form below to upload your images to our public S3 CDN. You will get a message with the link to the file after submission. This tool only accepts .jpg, .png, and .pdf uploads.\",\"emoji\":true}},{\"type\":\"divider\",\"block_id\":\"divider_1\"},{\"type\":\"input\",\"block_id\":\"tool_selector\",\"label\":{\"type\":\"plain_text\",\"text\":\"Folder Selector\",\"emoji\":true},\"optional\":false,\"dispatch_action\":false,\"element\":{\"type\":\"external_select\",\"action_id\":\"folder_selector\",\"placeholder\":{\"type\":\"plain_text\",\"text\":\"Search For Existing Folder Name\",\"emoji\":true}}},{\"type\":\"context\",\"block_id\":\"2nw+9\",\"elements\":[{\"type\":\"plain_text\",\"text\":\"To see all folders, type in 'all'\",\"emoji\":true}]},{\"type\":\"input\",\"block_id\":\"input_block_file\",\"label\":{\"type\":\"plain_text\",\"text\":\"Image File Binary\",\"emoji\":true},\"optional\":false,\"dispatch_action\":false,\"element\":{\"type\":\"file_input\",\"action_id\":\"file_input_action\",\"filetypes\":[\"jpg\",\"jpeg\",\"png\",\"pdf\"],\"max_files\":10,\"max_file_size_bytes\":10000000}},{\"type\":\"context\",\"block_id\":\"PsTmm\",\"elements\":[{\"type\":\"plain_text\",\"text\":\"You can upload up to 10 files at a time.\",\"emoji\":true}]}],\"private_metadata\":\"\",\"callback_id\":\"\",\"state\":{\"values\":{\"tool_selector\":{\"folder_selector\":{\"type\":\"external_select\",\"selected_option\":{\"text\":{\"type\":\"plain_text\",\"text\":\"\\ud83d\\udcc1 test_folder\",\"emoji\":true},\"value\":\"test_folder\"}}},\"input_block_file\":{\"file_input_action\":{\"type\":\"file_input\",\"files\":[{\"id\":\"F0848GKNTB2\",\"created\":1733297013,\"timestamp\":1733297013,\"name\":\"loveslack.png\",\"title\":\"loveslack.png\",\"mimetype\":\"image\\/png\",\"filetype\":\"png\",\"pretty_type\":\"PNG\",\"user\":\"U07K60SESLB\",\"user_team\":\"T07JRGYN3KR\",\"editable\":false,\"size\":31334,\"mode\":\"hosted\",\"is_external\":false,\"external_type\":\"\",\"is_public\":false,\"public_url_shared\":false,\"display_as_bot\":false,\"username\":\"\",\"url_private\":\"https:\\/\\/files.slack.com\\/files-pri\\/T07JRGYN3KR-F0848GKNTB2\\/loveslack.png\",\"url_private_download\":\"https:\\/\\/files.slack.com\\/files-pri\\/T07JRGYN3KR-F0848GKNTB2\\/download\\/loveslack.png\",\"media_display_type\":\"unknown\",\"thumb_64\":\"https:\\/\\/files.slack.com\\/files-tmb\\/T07JRGYN3KR-F0848GKNTB2-930517eeb6\\/loveslack_64.png\",\"thumb_80\":\"https:\\/\\/files.slack.com\\/files-tmb\\/T07JRGYN3KR-F0848GKNTB2-930517eeb6\\/loveslack_80.png\",\"thumb_360\":\"https:\\/\\/files.slack.com\\/files-tmb\\/T07JRGYN3KR-F0848GKNTB2-930517eeb6\\/loveslack_360.png\",\"thumb_360_w\":360,\"thumb_360_h\":360,\"thumb_160\":\"https:\\/\\/files.slack.com\\/files-tmb\\/T07JRGYN3KR-F0848GKNTB2-930517eeb6\\/loveslack_160.png\",\"original_w\":400,\"original_h\":400,\"thumb_tiny\":\"AwAwADDTooqFrhQ+MEgd6BN2JSQoyTgUKwYZBzUVx\\/qtw5A5qqkzbsZwDU31sPSxoUVHCSVOenapKoSdxGO1ST2rPmJ3nHAPNaBAIIPeozAnV+QPWmKSbGWjb4ijDIHH4ULaxplnOQPXoKil1CKMhYxux1I4Ap96nmQCRTkDn6ipaLjHZMVryNThAWHqKsIwdAy9DWXFCzsM\\/KD3NacaCNAo6ChO5c4xWw6q16rtGu0EgHkCrNFMhOzuYptnLZxtU9zWlZjEGwkkLxzU7KrDDDNCqFGFGBQJtt3GCEBs5OPSpKKKSSWw27n\\/2Q==\",\"permalink\":\"https:\\/\\/n8n-labs.slack.com\\/files\\/U07K60SESLB\\/F0848GKNTB2\\/loveslack.png\",\"permalink_public\":\"https:\\/\\/slack-files.com\\/T07JRGYN3KR-F0848GKNTB2-135b89a0c2\",\"comments_count\":0,\"shares\":{},\"channels\":[],\"groups\":[],\"ims\":[],\"has_more_shares\":false,\"has_rich_preview\":false,\"file_access\":\"visible\"}]}}}},\"hash\":\"1733296393.EXon8ZjS\",\"title\":{\"type\":\"plain_text\",\"text\":\"File Upload - Old Folder\",\"emoji\":true},\"clear_on_close\":false,\"notify_on_close\":false,\"close\":{\"type\":\"plain_text\",\"text\":\"Cancel\",\"emoji\":true},\"submit\":{\"type\":\"plain_text\",\"text\":\"Upload\",\"emoji\":true},\"previous_view_id\":\"V083KJV6BDH\",\"root_view_id\":\"V083KJV6BDH\",\"app_id\":\"A07S1KHUHRD\",\"external_id\":\"file_upload_old_folder\",\"app_installed_team_id\":\"T07JRGYN3KR\",\"bot_id\":\"B07SG49L53M\"},\"response_urls\":[],\"is_enterprise_install\":false,\"enterprise\":null}"
        },
        "query": {},
        "params": {},
        "headers": {
          "host": "internal.users.n8n.cloud",
          "accept": "application/json,*/*",
          "x-real-ip": "10.255.0.2",
          "user-agent": "Slackbot 1.0 (+https://api.slack.com/robots)",
          "content-type": "application/x-www-form-urlencoded",
          "content-length": "6177",
          "accept-encoding": "gzip,deflate",
          "x-forwarded-for": "10.255.0.2",
          "x-forwarded-host": "internal.users.n8n.cloud",
          "x-forwarded-port": "443",
          "x-forwarded-proto": "https",
          "x-slack-signature": "v0=33ddc24aff06b872a518fafa28b78939ea0c88696498b5054d2624f096e02293",
          "x-forwarded-server": "076ef9270428",
          "x-slack-request-timestamp": "1733297021"
        },
        "webhookUrl": "https://internal.users.n8n.cloud/webhook/slack-image-upload-bot",
        "executionMode": "production"
      }
    ]
  },
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Parse Webhook",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Aggregate": {
      "main": [
        [
          {
            "node": "Post Image to Channel",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route Action": {
      "main": [
        [
          {
            "node": "Split Out Files",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Parse Webhook": {
      "main": [
        [
          {
            "node": "Route Message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route Message": {
      "main": [
        [
          {
            "node": "Respond to Slack Webhook - Success",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Respond to Slack Webhook - No Action",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Close Modal Popup",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route Message1": {
      "main": [
        [
          {
            "node": "Create Folder",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Select Folder",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Loop Over Items": {
      "main": [
        [
          {
            "node": "No Operation, do nothing",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Download File Binary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Out Files": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "move on to next": {
      "main": [
        [
          {
            "node": "Loop Over Items",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Failure Response": {
      "main": [
        [
          {
            "node": "move on to next",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Success Response": {
      "main": [
        [
          {
            "node": "move on to next",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Close Modal Popup": {
      "main": [
        [
          {
            "node": "Route Action",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Upload to S3 Bucket": {
      "main": [
        [
          {
            "node": "Check if uploaded successfully",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Download File Binary": {
      "main": [
        [
          {
            "node": "Upload to S3 Bucket",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "No Operation, do nothing": {
      "main": [
        [
          {
            "node": "Aggregate",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Check if uploaded successfully": {
      "main": [
        [
          {
            "node": "Success Response",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Failure Response",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Respond to Slack Webhook - Success": {
      "main": [
        [
          {
            "node": "Idea Selector Modal",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Respond to Slack Webhook - No Action": {
      "main": [
        [
          {
            "node": "Route Message1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Workflow n8n Slack, gestion de fichiers, notifications : pour qui est ce workflow ?

Ce workflow s'adresse aux équipes de projet, aux responsables de la communication et aux entreprises qui utilisent Slack pour la collaboration. Il est particulièrement adapté aux organisations de taille moyenne à grande qui cherchent à optimiser leurs processus de gestion de fichiers et de communication interne.

Workflow n8n Slack, gestion de fichiers, notifications : problème résolu

Ce workflow résout le problème de la gestion manuelle des fichiers et des notifications, qui peut être source d'erreurs et de pertes de temps. En automatisant ces processus, les utilisateurs peuvent se concentrer sur des tâches à plus forte valeur ajoutée. De plus, il réduit le risque de non-communication des mises à jour importantes, garantissant que tous les membres de l'équipe sont informés en temps réel.

Workflow n8n Slack, gestion de fichiers, notifications : étapes du workflow

Étape 1 : Le workflow commence par un déclencheur Webhook qui reçoit les données nécessaires.

  • Étape 1 : Les fichiers sont téléchargés via un appel HTTP.
  • Étape 2 : Une fois le téléchargement réussi, le fichier est uploadé sur un bucket S3.
  • Étape 3 : Des notes autocollantes sont créées pour garder une trace des actions effectuées.
  • Étape 4 : Le flux utilise des nœuds de routage pour gérer les différentes actions selon le succès ou l'échec du téléchargement.
  • Étape 5 : Les réponses sont envoyées à Slack pour informer les utilisateurs de l'état de l'opération.

Workflow n8n Slack, gestion de fichiers, notifications : guide de personnalisation

Pour personnaliser ce workflow, vous pouvez modifier l'URL du Webhook pour l'adapter à votre application. Il est également possible de changer le nom du bucket S3 et de spécifier les permissions d'accès. Pour les notifications Slack, ajustez le canal cible et le message envoyé. Vous pouvez également ajouter des nœuds supplémentaires pour intégrer d'autres services ou modifier les conditions de routage selon vos besoins spécifiques.