Résumé d'appel par IA + Tâche de suivi HubSpot

Intermédiaire

Ceci est unCRM, AI Summarizationworkflow d'automatisation du domainecontenant 12 nœuds.Utilise principalement des nœuds comme Hubspot, FormTrigger, HubspotTool, Agent, LmChatOpenAi. Résumé d'appel par IA + Tâche de suivi HubSpot

Prérequis
  • Clé API HubSpot
  • Clé API OpenAI

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": "09423a3357ff64bdcc082268b9d577001317edbe377a3ccfb0b131ffb9554b30"
  },
  "nodes": [
    {
      "id": "62aa0111-3390-474f-9779-1d389398d3a0",
      "name": "Trouver un contact par e-mail",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        528,
        224
      ],
      "parameters": {
        "operation": "search",
        "authentication": "oAuth2",
        "filterGroupsUi": {
          "filterGroupsValues": [
            {
              "filtersUi": {
                "filterValues": [
                  {
                    "value": "={{ $json['Contact email'] }}",
                    "propertyName": "email|string"
                  }
                ]
              }
            }
          ]
        },
        "additionalFields": {
          "properties": "={{ [\"email\",\"firstname\",\"lastname\",\"jobtitle\",\"company\",\"country\",\"state\",\"city\",\"hs_language\",\"phone\",\"mobilephone\",\"lifecyclestage\",\"hs_lead_status\",\"hubspot_owner_id\",\"hs_email_last_open_date\",\"hs_email_last_reply_date\",\"hs_latest_meeting_activity\",\"hs_sequences_is_enrolled\",\"hs_sequences_enrolled_count\",\"createdate\",\"hs_lastmodifieddate\",\"hs_timezone\",\"notes_last_contacted\",\"hs_object_id\"] }}"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "bc13ee93-f748-4058-9429-a25883e9c25e",
      "name": "Modèle de chat OpenAI",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        848,
        448
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4.1-mini"
        },
        "options": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "1dbedf6b-1427-4127-a0bf-ac745c386e6a",
      "name": "Formulaire : Capturer la transcription",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        304,
        224
      ],
      "webhookId": "4f87bdf1-6594-4675-a20e-037a7f287da5",
      "parameters": {
        "options": {},
        "formTitle": "Get transcript",
        "formFields": {
          "values": [
            {
              "fieldType": "email",
              "fieldLabel": "Contact email",
              "requiredField": true
            },
            {
              "fieldType": "textarea",
              "fieldLabel": "Paste transcript here",
              "requiredField": true
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "e4ce0bc0-eaef-4d12-80af-8be92a32c059",
      "name": "IA : Résumer l'appel et rédiger une tâche",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        848,
        224
      ],
      "parameters": {
        "text": "=### Inputs\n\n* **Contact info:** `{{  JSON.stringify($json.properties) }}`\n* **Call transcript (plain text):** `{{ $('Form: Capture Transcript').item.json['Paste transcript here'] }}`\n\n### Your goals\n\n1. Read the transcript and capture: participants, company, role, problem/opportunity, key requirements, objections/blockers, timeline, and any metrics (team size, volume, \\$\\$, dates).\n2. Write a **120–160 word** plain-English summary a teammate can skim.\n3. Create **one actionable follow-up task** that clearly moves the deal forward.\n4. Based on what you've learned from the call transcript, update any missing HubSpot contact information (blank fields) using the HubSpot \"Update Contact\" tool.\n\n### Rules\n\n* Be factual; **do not invent** details.\n* If data is missing, note it as “unknown”.\n* Normalize dates to `YYYY-MM-DD` (use next business day for “tomorrow”, +7 days for “next week”).\n* Keep original spelling for names/companies.\n* Use concise language; no fluff.\n\nRespond ONLY in the following JSON format:\n{\n  \"Summary\": \"<120–160 word recap>\",\n  \"Task name\": \"<imperative title, e.g., Schedule security review with IT lead>\",\n  \"Task body\": \"<what to deliver, needed inputs, owner, due date and success criteria>\"\n}",
        "options": {},
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "4fdbc6bf-5cf9-4eb1-9951-f865ec218126",
      "name": "Enregistrer le résumé de l'appel",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        1200,
        224
      ],
      "parameters": {
        "type": "call",
        "metadata": {
          "body": "={{ $json.output.Summary }}",
          "status": "COMPLETED"
        },
        "resource": "engagement",
        "authentication": "oAuth2",
        "additionalFields": {
          "associations": {
            "contactIds": "={{ $('Find Contact by Email').item.json.id }}"
          }
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "23a2c237-2a38-48c8-9c6b-3ca2f07e1816",
      "name": "Créer une tâche de suivi",
      "type": "n8n-nodes-base.hubspot",
      "position": [
        1424,
        224
      ],
      "parameters": {
        "type": "task",
        "metadata": {
          "body": "={{ $('AI: Summarize Call & Draft Task').item.json.output['Task body'] }}",
          "status": "NOT_STARTED",
          "subject": "={{ $('AI: Summarize Call & Draft Task').item.json.output['Task name'] }}",
          "forObjectType": "CONTACT"
        },
        "resource": "engagement",
        "authentication": "oAuth2",
        "additionalFields": {
          "associations": {
            "contactIds": "={{ $('Find Contact by Email').item.json.id }}"
          }
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "8fcb293d-d6b2-4553-af27-cc340208fa8d",
      "name": "Mettre à jour le contact à partir de la transcription",
      "type": "n8n-nodes-base.hubspotTool",
      "position": [
        1040,
        448
      ],
      "parameters": {
        "email": "={{ $('Form: Capture Transcript').item.json['Contact email'] }}",
        "options": {},
        "authentication": "oAuth2",
        "additionalFields": {
          "city": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('City', `Update this if the prospect mentions the city`, 'string') }}",
          "country": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Country_Region', `Update this if the prospect mentions the country`, 'string') }}",
          "jobTitle": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Job_Title', `Update this if the prospect mentions their job title`, 'string') }}",
          "jobFunction": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Job_Function', `Update this if the prospect mentions their job function`, 'string') }}"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "affbd7c1-1970-417b-b9e3-80ddea9a77bd",
      "name": "Analyser la sortie structurée",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1216,
        448
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\"Summary\": \"Hand from ClearPath spoke with Jordan (Plumber) regarding slow onboarding. Jordan’s company, which remains unknown, hires 25-40 new employees monthly...\",\n\"Task name\": \"Send demo invite and prep materials to Jordan\",\n\"Task body\": \"Deliver a calendar invite for the 2025-10-01 2:00 PM demo, including a short checklist for the IT lead to prepare and an outline for the two-week sandbox pilot.\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "f3513e1b-b8d2-45e6-a073-9ce960255765",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        128
      ],
      "parameters": {
        "color": 7,
        "width": 448,
        "height": 304,
        "content": "## Get call transcript and contact"
      },
      "typeVersion": 1
    },
    {
      "id": "a287568d-b9ac-408a-b529-8705d5a7ea3a",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        752,
        128
      ],
      "parameters": {
        "color": 7,
        "width": 880,
        "height": 496,
        "content": "## Add call summary, follow-up task and contact properties"
      },
      "typeVersion": 1
    },
    {
      "id": "d15dd7dd-df8e-4e07-a23a-cacf7a8f0173",
      "name": "Note adhésive2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -288,
        -32
      ],
      "parameters": {
        "color": 5,
        "width": 464,
        "height": 656,
        "content": "## AI Call Summary to HubSpot + Follow-Up Task\n\nPaste a recent call transcript and the contact’s email to auto-log a clean summary in HubSpot and create a follow-up task.\n\n## How it works\n* Capture the contact email and transcript via a form.\n* Look up the contact in HubSpot by email.\n* Send the transcript (and known contact fields) to AI to:\n  * Summarize the call (120–160 words).\n  * Propose a single, actionable follow-up task.\n  * Suggest updates for missing contact properties (city, country, title, function).\n* Log the summary as a completed Call in HubSpot.\n* Create a Task in HubSpot with the AI-generated title/body.\n* Optionally update the HubSpot contact from the transcript hints.\n\n## How to use\n* Open the Form: Capture Transcript node and submit an email + transcript.\n* In AI: Summarize Call & Draft Task, you can tweak the prompt rules if needed.\n* Ensure your HubSpot OAuth is connected on all HubSpot nodes.\n* (Optional) Review the Update Contact from Transcript mappings before enabling in production."
      },
      "typeVersion": 1
    },
    {
      "id": "c04d0fab-a1ba-4f6f-84b5-fcaf3ac7bc29",
      "name": "Note adhésive3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1408,
        432
      ],
      "parameters": {
        "color": 7,
        "width": 288,
        "height": 288,
        "content": "### 💡 Customizing this workflow\n\n- Instead of a form, try using a google drive folder to fetch call transcripts\n- Take it a step further - extract the audio from the call recording using AI\n- Get creative with fields - add any addtional contact fields to the \"Update Contact\" tool and let the AI auto-populate those based on the transcript "
      },
      "typeVersion": 1
    }
  ],
  "pinData": {
    "Form: Capture Transcript": [
      {
        "formMode": "test",
        "submittedAt": "2025-09-26T11:15:57.804+02:00",
        "Contact email": "miha.ambroz@pm.me",
        "Paste transcript here": "Me: Hi prospect\r\nHans: Hi I am actually from hungary and I work as A product manager. Not sure you have that infor in the crm"
      }
    ]
  },
  "connections": {
    "4fdbc6bf-5cf9-4eb1-9951-f865ec218126": {
      "main": [
        [
          {
            "node": "23a2c237-2a38-48c8-9c6b-3ca2f07e1816",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bc13ee93-f748-4058-9429-a25883e9c25e": {
      "ai_languageModel": [
        [
          {
            "node": "e4ce0bc0-eaef-4d12-80af-8be92a32c059",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "62aa0111-3390-474f-9779-1d389398d3a0": {
      "main": [
        [
          {
            "node": "e4ce0bc0-eaef-4d12-80af-8be92a32c059",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "affbd7c1-1970-417b-b9e3-80ddea9a77bd": {
      "ai_outputParser": [
        [
          {
            "node": "e4ce0bc0-eaef-4d12-80af-8be92a32c059",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "1dbedf6b-1427-4127-a0bf-ac745c386e6a": {
      "main": [
        [
          {
            "node": "62aa0111-3390-474f-9779-1d389398d3a0",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8fcb293d-d6b2-4553-af27-cc340208fa8d": {
      "ai_tool": [
        [
          {
            "node": "e4ce0bc0-eaef-4d12-80af-8be92a32c059",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "e4ce0bc0-eaef-4d12-80af-8be92a32c059": {
      "main": [
        [
          {
            "node": "4fdbc6bf-5cf9-4eb1-9951-f865ec218126",
            "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, Résumé IA

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

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

Auteur
Miha

Miha

@miha

Template Engineer @ n8n

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34