Gestion centralisée des chats WhatsApp dans Slack

Avancé

Ceci est unSupportworkflow d'automatisation du domainecontenant 20 nœuds.Utilise principalement des nœuds comme Slack, Filter, Switch, WhatsApp, HttpRequest. 在Slack中集中gestionWhatsAppchat

Prérequis
  • Token Bot Slack ou URL Webhook
  • Peut nécessiter les informations d'identification d'authentification de l'API cible

Catégorie

Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "meta": {
    "instanceId": "4e229722e6c43a4914d2d66178b48335adf795d73afbee5b0ea0c52938ef4d8e"
  },
  "nodes": [
    {
      "id": "30fcebd0-d271-47ee-98e7-e1c9db4ae1f1",
      "name": "WhatsApp Trigger",
      "type": "n8n-nodes-base.whatsAppTrigger",
      "position": [
        -2740,
        120
      ],
      "webhookId": "864469fd-2008-445c-83fe-852dac2b236a",
      "parameters": {
        "options": {},
        "updates": [
          "messages"
        ]
      },
      "credentials": {
        "whatsAppTriggerApi": {
          "id": "a41n62XWot5Pm1XE",
          "name": "WhatsApp OAuth account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "a71a46a0-72c6-43d3-a001-b9a2f57da8f5",
      "name": "Envoyer un message dans le canal",
      "type": "n8n-nodes-base.slack",
      "position": [
        -1640,
        -180
      ],
      "webhookId": "34b58325-6711-42c5-802f-177047c02da1",
      "parameters": {
        "text": "={{ $('WhatsApp Trigger').item.json.messages[0].text.body }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.id }}"
        },
        "otherOptions": {
          "includeLinkToWorkflow": false
        }
      },
      "credentials": {
        "slackApi": {
          "id": "5PavU8rt9kHN9pW4",
          "name": "n8n user"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "aef4c666-5e07-4692-b9f1-4049bb06e6c8",
      "name": "Slack Trigger",
      "type": "n8n-nodes-base.slackTrigger",
      "position": [
        -2700,
        920
      ],
      "webhookId": "88033a8d-c5a4-4226-a742-909e005bb5b3",
      "parameters": {
        "options": {},
        "trigger": [
          "message"
        ],
        "watchWorkspace": true
      },
      "credentials": {
        "slackApi": {
          "id": "5PavU8rt9kHN9pW4",
          "name": "n8n user"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "b665feac-c851-4463-851f-f723a940ce80",
      "name": "Type de message",
      "type": "n8n-nodes-base.switch",
      "position": [
        -1860,
        99
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "text",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "668fdd23-fb5c-4473-b34f-15157b2059f9",
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('WhatsApp Trigger').item.json.messages[0].type }}",
                    "rightValue": "text"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "audio",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "25381929-f26b-446e-a460-baee6b2a420e",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('WhatsApp Trigger').item.json.messages[0].type }}",
                    "rightValue": "audio"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "image",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "2dbde15e-324c-46f8-82e8-ccd8084e5718",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('WhatsApp Trigger').item.json.messages[0].type }}",
                    "rightValue": "image"
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "document",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "b5ed8fb5-0519-4245-81c4-84139e4b14c0",
                    "operator": {
                      "name": "filter.operator.equals",
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $('WhatsApp Trigger').item.json.messages[0].type }}",
                    "rightValue": "document"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "bbe095f2-914f-41b9-ad69-b47d0217e392",
      "name": "Obtenir l'URL audio",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        -1640,
        20
      ],
      "webhookId": "cc335545-7c02-4d40-a751-0eccaaf8b3f7",
      "parameters": {
        "resource": "media",
        "operation": "mediaUrlGet",
        "mediaGetId": "={{ $('WhatsApp Trigger').item.json.messages[0].audio.id }}"
      },
      "credentials": {
        "whatsAppApi": {
          "id": "yVJyvYLlRszyE5sV",
          "name": "WhatsApp account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c645ad49-d722-47fe-9b1e-c8685f0322ea",
      "name": "Obtenir l'URL du document",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        -1640,
        420
      ],
      "webhookId": "b052dd6a-55b8-4195-a64e-c0088b7419cc",
      "parameters": {
        "resource": "media",
        "operation": "mediaUrlGet",
        "mediaGetId": "={{ $('WhatsApp Trigger').item.json.messages[0].document.id }}"
      },
      "credentials": {
        "whatsAppApi": {
          "id": "yVJyvYLlRszyE5sV",
          "name": "WhatsApp account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "2c5eb333-0d26-4ce4-b4ac-a94e183d910c",
      "name": "Obtenir l'URL de l'image",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        -1640,
        220
      ],
      "webhookId": "57b20ff1-0931-4eaf-8582-d0eec8bb8ad6",
      "parameters": {
        "resource": "media",
        "operation": "mediaUrlGet",
        "mediaGetId": "={{ $('WhatsApp Trigger').item.json.messages[0].image.id }}"
      },
      "credentials": {
        "whatsAppApi": {
          "id": "yVJyvYLlRszyE5sV",
          "name": "WhatsApp account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "78012279-114e-4b8c-bd18-3e33d537c7c8",
      "name": "Créer un canal",
      "type": "n8n-nodes-base.slack",
      "onError": "continueRegularOutput",
      "position": [
        -2520,
        120
      ],
      "webhookId": "233813f2-e7d7-4e00-bcf0-a97bdefd4a9e",
      "parameters": {
        "resource": "channel",
        "channelId": "={{ $('WhatsApp Trigger').item.json.messages[0].from }}",
        "channelVisibility": "private"
      },
      "credentials": {
        "slackApi": {
          "id": "5PavU8rt9kHN9pW4",
          "name": "n8n user"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "9413ee28-9b92-409a-807a-38b1139cd837",
      "name": "Obtenir tous les canaux",
      "type": "n8n-nodes-base.slack",
      "position": [
        -2300,
        120
      ],
      "webhookId": "56a4374b-19ac-453e-b6fa-4ae9f1dc7650",
      "parameters": {
        "filters": {
          "types": [
            "private_channel"
          ]
        },
        "resource": "channel",
        "operation": "getAll",
        "returnAll": true
      },
      "credentials": {
        "slackApi": {
          "id": "5PavU8rt9kHN9pW4",
          "name": "n8n user"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "40d09c7b-aeb2-491f-864e-b92023dc8e57",
      "name": "Filtrer le canal par nom",
      "type": "n8n-nodes-base.filter",
      "position": [
        -2080,
        120
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "or",
          "conditions": [
            {
              "id": "586f6026-e893-46f8-ac89-4b16db24339a",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $json.name }}",
              "rightValue": "={{ $('WhatsApp Trigger').item.json.messages[0].from }}"
            }
          ]
        }
      },
      "retryOnFail": false,
      "typeVersion": 2.2
    },
    {
      "id": "f0ed5738-9442-42a9-bc76-bd71eaf2fb5b",
      "name": "Télécharger un média",
      "type": "n8n-nodes-base.slack",
      "position": [
        -1200,
        220
      ],
      "webhookId": "88e62808-3455-4e17-9a9b-9a21216c8daa",
      "parameters": {
        "options": {
          "channelId": "={{ $('Message Type').item.json.id }}"
        },
        "resource": "file"
      },
      "credentials": {
        "slackApi": {
          "id": "5PavU8rt9kHN9pW4",
          "name": "n8n user"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "6a749b7b-78c0-4462-9019-f059d0845382",
      "name": "Télécharger le média",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1420,
        220
      ],
      "parameters": {
        "url": "={{ $json.url }}",
        "options": {
          "response": {
            "response": {}
          }
        },
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "Ihwbk0P1mYkOZZlr",
          "name": "Whatsapp APi Token"
        },
        "httpHeaderAuth": {
          "id": "Rymur2oAzX9lewU9",
          "name": "Whatsapp API Token"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "66423f74-1ce5-44e2-8b41-2dcb6d22b1a9",
      "name": "Obtenir le canal par ID",
      "type": "n8n-nodes-base.slack",
      "position": [
        -2480,
        920
      ],
      "webhookId": "dfd24042-e341-4123-acb5-61a07e888431",
      "parameters": {
        "options": {},
        "resource": "channel",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.channel }}"
        },
        "operation": "get"
      },
      "credentials": {
        "slackApi": {
          "id": "5PavU8rt9kHN9pW4",
          "name": "n8n user"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "5587398a-5a6b-48b4-b056-1ef2ae40aaae",
      "name": "Vérification du type de message",
      "type": "n8n-nodes-base.switch",
      "position": [
        -2260,
        920
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "media",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "7e42c494-a9eb-45ea-86cc-8a1e1d100fe1",
                    "operator": {
                      "type": "array",
                      "operation": "notEmpty",
                      "singleValue": true
                    },
                    "leftValue": "={{ $('Slack Trigger').item.json.files }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            },
            {
              "outputKey": "text",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "id": "f1f5bbbd-5536-4a8c-9c93-910cf51b1847",
                    "operator": {
                      "type": "string",
                      "operation": "notEmpty",
                      "singleValue": true
                    },
                    "leftValue": "={{ $('Slack Trigger').item.json.text }}",
                    "rightValue": ""
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "00abbd13-b397-4a8b-ac9a-5f4c7bb37823",
      "name": "Envoyer un message",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        -2040,
        1020
      ],
      "webhookId": "296d05b6-53d0-4391-9a01-17d738889eba",
      "parameters": {
        "textBody": "={{ $('Slack Trigger').item.json.blocks[0].elements[0].elements[0].text }}",
        "operation": "send",
        "phoneNumberId": "=674099929114802",
        "additionalFields": {},
        "recipientPhoneNumber": "={{ $('Get Channel by ID').item.json.name }}"
      },
      "credentials": {
        "whatsAppApi": {
          "id": "yVJyvYLlRszyE5sV",
          "name": "WhatsApp account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "52c609ed-0085-4762-badc-5fab0e526dfe",
      "name": "Obtenir l'URL du média",
      "type": "n8n-nodes-base.slack",
      "position": [
        -2040,
        820
      ],
      "webhookId": "693b6769-065e-4fb3-9548-2f37faeadc21",
      "parameters": {
        "fileId": "={{ $('Slack Trigger').item.json.files[0].id }}",
        "resource": "file",
        "operation": "get"
      },
      "credentials": {
        "slackApi": {
          "id": "5PavU8rt9kHN9pW4",
          "name": "n8n user"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "f8d972de-add6-4858-abe8-d13ceebee263",
      "name": "Télécharger le média",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1820,
        820
      ],
      "parameters": {
        "url": "={{ $json.url_private_download }}",
        "options": {
          "response": {
            "response": {}
          }
        },
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth"
      },
      "credentials": {
        "httpHeaderAuth": {
          "id": "TTp4u7ld1rzfYb3s",
          "name": "Slack n8n"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "1552ab2b-d8c4-4324-a1a2-4a27e981f292",
      "name": "Envoyer un message1",
      "type": "n8n-nodes-base.whatsApp",
      "position": [
        -1600,
        820
      ],
      "webhookId": "dd7a6617-6a3f-4312-9b1c-b924260026a7",
      "parameters": {
        "mediaPath": "useMedian8n",
        "operation": "send",
        "messageType": "document",
        "phoneNumberId": "=674099929114802",
        "additionalFields": {},
        "recipientPhoneNumber": "={{ $('Get Channel by ID').item.json.name }}"
      },
      "credentials": {
        "whatsAppApi": {
          "id": "yVJyvYLlRszyE5sV",
          "name": "WhatsApp account"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "592dd9e2-8b95-420a-910d-f6f3a5bd583e",
      "name": "Note autocollante",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2840,
        620
      ],
      "parameters": {
        "width": 1860,
        "height": 560,
        "content": "## Slack to WhatsApp Flow\n- Trigger: Slack Trigger listens for Slack messages (text or media).\n- Message Type Handling: Checking Message Type uses a Switch to determine whether it’s text or media.\n- Text Handling: Extracts text and sends it back to WhatsApp via Send Message.\n- Media Handling: Gets media URL (Get Media URL).\n- Downloads the file (Download Media) and (presumably in the missing portion) sends it to WhatsApp as a document/media."
      },
      "typeVersion": 1
    },
    {
      "id": "23ee1ef0-ad8d-4c4a-8558-40bcbbfb1406",
      "name": "Note autocollante1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2840,
        -200
      ],
      "parameters": {
        "width": 1860,
        "height": 780,
        "content": "## WhatsApp to Slack Flow\n- Trigger: WhatsApp Trigger listens for new WhatsApp messages.\n- Message Type Routing: Message Type node uses a Switch to check if the message is text, audio, image, or document.\n- Slack Channel Management: Checks if a private Slack channel already exists for the WhatsApp contact (from field).\n- If not, creates one using Create Channel.\n- Media Processing (for non-text): Gets WhatsApp media URL via get audio/image/document URL.\n- Downloads it (download media) and uploads to Slack using upload media.\n- Text Handling: For text, sends message directly to Slack using Send Message in Channel."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "b665feac-c851-4463-851f-f723a940ce80": {
      "main": [
        [
          {
            "node": "a71a46a0-72c6-43d3-a001-b9a2f57da8f5",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "bbe095f2-914f-41b9-ad69-b47d0217e392",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "2c5eb333-0d26-4ce4-b4ac-a94e183d910c",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "c645ad49-d722-47fe-9b1e-c8685f0322ea",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "52c609ed-0085-4762-badc-5fab0e526dfe": {
      "main": [
        [
          {
            "node": "f8d972de-add6-4858-abe8-d13ceebee263",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "aef4c666-5e07-4692-b9f1-4049bb06e6c8": {
      "main": [
        [
          {
            "node": "66423f74-1ce5-44e2-8b41-2dcb6d22b1a9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bbe095f2-914f-41b9-ad69-b47d0217e392": {
      "main": [
        [
          {
            "node": "f8d972de-add6-4858-abe8-d13ceebee263",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2c5eb333-0d26-4ce4-b4ac-a94e183d910c": {
      "main": [
        [
          {
            "node": "f8d972de-add6-4858-abe8-d13ceebee263",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "78012279-114e-4b8c-bd18-3e33d537c7c8": {
      "main": [
        [
          {
            "node": "9413ee28-9b92-409a-807a-38b1139cd837",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "f8d972de-add6-4858-abe8-d13ceebee263": {
      "main": [
        [
          {
            "node": "f0ed5738-9442-42a9-bc76-bd71eaf2fb5b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "30fcebd0-d271-47ee-98e7-e1c9db4ae1f1": {
      "main": [
        [
          {
            "node": "78012279-114e-4b8c-bd18-3e33d537c7c8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9413ee28-9b92-409a-807a-38b1139cd837": {
      "main": [
        [
          {
            "node": "40d09c7b-aeb2-491f-864e-b92023dc8e57",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c645ad49-d722-47fe-9b1e-c8685f0322ea": {
      "main": [
        [
          {
            "node": "f8d972de-add6-4858-abe8-d13ceebee263",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "66423f74-1ce5-44e2-8b41-2dcb6d22b1a9": {
      "main": [
        [
          {
            "node": "5587398a-5a6b-48b4-b056-1ef2ae40aaae",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "5587398a-5a6b-48b4-b056-1ef2ae40aaae": {
      "main": [
        [
          {
            "node": "52c609ed-0085-4762-badc-5fab0e526dfe",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "00abbd13-b397-4a8b-ac9a-5f4c7bb37823",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "40d09c7b-aeb2-491f-864e-b92023dc8e57": {
      "main": [
        [
          {
            "node": "b665feac-c851-4463-851f-f723a940ce80",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Avancé - Support

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Informations sur le workflow
Niveau de difficulté
Avancé
Nombre de nœuds20
Catégorie1
Types de nœuds8
Description de la difficulté

Adapté aux utilisateurs avancés, avec des workflows complexes contenant 16+ nœuds

Auteur
Usman Liaqat

Usman Liaqat

@usmanliaqat

Full Stack Website Developer & Automation Expert

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34