Claap 통화 기반 GPT-4o 및 Google Slides를 사용한 영업 프레젠테이션 자동 생성
고급
이것은CRM, Multimodal AI분야의자동화 워크플로우로, 20개의 노드를 포함합니다.주로 If, Set, Code, Slack, Switch 등의 노드를 사용하며. Claap 통화 기반 GPT-4o 및 Google Slides를 사용하여 영업 프레젠테이션 자동 생성
사전 요구사항
- •Slack Bot Token 또는 Webhook URL
- •HubSpot API Key
- •HTTP Webhook 엔드포인트(n8n이 자동으로 생성)
- •대상 API의 인증 정보가 필요할 수 있음
- •OpenAI API Key
워크플로우 미리보기
노드 연결 관계를 시각적으로 표시하며, 확대/축소 및 이동을 지원합니다
워크플로우 내보내기
다음 JSON 구성을 복사하여 n8n에 가져오면 이 워크플로우를 사용할 수 있습니다
{
"meta": {
"instanceId": "d3e4902970aa37f340c04e2f2a31d62f0faafec176f1cad2990afef1086b6b99",
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "45c60520-7937-4ccb-95e7-6805ee8e2f0a",
"name": "프레젠테이션 복제",
"type": "n8n-nodes-base.httpRequest",
"position": [
1872,
2240
],
"parameters": {
"url": "=https://www.googleapis.com/drive/v3/files/{{ $('Set presentation id').item.json.presentationId }}/copy",
"method": "POST",
"options": {},
"jsonBody": "={\n \"name\": \"Claap x {{ $('Extract call info').item.json.client }} - Demo\"\n} ",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
}
]
},
"nodeCredentialType": "googleDriveOAuth2Api"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "udvmM2IU9jsvADPe",
"name": "Google Drive account"
}
},
"typeVersion": 4.2
},
{
"id": "8b92b5d8-00c7-4394-b45f-ef925a943600",
"name": "프레젠테이션 게시",
"type": "n8n-nodes-base.httpRequest",
"position": [
2080,
2240
],
"parameters": {
"url": "=https://www.googleapis.com/drive/v3/files/{{ $json.id }}/permissions?supportsAllDrives=true",
"method": "POST",
"options": {},
"jsonBody": "{\n \"role\": \"reader\",\n \"type\": \"anyone\",\n \"allowFileDiscovery\": true\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleDriveOAuth2Api"
},
"typeVersion": 4.2
},
{
"id": "f594056f-b564-4ae8-b771-962640de5c8a",
"name": "사용자를 편집자로 설정",
"type": "n8n-nodes-base.httpRequest",
"position": [
2304,
2240
],
"parameters": {
"url": "=https://www.googleapis.com/drive/v3/files/{{ $('Duplicate presentation').item.json.id }}/permissions?supportsAllDrives=true",
"method": "POST",
"options": {},
"jsonBody": "{\n \"role\": \"writer\",\n \"type\": \"user\",\n \"emailAddress\": \"editor@example.com\"\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleDriveOAuth2Api"
},
"credentials": {
"googleDriveOAuth2Api": {
"id": "udvmM2IU9jsvADPe",
"name": "Google Drive account"
}
},
"typeVersion": 4.2
},
{
"id": "0ce4dd64-60b6-42f4-a21e-836ad013a0b2",
"name": "프레젠테이션 템플릿 선택",
"type": "n8n-nodes-base.switch",
"position": [
560,
2528
],
"parameters": {
"rules": {
"values": [
{
"outputKey": "Discovery",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "6767bda7-f501-42d5-b70f-fbc427366c84",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $('On new sales call recording').item.json.body.event.recording.labels.includes('Discovery') }}",
"rightValue": "Discovery"
}
]
},
"renameOutput": true
},
{
"outputKey": "Proposal",
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "d15a1cd6-f173-4f19-b126-56023ff972fc",
"operator": {
"type": "boolean",
"operation": "true",
"singleValue": true
},
"leftValue": "={{ $('On new sales call recording').item.json.body.event.recording.labels.includes('Proposal') }}",
"rightValue": "={{ $('On new sales call recording').item.json.body.event.recording.labels.includes('Discovery') }}"
}
]
},
"renameOutput": true
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "28a66a03-b46b-4101-9228-cdb1f0c1a137",
"name": "통화 정보 추출",
"type": "n8n-nodes-base.set",
"position": [
352,
2528
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "7d00c768-11f8-4e88-a72d-09f4680e6db5",
"name": "client",
"type": "string",
"value": "={{ $json.body.event.recording.companies[0].name }}"
},
{
"id": "899afd83-f493-4bf8-baa3-0af1357ba784",
"name": "domain",
"type": "string",
"value": "={{ $json.body.event.recording.meeting.participants.find(p => p.email && p.email !== $json.body.event.recording.recorder.email)?.email.split(\"@\")[1] }}"
},
{
"id": "53f353b3-8cbb-40d4-bd2f-13bf56554d7a",
"name": "dealId",
"type": "string",
"value": "={{ $json.body.event.recording.crmInfo.crmDealId === undefined ? \"\" : $json.body.event.recording.crmInfo.crmDealId}}"
},
{
"id": "61906ec6-d325-4e07-b05c-824a1d7e8c52",
"name": "language",
"type": "string",
"value": "={{ $json.body.event.recording.transcripts[0].langIso2 === \"fr\" ? \"french\" : \"english\" }}"
},
{
"id": "64575c62-a4bf-4748-854b-d31e1f9fc904",
"name": "actionItems",
"type": "string",
"value": "={{ $json.body.event.recording.actionItems.join('\\n') }}"
},
{
"id": "1e4964eb-11bc-40be-ae2d-acc3756f2f9c",
"name": "keyTakeways",
"type": "string",
"value": "={{ $json.body.event.recording.keyTakeaways.join('\\n') }}"
},
{
"id": "0594c03d-fbdb-4770-a3d7-f2793b90ac08",
"name": "outlines",
"type": "string",
"value": "={{ $json.body.event.recording.outlines.join('\\n') }}"
},
{
"id": "f632c9df-66ba-4b61-a3af-07a8ced06bb2",
"name": "insights",
"type": "string",
"value": "={{ $json.body.event.recording.insightTemplates[0].insights[0].sections.map(section => `${section.title}:\\n${section.description}`).join('\\n\\n') }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "dd22c7f0-6515-4c0e-ad2e-a84e6d3690b2",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-656,
2192
],
"parameters": {
"color": 2,
"width": 600,
"height": 240,
"content": "# Template presentation\n- This template generates a sales follow-up presentation in Google Slides after a sales call recorded in Claap.\n- The workflow is simplified to showcase the main use case.\n- You can customize and enrich this workflow by connecting to the CRM, researching data online or adding more files in the presentation.\n- This workflow runs when the meeting is labeled with \"Discovery\" or \"Proposal\" in Claap.\n- The presentation template used in this workflow is available [here](https://docs.google.com/presentation/d/1UZ0vGvHWwl1M0u_ThxJr6qLr-flIkIvCiVrg3fHPCFk/edit?slide=id.g33acd02fb35_0_0)."
},
"typeVersion": 1
},
{
"id": "5fc84ab3-2a83-4535-8d38-c271f87aa708",
"name": "프레젠테이션 ID 설정",
"type": "n8n-nodes-base.set",
"position": [
1040,
2240
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "70365c23-d99e-4975-8359-96f81968ebf1",
"name": "presentationId",
"type": "string",
"value": "1UZ0vGvHWwl1M0u_ThxJr6qLr-flIkIvCiVrg3fHPCFk"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "6649d1d2-ce8b-4bb9-b473-ed0417249920",
"name": "프레젠테이션 업데이트",
"type": "n8n-nodes-base.httpRequest",
"position": [
2528,
2240
],
"parameters": {
"url": "=https://slides.googleapis.com/v1/presentations/{{ $('Duplicate presentation').item.json.id }}:batchUpdate",
"method": "POST",
"options": {},
"jsonBody": "={\n \"requests\": [\n {\n \"replaceAllText\": {\n \"containsText\": {\n \"text\": \"$client\",\n \"matchCase\": true\n },\n \"replaceText\": \"{{ $('Extract call info').item.json.client }}\"\n }\n },\n {\n \"replaceAllText\": {\n \"containsText\": {\n \"text\": \"$date\",\n \"matchCase\": true\n },\n \"replaceText\": \"{{ new Date().toLocaleDateString('fr-FR') }}\"\n }\n },\n {\n \"replaceAllText\": {\n \"containsText\": {\n \"text\": \"$ambition\",\n \"matchCase\": true\n },\n \"replaceText\": \"{{ $('Generate slide content').item.json.message.content.ambition }}\"\n }\n },\n {\n \"replaceAllText\": {\n \"containsText\": {\n \"text\": \"$challenges\",\n \"matchCase\": true\n },\n \"replaceText\": \"{{ $('Format challenges').item.json.challengesFormatted }}\"\n }\n },\n {\n \"createImage\": {\n \"url\": \"https://logo.clearbit.com/{{ $('Extract call info').item.json.domain }}\",\n \"elementProperties\": {\n \"pageObjectId\": \"g33acd02fb35_0_0\",\n \"size\": {\n \"height\": {\n \"magnitude\": 50,\n \"unit\": \"PT\"\n },\n \"width\": {\n \"magnitude\": 100,\n \"unit\": \"PT\"\n }\n },\n \"transform\": {\n \"scaleX\": 1,\n \"scaleY\": 1,\n \"translateX\": 0,\n \"translateY\": 330,\n \"unit\": \"PT\"\n }\n }\n }\n }\n ]\n}\n",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleSlidesOAuth2Api"
},
"credentials": {
"googleSlidesOAuth2Api": {
"id": "4XvUdGjZmtZF34lR",
"name": "Google Slides account"
}
},
"typeVersion": 4.2
},
{
"id": "972a826c-781f-4fd1-92d5-ec2f53f4825d",
"name": "새로운 판매 통화 녹음 시",
"type": "n8n-nodes-base.webhook",
"position": [
128,
2528
],
"webhookId": "f0ad896c-3d55-458b-b161-bd3d6cc4107f",
"parameters": {
"path": "claap-recordings",
"options": {},
"httpMethod": "POST"
},
"typeVersion": 2
},
{
"id": "6dfdb4b2-5c74-41a7-9edd-8f0eba4264b5",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
832,
2528
],
"parameters": {
"width": 320,
"height": 120,
"content": "If several presentations can be selected based on the type of call, it's possible to create other branches here. You'll just need to provide the id of the presentation you want to duplicate."
},
"typeVersion": 1
},
{
"id": "99b44269-6d1c-441d-b597-272597b1e1c8",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
2464,
2432
],
"parameters": {
"height": 120,
"content": "Another option is to use the n8n built-in node, but it offers less control (no full text search and replace and no possibility to add images)"
},
"typeVersion": 1
},
{
"id": "8017b6bc-f516-4668-bf0a-cd708bb76ab8",
"name": "형식 문제",
"type": "n8n-nodes-base.code",
"position": [
1648,
2240
],
"parameters": {
"jsCode": "return {\n challengesFormatted: $input.first().json.message.content.challenges.join('\\\\n')\n};"
},
"typeVersion": 2
},
{
"id": "5aee27e9-17f0-4b0a-9b0e-e6bf0b82062b",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
1024,
3024
],
"parameters": {
"width": 200,
"height": 120,
"content": "This branch showcases how to connect with the CRM and personalize the presentation based on CRM data"
},
"typeVersion": 1
},
{
"id": "357ad95c-19ce-425a-b430-2e9cac0fe0a0",
"name": "잘못된 통화 슬라이드 삭제",
"type": "n8n-nodes-base.httpRequest",
"position": [
784,
3040
],
"parameters": {
"url": "=https://slides.googleapis.com/v1/presentations/{{ $('Duplicate presentation').item.json.id }}:batchUpdate",
"method": "POST",
"options": {},
"jsonBody": "={\n \"requests\": [\n {\n \"deleteObject\": {\n \"objectId\": \"{{ $json.slide_to_delete }}\"\n }\n }\n ]\n}",
"sendBody": true,
"specifyBody": "json",
"authentication": "predefinedCredentialType",
"nodeCredentialType": "googleSlidesOAuth2Api"
},
"typeVersion": 4
},
{
"id": "f129f806-564c-4820-a8fb-1516959ee780",
"name": "@user에게 전송",
"type": "n8n-nodes-base.slack",
"position": [
2784,
2240
],
"webhookId": "1842e596-7b9f-4dc6-8331-58e7a6811afc",
"parameters": {
"text": "=",
"user": {
"__rl": true,
"mode": "username",
"value": "@user"
},
"select": "user",
"blocksUi": "={\n \"blocks\": [\n {\n \"type\": \"section\",\n \"text\": {\n \"type\": \"mrkdwn\",\n \"text\": \"*New presentation available for <https://docs.google.com/presentation/d/{{ $json.presentationId }}/edit#slide=id.g33acd02fb35_0_0|{{ $('Extract call info').item.json.client }}> 🔥*\"\n }\n }\n ]\n}",
"messageType": "block",
"otherOptions": {
"includeLinkToWorkflow": false
}
},
"credentials": {
"slackApi": {
"id": "MFSWBbCvtN1Sk93E",
"name": "Slack First Claapers"
}
},
"typeVersion": 2.3
},
{
"id": "365237ff-823f-4b8c-928b-5b2bb8fc6bf7",
"name": "거래가 있는 경우",
"type": "n8n-nodes-base.if",
"position": [
128,
3040
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "49b2504c-0426-4dda-8249-8b147db94e6a",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $('On new sales call recording').item.json.body.event.recording.deal.id }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2.2
},
{
"id": "85c5809c-56f4-4648-b29e-ea4780634d75",
"name": "거래 정보 가져오기",
"type": "n8n-nodes-base.hubspot",
"position": [
352,
3040
],
"parameters": {
"dealId": "={{ $('On new sales call recording').item.json.body.event.recording.crmInfo.deal.id }}",
"filters": {},
"resource": "deal",
"operation": "get",
"authentication": "appToken"
},
"credentials": {
"hubspotAppToken": {
"id": "mhuVEdo7ONjoZ1nP",
"name": "HubSpot App Token account"
}
},
"typeVersion": 2.1
},
{
"id": "253e418e-1282-4da1-8bd9-f9b2e013005e",
"name": "삭제할 슬라이드 선택",
"type": "n8n-nodes-base.set",
"position": [
560,
3040
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "d462ed0b-f883-4adf-adc9-baa7d67d632b",
"name": "slide_to_delete",
"type": "string",
"value": "={{ (!$json.properties.deal_currency_code.value || $json.properties.deal_currency_code.value === 'EUR') ? 'g3417703b8a7_0_3' : 'g3026f7d6b00_0_71' }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "65b78722-db75-4edc-ac9c-231cdb8e9336",
"name": "슬라이드 콘텐츠 생성",
"type": "@n8n/n8n-nodes-langchain.openAi",
"position": [
1264,
2240
],
"parameters": {
"modelId": {
"__rl": true,
"mode": "list",
"value": "gpt-4o-mini",
"cachedResultName": "GPT-4O-MINI"
},
"options": {},
"messages": {
"values": [
{
"content": "=Your are a sales expert here to assist sales professionals in crafting follow-ups based on transcripts of discovery calls. Analyze the call summary to identify the following 2 elements:\n\n# Ambition: a summary of the prospect's goals or desired outcomes.\n# Challenges: list 3 key difficulties or obstacles discussed during the call.\n\nInstructions:\n- Use simple language and remain concise.\n- Output your answer in {{ $('Extract call info').item.json.language }}.\n- Structure your answer as a JSON:\n\n{ \n \"ambition\": \"\",\n \"challenges\": [\"\", \"\", \"\"]\n}\n\nCall summary below (within triple quotes):\n'''\n{{ $('Extract call info').item.json.insights }}\n'''"
}
]
},
"jsonOutput": true
},
"credentials": {
"openAiApi": {
"id": "E7za96D8nwfE78qQ",
"name": "OpenAi account"
}
},
"typeVersion": 1.8
},
{
"id": "dedfb07c-b450-4101-b7eb-7ff6a40aa5f5",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-656,
2496
],
"parameters": {
"color": 3,
"width": 600,
"height": 240,
"content": "# Workflow configuration\n- Create a webhook in Claap, by following [this article](https://help.claap.io/en/articles/10395357-using-claap-s-webhooks).\n- Edit the labels that trigger the workflow and route on the relevant presentation.\n- Fill your Open AI credentials by creating an API Key in OpenAI Platform\n- Edit the presentation personalization details (user set as editor, content, title)\n- Fill your Slack credentials by following steps in [this video](https://www.youtube.com/watch?v=qk5JH6ImK0I&ab_channel=NateHerk%7CAIAutomation)."
},
"typeVersion": 1
}
],
"pinData": {},
"connections": {
"85c5809c-56f4-4648-b29e-ea4780634d75": {
"main": [
[
{
"node": "253e418e-1282-4da1-8bd9-f9b2e013005e",
"type": "main",
"index": 0
}
]
]
},
"28a66a03-b46b-4101-9228-cdb1f0c1a137": {
"main": [
[
{
"node": "0ce4dd64-60b6-42f4-a21e-836ad013a0b2",
"type": "main",
"index": 0
}
]
]
},
"8017b6bc-f516-4668-bf0a-cd708bb76ab8": {
"main": [
[
{
"node": "45c60520-7937-4ccb-95e7-6805ee8e2f0a",
"type": "main",
"index": 0
}
]
]
},
"365237ff-823f-4b8c-928b-5b2bb8fc6bf7": {
"main": [
[
{
"node": "85c5809c-56f4-4648-b29e-ea4780634d75",
"type": "main",
"index": 0
}
],
[]
]
},
"f594056f-b564-4ae8-b771-962640de5c8a": {
"main": [
[
{
"node": "6649d1d2-ce8b-4bb9-b473-ed0417249920",
"type": "main",
"index": 0
}
]
]
},
"5fc84ab3-2a83-4535-8d38-c271f87aa708": {
"main": [
[
{
"node": "65b78722-db75-4edc-ac9c-231cdb8e9336",
"type": "main",
"index": 0
}
]
]
},
"6649d1d2-ce8b-4bb9-b473-ed0417249920": {
"main": [
[
{
"node": "f129f806-564c-4820-a8fb-1516959ee780",
"type": "main",
"index": 0
}
]
]
},
"8b92b5d8-00c7-4394-b45f-ef925a943600": {
"main": [
[
{
"node": "f594056f-b564-4ae8-b771-962640de5c8a",
"type": "main",
"index": 0
}
]
]
},
"45c60520-7937-4ccb-95e7-6805ee8e2f0a": {
"main": [
[
{
"node": "8b92b5d8-00c7-4394-b45f-ef925a943600",
"type": "main",
"index": 0
}
]
]
},
"65b78722-db75-4edc-ac9c-231cdb8e9336": {
"main": [
[
{
"node": "8017b6bc-f516-4668-bf0a-cd708bb76ab8",
"type": "main",
"index": 0
}
]
]
},
"253e418e-1282-4da1-8bd9-f9b2e013005e": {
"main": [
[
{
"node": "357ad95c-19ce-425a-b430-2e9cac0fe0a0",
"type": "main",
"index": 0
}
]
]
},
"972a826c-781f-4fd1-92d5-ec2f53f4825d": {
"main": [
[
{
"node": "28a66a03-b46b-4101-9228-cdb1f0c1a137",
"type": "main",
"index": 0
}
]
]
},
"0ce4dd64-60b6-42f4-a21e-836ad013a0b2": {
"main": [
[
{
"node": "5fc84ab3-2a83-4535-8d38-c271f87aa708",
"type": "main",
"index": 0
}
]
]
}
}
}자주 묻는 질문
이 워크플로우를 어떻게 사용하나요?
위의 JSON 구성 코드를 복사하여 n8n 인스턴스에서 새 워크플로우를 생성하고 "JSON에서 가져오기"를 선택한 후, 구성을 붙여넣고 필요에 따라 인증 설정을 수정하세요.
이 워크플로우는 어떤 시나리오에 적합한가요?
고급 - 고객관계관리, 멀티모달 AI
유료인가요?
이 워크플로우는 완전히 무료이며 직접 가져와 사용할 수 있습니다. 다만, 워크플로우에서 사용하는 타사 서비스(예: OpenAI API)는 사용자 직접 비용을 지불해야 할 수 있습니다.
관련 워크플로우 추천
Abacate Pay를 사용한 자동화된 주문 확인: 첫 구매 쿠폰 보상, 이메일 및 Slack 통해
Abacate Pay를 사용한 자동화된 주문 확인: 첫 구매 쿠폰 보상, 이메일 및 Slack 통해
If
Set
Code
+
If
Set
Code
13 노드Matheus Pedrosa
고객관계관리
dian-memo_03 내보내기
AI 음성 및 텍스트 메모 - LINE 메시지, Supabase 벡터 데이터베이스 및 Gmail 통합
If
Set
Code
+
If
Set
Code
30 노드kote2
AI RAG
회의록 및 액션 아이템 트래커
AI 기반 회의록: GPT-4, 작업 할당 및 다중 채널 배포 활용
If
Set
Code
+
If
Set
Code
38 노드Jitesh Dugar
콘텐츠 제작
잠재 리드 생성 및 개인화 아웃리치 자동화: Apollo, AI 및 Instantly.ai
잠재 고객 생성 및 개인화 아웃리치 자동화: Apollo, AI 및 Instantly.ai
If
Set
Code
+
If
Set
Code
166 노드Ruben AI
리드 육성
자동화된 리드 캡처, AI 자격 평가 및 ElevenLabs 개인화 음성 후속 조치
OpenAI와 ElevenLabs 기반 자동 리드 캡처 및 AI 개인화 음성 후속 조치
If
Set
Code
+
If
Set
Code
22 노드Marth
리드 육성
Airtable, OpenAI 및 Unipile을 사용한 자동화된 LinkedIn 잠재 고객 생성 및 개인 메시지 발송
Airtable, OpenAI 및 Unipile을 사용한 자동화된 LinkedIn 리드 생성 및 개인 메시지 발송
If
Set
Code
+
If
Set
Code
143 노드Ruben AI
리드 육성