Publication automatisée de posts LinkedIn avec approbation IA et Slack

Avancé

Ceci est unAI, Marketingworkflow d'automatisation du domainecontenant 32 nœuds.Utilise principalement des nœuds comme If, Set, Code, Limit, Slack, combinant la technologie d'intelligence artificielle pour une automatisation intelligente. Automatisation de publications LinkedIn : génération par IA (GPT-4o) et approbation Slack

Prérequis
  • Token Bot Slack ou URL Webhook
  • Point de terminaison HTTP Webhook (généré automatiquement par n8n)
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Informations d'identification Google Sheets API
  • Clé API OpenAI
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
{
  "id": "YOUR_WORKFLOW_ID",
  "meta": {
    "instanceId": "YOUR_INSTANCE_ID",
    "templateCredsSetupCompleted": true
  },
  "name": "LinkedIn Post Automation with AI & Slack Approval",
  "tags": [],
  "nodes": [
    {
      "id": "workflow-overview-linkedin",
      "name": "Aperçu du workflow",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1050,
        -450
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "sheets-trigger-note",
      "name": "Infos du déclencheur Sheets",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -750,
        -400
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "ai-generation-note",
      "name": "Génération IA",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        130,
        -400
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "slack-approval-note",
      "name": "Approbation Slack",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        730,
        -380
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "webhook-handler-note",
      "name": "Gestionnaire Webhook",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -750,
        -800
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "image-upload-note",
      "name": "Processus de téléchargement d'image",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        950,
        -800
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "linkedin-publish-note",
      "name": "Publication LinkedIn",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1450,
        -780
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "status-update-note",
      "name": "Mise à jour du statut",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2110,
        -900
      ],
      "parameters": {
        "content": ""
      },
      "typeVersion": 1
    },
    {
      "id": "0cd3e628-1720-49f7-9280-a1039d2c2ca9",
      "name": "Limite",
      "type": "n8n-nodes-base.limit",
      "notes": "Processes one item at a time to prevent API overload",
      "position": [
        -260,
        -180
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "c36d36d6-0035-49ac-a757-4598d56e574e",
      "name": "Analyseur de sortie structurée",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        328,
        40
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "9f521172-07f4-4a17-b358-bd998e9a9d02",
      "name": "Modèle de chat OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        208,
        40
      ],
      "parameters": {},
      "typeVersion": 1.2
    },
    {
      "id": "09b0b22f-eb64-468f-85b0-1c9a0608631e",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "notes": "Receives approval responses - ensure URL is configured in Slack app",
      "position": [
        -700,
        -590
      ],
      "webhookId": "YOUR_WEBHOOK_ID",
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "4e2954d7-e4de-48bf-a974-5ec80c7b7b0c",
      "name": "Sujet de publication Linkedin",
      "type": "n8n-nodes-base.googleSheetsTrigger",
      "notes": "Triggers every minute for new posts in your spreadsheet",
      "position": [
        -700,
        -180
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "47c4cdd0-48ef-4e41-996b-ed29811b092e",
      "name": "Valider-statut",
      "type": "n8n-nodes-base.if",
      "notes": "Filters to process only 'Pending' items - prevents duplicates",
      "position": [
        -480,
        -180
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "908eee31-78eb-482c-b331-2d3467d56b0d",
      "name": "Créateur de publication LinkedIn",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "notes": "Uses GPT-4 to generate LinkedIn content - customize prompt for your brand voice",
      "position": [
        180,
        -180
      ],
      "parameters": {},
      "typeVersion": 1.9
    },
    {
      "id": "882d6e5c-a7f0-425f-a501-1f7179f8857b",
      "name": "Formater-contenu",
      "type": "n8n-nodes-base.code",
      "notes": "Formats content for Slack display - handles special characters and newlines",
      "position": [
        556,
        -180
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "31aea874-516c-47c7-9c5f-bde873faae4d",
      "name": "Approbation-sur-Slack",
      "type": "n8n-nodes-base.slack",
      "notes": "Sends for human review - edit the Slack user to change approver",
      "position": [
        780,
        -180
      ],
      "webhookId": "YOUR_SLACK_WEBHOOK_ID",
      "parameters": {},
      "notesInFlow": true,
      "typeVersion": 2.3
    },
    {
      "id": "8592224a-0370-48c3-b803-fe3653284545",
      "name": "Formater-réponse",
      "type": "n8n-nodes-base.code",
      "notes": "Extracts edited content from Slack response",
      "position": [
        -260,
        -590
      ],
      "parameters": {},
      "typeVersion": 2
    },
    {
      "id": "2c503653-e3b6-4229-a733-25fa666ba85a",
      "name": "Valider-réponse",
      "type": "n8n-nodes-base.if",
      "notes": "Ensures response contains content before proceeding",
      "position": [
        -40,
        -590
      ],
      "parameters": {},
      "typeVersion": 2.2
    },
    {
      "id": "be68592f-f6a8-4698-8343-58d439eed3ac",
      "name": "Définir-message-final",
      "type": "n8n-nodes-base.set",
      "notes": "Prepares approved content for publishing",
      "position": [
        180,
        -590
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "4ec34acf-1704-4fd7-b14d-680409acbeda",
      "name": "Détails utilisateur Linkedin",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Fetches LinkedIn user ID for post attribution",
      "position": [
        400,
        -580
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "78293261-7fbd-4757-8353-c2275ba2089a",
      "name": "Publication Linkedin",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Publishes to your profile - update with your LinkedIn credentials",
      "position": [
        1500,
        -590
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "54ee84f1-42e2-4f25-96a4-958b27f798f4",
      "name": "Obtenir-ID-groupe",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Retrieves LinkedIn group IDs from Groups sheet",
      "position": [
        1720,
        -590
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "4e3e1fc5-a0ae-469f-8399-79b9bf98ff41",
      "name": "Sélectionner un par un",
      "type": "n8n-nodes-base.splitInBatches",
      "notes": "Processes groups one at a time to avoid rate limits",
      "position": [
        1940,
        -590
      ],
      "parameters": {},
      "typeVersion": 3
    },
    {
      "id": "7309d6c0-bfec-4d06-b3c3-5b05ccab6df3",
      "name": "Publier-groupes-Linkedin",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Posts to multiple groups - add group IDs in Groups sheet",
      "onError": "continueRegularOutput",
      "position": [
        2160,
        -540
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "63b25ac7-e5dc-4836-96cf-5767b57c7784",
      "name": "Mettre-à-jour-statut",
      "type": "n8n-nodes-base.googleSheets",
      "notes": "Marks as 'Posted' to prevent reprocessing",
      "position": [
        2160,
        -740
      ],
      "parameters": {},
      "typeVersion": 4.5
    },
    {
      "id": "348ca4b6-fbb0-4a07-9c3d-9a581b95c7fe",
      "name": "Enregistrer l'image",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Initiates LinkedIn media upload - requires valid image URL from sheet",
      "position": [
        620,
        -580
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "2dfdfc17-78f7-488b-82f2-cb229488062f",
      "name": "Télécharger-données-image",
      "type": "n8n-nodes-base.set",
      "notes": "Extracts upload URL and asset ID from LinkedIn response",
      "position": [
        840,
        -580
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "a68a5ba8-8913-455f-9893-12013322e9c0",
      "name": "Obtenir binaire image",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Downloads image from URL specified in spreadsheet",
      "position": [
        1060,
        -590
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "37cfc754-d66f-43f8-b881-4b5f0e927fa2",
      "name": "Télécharger image",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Uploads image binary to LinkedIn servers",
      "position": [
        1280,
        -590
      ],
      "parameters": {},
      "typeVersion": 4.2
    },
    {
      "id": "c67c5ae9-c0c0-4400-a5ed-c2f96842e24d",
      "name": "Modifier les champs",
      "type": "n8n-nodes-base.set",
      "notes": "Extracts post ID for tracking through workflow",
      "position": [
        -40,
        -180
      ],
      "parameters": {},
      "typeVersion": 3.4
    },
    {
      "id": "8202c5f6-aa24-44d9-989e-b67d0c481e17",
      "name": "Définir sujets et images pour traitement",
      "type": "n8n-nodes-base.code",
      "notes": "Extracts post ID and image URL from Slack approval response",
      "position": [
        -480,
        -600
      ],
      "parameters": {},
      "typeVersion": 2
    }
  ],
  "active": false,
  "pinData": {
    "Webhook": [
      {
        "json": {
          "body": {
            "payload": "{'type':'block_actions','user':{'id':'USER_ID','username':'username','name':'user.name','team_id':'TEAM_ID'},'api_app_id':'APP_ID','token':'TOKEN','container':{'type':'message','message_ts':'1234567890.123456','channel_id':'CHANNEL_ID','is_ephemeral':false},'trigger_id':'1234567890123.1234567890123.abcdef1234567890abcdef1234567890','team':{'id':'TEAM_ID','domain':'team-domain'},'enterprise':null,'is_enterprise_install':false,'channel':{'id':'CHANNEL_ID','name':'directmessage'},'message':{'user':'BOT_USER_ID','type':'message','ts':'1234567890.123456','bot_id':'BOT_ID','app_id':'APP_ID','text':'*Content Review Request*\\nPlease review the following content: :mag: Sample LinkedIn post content here...\\n\\n#SampleHashtag #LinkedInPost #Automation','team':'TEAM_ID','blocks':[{'type':'section','block_id':'BLOCK_1','text':{'type':'mrkdwn','text':'*Content Review Request*\\nPlease review the following content:','verbatim':false}},{'type':'section','block_id':'BLOCK_2','text':{'type':'mrkdwn','text':':mag: Sample LinkedIn post content here...\\n\\n#SampleHashtag #LinkedInPost #Automation','verbatim':false}},{'type':'input','block_id':'INPUT_BLOCK','label':{'type':'plain_text','text':'Edit content if needed:','emoji':true},'optional':false,'dispatch_action':false,'element':{'type':'plain_text_input','action_id':'content_input','initial_value':'Sample LinkedIn post content here...\\n\\n#SampleHashtag #LinkedInPost #Automation','multiline':true,'dispatch_action_config':{'trigger_actions_on':['on_enter_pressed']}}},{'type':'actions','block_id':'ACTION_BLOCK','elements':[{'type':'button','action_id':'approve_button','text':{'type':'plain_text','text':'Approve As Is','emoji':true},'style':'primary','value':'approve'},{'type':'button','action_id':'edit_button','text':{'type':'plain_text','text':'Submit Edited Version','emoji':true},'style':'danger','value':'edit'}]},{'type':'section','block_id':'FOOTER_BLOCK','text':{'type':'mrkdwn','text':'_Automated with this n8n workflow_','verbatim':false}}]},'state':{'values':{'INPUT_BLOCK':{'content_input':{'type':'plain_text_input','value':'Sample LinkedIn post content here...\\n\\n#SampleHashtag #LinkedInPost #Automation'}}}},'response_url':'https://hooks.slack.com/actions/TEAM_ID/ACTION_ID/TOKEN','actions':[{'action_id':'approve_button','block_id':'ACTION_BLOCK','text':{'type':'plain_text','text':'Approve As Is','emoji':true},'value':'approve','style':'primary','type':'button','action_ts':'1234567890.123456'}]}"
          },
          "query": {},
          "params": {},
          "headers": {
            "host": "YOUR_N8N_HOST",
            "accept": "application/json,*/*",
            "cf-ray": "CF_RAY_ID",
            "cdn-loop": "cloudflare; loops=1; subreqs=1",
            "cf-ew-via": "15",
            "cf-worker": "n8n.cloud",
            "x-real-ip": "REAL_IP",
            "cf-visitor": "{\"scheme\":\"https\"}",
            "user-agent": "Slackbot 1.0 (+https://api.slack.com/robots)",
            "cf-ipcountry": "US",
            "content-type": "application/x-www-form-urlencoded",
            "x-is-trusted": "yes",
            "content-length": "12089",
            "accept-encoding": "gzip, br",
            "x-forwarded-for": "IP_Address_1, IP_Address_2",
            "cf-connecting-ip": "54.224.31.149",
            "x-forwarded-host": "N8N_HOST",
            "x-forwarded-port": "443",
            "x-forwarded-proto": "https",
            "x-slack-signature": "SIGNATURE",
            "x-forwarded-server": "SERVER_NAME",
            "x-slack-request-timestamp": "TIMESTAMP"
          },
          "webhookUrl": "WEBHOOK_URL",
          "executionMode": "production"
        }
      }
    ]
  },
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "YOUR_VERSION_ID",
  "connections": {
    "0cd3e628-1720-49f7-9280-a1039d2c2ca9": {
      "main": [
        [
          {
            "node": "c67c5ae9-c0c0-4400-a5ed-c2f96842e24d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "09b0b22f-eb64-468f-85b0-1c9a0608631e": {
      "main": [
        [
          {
            "node": "8202c5f6-aa24-44d9-989e-b67d0c481e17",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c67c5ae9-c0c0-4400-a5ed-c2f96842e24d": {
      "main": [
        [
          {
            "node": "908eee31-78eb-482c-b331-2d3467d56b0d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4e3e1fc5-a0ae-469f-8399-79b9bf98ff41": {
      "main": [
        [
          {
            "node": "63b25ac7-e5dc-4836-96cf-5767b57c7784",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "7309d6c0-bfec-4d06-b3c3-5b05ccab6df3",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "54ee84f1-42e2-4f25-96a4-958b27f798f4": {
      "main": [
        [
          {
            "node": "4e3e1fc5-a0ae-469f-8399-79b9bf98ff41",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "37cfc754-d66f-43f8-b881-4b5f0e927fa2": {
      "main": [
        [
          {
            "node": "78293261-7fbd-4757-8353-c2275ba2089a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "78293261-7fbd-4757-8353-c2275ba2089a": {
      "main": [
        [
          {
            "node": "54ee84f1-42e2-4f25-96a4-958b27f798f4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "63b25ac7-e5dc-4836-96cf-5767b57c7784": {
      "main": [
        []
      ]
    },
    "882d6e5c-a7f0-425f-a501-1f7179f8857b": {
      "main": [
        [
          {
            "node": "31aea874-516c-47c7-9c5f-bde873faae4d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "348ca4b6-fbb0-4a07-9c3d-9a581b95c7fe": {
      "main": [
        [
          {
            "node": "2dfdfc17-78f7-488b-82f2-cb229488062f",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8592224a-0370-48c3-b803-fe3653284545": {
      "main": [
        [
          {
            "node": "2c503653-e3b6-4229-a733-25fa666ba85a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "47c4cdd0-48ef-4e41-996b-ed29811b092e": {
      "main": [
        [
          {
            "node": "0cd3e628-1720-49f7-9280-a1039d2c2ca9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a68a5ba8-8913-455f-9893-12013322e9c0": {
      "main": [
        [
          {
            "node": "37cfc754-d66f-43f8-b881-4b5f0e927fa2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "31aea874-516c-47c7-9c5f-bde873faae4d": {
      "main": [
        []
      ]
    },
    "9f521172-07f4-4a17-b358-bd998e9a9d02": {
      "ai_languageModel": [
        [
          {
            "node": "908eee31-78eb-482c-b331-2d3467d56b0d",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "be68592f-f6a8-4698-8343-58d439eed3ac": {
      "main": [
        [
          {
            "node": "4ec34acf-1704-4fd7-b14d-680409acbeda",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2dfdfc17-78f7-488b-82f2-cb229488062f": {
      "main": [
        [
          {
            "node": "a68a5ba8-8913-455f-9893-12013322e9c0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "2c503653-e3b6-4229-a733-25fa666ba85a": {
      "main": [
        [
          {
            "node": "be68592f-f6a8-4698-8343-58d439eed3ac",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4e2954d7-e4de-48bf-a974-5ec80c7b7b0c": {
      "main": [
        [
          {
            "node": "47c4cdd0-48ef-4e41-996b-ed29811b092e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "908eee31-78eb-482c-b331-2d3467d56b0d": {
      "main": [
        [
          {
            "node": "882d6e5c-a7f0-425f-a501-1f7179f8857b",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "4ec34acf-1704-4fd7-b14d-680409acbeda": {
      "main": [
        [
          {
            "node": "348ca4b6-fbb0-4a07-9c3d-9a581b95c7fe",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "7309d6c0-bfec-4d06-b3c3-5b05ccab6df3": {
      "main": [
        [
          {
            "node": "4e3e1fc5-a0ae-469f-8399-79b9bf98ff41",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c36d36d6-0035-49ac-a757-4598d56e574e": {
      "ai_outputParser": [
        [
          {
            "node": "908eee31-78eb-482c-b331-2d3467d56b0d",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "8202c5f6-aa24-44d9-989e-b67d0c481e17": {
      "main": [
        [
          {
            "node": "8592224a-0370-48c3-b803-fe3653284545",
            "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é - Intelligence Artificielle, Marketing

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œuds32
Catégorie2
Types de nœuds14
Description de la difficulté

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

Auteur
Amit Mehta

Amit Mehta

@amitswba

I'm a workflow automation expert with 15+ years in IT industry. I build smart, scalable n8n workflows for AI automation, marketing, CRM, and SaaS integrations. My focus is on simplifying business processes with tools like OpenAI, WhatsApp, Gmail, and Airtable. I help teams and solopreneurs automate smarter, reduce manual tasks, and grow faster—one workflow at a time.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34