Génération automatisée de propositions

Intermédiaire

Ceci est unCRM, Multimodal AIworkflow d'automatisation du domainecontenant 7 nœuds.Utilise principalement des nœuds comme Airtable, GoogleDrive, GoogleSlides, OpenAi, ChatTrigger. Utiliser IA, Google Slides et Airtable pour générer des propositions clients à partir d'enregistrements d'appels

Prérequis
  • Clé API Airtable
  • Informations d'identification Google Drive 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": "otddSxeWQtI5yxc7",
  "meta": {
    "instanceId": "e73c77a832a4af1fdbfd95e61201dd65dffb85871e88031e3f1475c5661e7b54",
    "templateCredsSetupCompleted": true
  },
  "name": "proposal generation on autopilot",
  "tags": [],
  "nodes": [
    {
      "id": "add01d77-c169-41f9-9bce-51462e2a44ab",
      "name": "Remplacer le texte dans une présentation",
      "type": "n8n-nodes-base.googleSlides",
      "position": [
        1024,
        0
      ],
      "parameters": {
        "textUi": {
          "textValues": [
            {
              "text": "{Company Name}",
              "replaceText": "={{ $('Message a model').item.json.message.content.company }}",
              "pageObjectIds": [
                "p"
              ]
            },
            {
              "text": "{client}",
              "replaceText": "={{ $('Message a model').item.json.message.content.client }}",
              "pageObjectIds": [
                "p"
              ]
            },
            {
              "text": "{project_title}",
              "replaceText": "={{ $('Message a model').item.json.message.content.project_title }}",
              "pageObjectIds": [
                "g1f88252dc4_0_83"
              ]
            },
            {
              "text": "{Goals}",
              "replaceText": "={{ $('Message a model').item.json.message.content.goals }}",
              "pageObjectIds": [
                "g1f88252dc4_0_83"
              ]
            },
            {
              "text": "{deliverables}",
              "replaceText": "={{ $('Message a model').item.json.message.content.deliverables }}",
              "pageObjectIds": [
                "g1f88252dc4_0_83"
              ]
            },
            {
              "text": "{timeline}",
              "replaceText": "={{ $('Message a model').item.json.message.content.timeline_weeks }}",
              "pageObjectIds": [
                "g3643e9e2554_0_12"
              ]
            },
            {
              "text": "{budget}",
              "replaceText": "={{ $('Message a model').item.json.message.content.budget_usd }}",
              "pageObjectIds": [
                "g3643e9e2554_0_12"
              ]
            }
          ]
        },
        "options": {},
        "operation": "replaceText",
        "presentationId": "={{ $json.id }}"
      },
      "credentials": {
        "googleSlidesOAuth2Api": {
          "id": "b1bhhccZCOnXFEVb",
          "name": "Google Slides account"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "41fe6c9c-88bd-4c36-a64c-7dac0268e456",
      "name": "Copier le fichier",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        816,
        0
      ],
      "parameters": {
        "name": "={{ $json.message.content.company }} proposal",
        "fileId": {
          "__rl": true,
          "mode": "list",
          "value": "11FCrQCmvjck3eKHMGeDF0wGf0TDyUB78FLsyR0graKI",
          "cachedResultUrl": "https://docs.google.com/presentation/d/11FCrQCmvjck3eKHMGeDF0wGf0TDyUB78FLsyR0graKI/edit?usp=drivesdk",
          "cachedResultName": "Consulting proposal"
        },
        "options": {},
        "operation": "copy"
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "JB10qqMjiksmdbv3",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "9e79d395-57f9-4afb-9d35-75dda74e6561",
      "name": "Partager le fichier",
      "type": "n8n-nodes-base.googleDrive",
      "position": [
        1232,
        0
      ],
      "parameters": {
        "fileId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ $json.presentationId }}"
        },
        "options": {},
        "operation": "share",
        "permissionsUi": {
          "permissionsValues": {
            "role": "reader",
            "type": "user",
            "emailAddress": "={{ $('Message a model').item.json.message.content.email }}"
          }
        }
      },
      "credentials": {
        "googleDriveOAuth2Api": {
          "id": "JB10qqMjiksmdbv3",
          "name": "Google Drive account"
        }
      },
      "typeVersion": 3
    },
    {
      "id": "0579e838-85ac-4cae-a7d4-c2c42203a47e",
      "name": "Mettre à jour l'enregistrement",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1440,
        0
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appZS6usU96byHXU3",
          "cachedResultUrl": "https://airtable.com/appZS6usU96byHXU3",
          "cachedResultName": "New Lead"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tblROcPRoSG3aMwhT",
          "cachedResultUrl": "https://airtable.com/appZS6usU96byHXU3/tblROcPRoSG3aMwhT",
          "cachedResultName": "New Leads Pipeline"
        },
        "columns": {
          "value": {
            "Email": "={{ $('Message a model').item.json.message.content.email }}",
            "LeadStatus": "Proposal sent"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "First Name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "First Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Last Name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Last Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Phone",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Phone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Website",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Website",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Created",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Assignee",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Assignee",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Desision",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Exploring",
                  "value": "Exploring"
                },
                {
                  "name": "Comparing Agencies",
                  "value": "Comparing Agencies"
                },
                {
                  "name": "Ready to Start",
                  "value": "Ready to Start"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Desision",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "LeadStatus",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Website Form",
                  "value": "Website Form"
                },
                {
                  "name": "Attended",
                  "value": "Attended"
                },
                {
                  "name": "Didn't Attend",
                  "value": "Didn't Attend"
                },
                {
                  "name": "Meeting Rescheduled",
                  "value": "Meeting Rescheduled"
                },
                {
                  "name": "Follow Up 1",
                  "value": "Follow Up 1"
                },
                {
                  "name": "Follow Up 2",
                  "value": "Follow Up 2"
                },
                {
                  "name": "Follow Up 3",
                  "value": "Follow Up 3"
                },
                {
                  "name": "Lost -No Response",
                  "value": "Lost -No Response"
                },
                {
                  "name": "Won",
                  "value": "Won"
                },
                {
                  "name": "Proposal sent",
                  "value": "Proposal sent"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "LeadStatus",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Email"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "id": "lkjke5yaq35WzzkG",
          "name": "Airtable Personal Access Token account"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "12130334-d35d-4bf6-92dd-0c45641d6001",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -160,
        -96
      ],
      "parameters": {
        "color": 5,
        "width": 320,
        "height": 352,
        "content": "## Guide\n\nCreate you openai api key here: https://platform.openai.com/settings/organization/api-keys\n\nSetup credentials, Oauth, and scopes for google drive / slides  here: https://console.cloud.google.com/\n\nCreate Airtable Token here: https://airtable.com/create/tokens\nalso make sure you got a filed for lead status so it gets updated after the proposal is sent\n\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c5647c6c-362b-4868-ba0b-95a356e9d117",
      "name": "Envoyer un message à un modèle",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "position": [
        480,
        0
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini",
          "cachedResultName": "GPT-4.1-MINI"
        },
        "options": {},
        "messages": {
          "values": [
            {
              "role": "system",
              "content": "Extract the following variables from the discovery call script and format them as JSON. Use the exact keys below:  \n\n**Variables to Extract:**  \n- Client email  \n- Company name  \n- Client name  \n- Project title  \n- Project goals  \n- Deliverables  \n- Timeline (in weeks)  \n- Budget (in USD)  \n\n**Output Requirements:**  \n- Strictly use this JSON structure (no deviations):  \n```json\n{\n  \"email\": \"value_from_script\",\n  \"company\": \"value_from_script\",\n  \"client\": \"value_from_script\",\n  \"project_title\": \"value_from_script\",\n  \"goals\": \"value_from_script\",\n  \"deliverables\": \"value_from_script\",\n  \"timeline_weeks\": \"value_from_script\",\n  \"budget_usd\": \"value_from_script\"\n}"
            },
            {
              "content": "={{ $json.chatInput }}"
            }
          ]
        },
        "jsonOutput": true
      },
      "credentials": {
        "openAiApi": {
          "id": "iuyzWhX2JGVK5PCn",
          "name": "OpenAI Hostinger"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "eea034a6-93dd-4fff-9fe2-d0189c5f7b2b",
      "name": "À la réception d'un message de chat",
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "position": [
        304,
        0
      ],
      "webhookId": "65c61e2a-f47e-4a83-a34b-4a92e7f09baa",
      "parameters": {
        "options": {}
      },
      "typeVersion": 1.3
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "9e6caf82-55ec-4fe2-9de1-55fd2bbe0ac6",
  "connections": {
    "41fe6c9c-88bd-4c36-a64c-7dac0268e456": {
      "main": [
        [
          {
            "node": "add01d77-c169-41f9-9bce-51462e2a44ab",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "9e79d395-57f9-4afb-9d35-75dda74e6561": {
      "main": [
        [
          {
            "node": "0579e838-85ac-4cae-a7d4-c2c42203a47e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c5647c6c-362b-4868-ba0b-95a356e9d117": {
      "main": [
        [
          {
            "node": "41fe6c9c-88bd-4c36-a64c-7dac0268e456",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "eea034a6-93dd-4fff-9fe2-d0189c5f7b2b": {
      "main": [
        [
          {
            "node": "c5647c6c-362b-4868-ba0b-95a356e9d117",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "add01d77-c169-41f9-9bce-51462e2a44ab": {
      "main": [
        [
          {
            "node": "9e79d395-57f9-4afb-9d35-75dda74e6561",
            "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é ?

Intermédiaire - CRM, IA Multimodale

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é
Intermédiaire
Nombre de nœuds7
Catégorie2
Types de nœuds6
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Auteur
Ilyass Kanissi

Ilyass Kanissi

@ilyass

I design and build custom no-code and low-code automations using n8n to help businesses save hours of manual work, streamline operations, and create clean, scalable workflows.

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34