CallForge — the complete n8n workflow pack

CallForge was the pipeline I built to turn raw Gong sales-call recordings into structured, AI-summarized intelligence — filtered against Salesforce opportunities, prepped with Sheets and Notion, analyzed with AI, and enriched back into the CRM. It ran as eight workflows, and until now you had to grab each one from a separate template page.

Here’s the complete set. Every canvas below is live — drag it around, open the nodes. Copy any one, download it as a file, or grab all eight as a single zip and import the lot into your n8n in one go.

Credentials and webhook IDs are stripped; wire in your own Gong, Notion, Sheets, Azure, and Salesforce connections after import, and swap the Notion/Sheets resource IDs for yours.

01 — filter Gong calls synced to Salesforce by opportunity stage

CallForge - 01 - filter Gong calls synced to Salesforce by opportunity stage

View JSON
{"name":"CallForge - 01 - filter Gong calls synced to Salesforce by opportunity stage","nodes":[{"id":"692e2883-0d1b-4162-8472-6d15c12c8b43","name":"When clicking \u2018Test workflow\u2019","type":"n8n-nodes-base.manualTrigger","position":[0,0],"parameters":{},"typeVersion":1},{"id":"1b226699-d463-42c9-aab0-e328afdb73b9","name":"Check if Primary Opportunity Contains Value","type":"n8n-nodes-base.if","position":[900,-60],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"e5aed92c-9a3e-4e05-8ce2-9a707abc3115","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.Gong__Primary_Opportunity__c }}","rightValue":""}]}},"typeVersion":2.2},{"id":"1ebe8eba-5a86-4d17-a629-aa8d2e932693","name":"Check if Opportunity Stage is Meeting Booked or Discovery","type":"n8n-nodes-base.if","position":[660,0],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"or","conditions":[{"id":"8c39be67-f158-4d26-a1e9-cfdba686e272","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.Gong__Opp_Stage_Time_Of_Call__c }}","rightValue":"Discovery"},{"id":"4cacf9be-3d86-49d6-b7f6-672a57025f0e","operator":{"name":"filter.operator.equals","type":"string","operation":"equals"},"leftValue":"={{ $json.Gong__Opp_Stage_Time_Of_Call__c }}","rightValue":"Meeting Booked"}]}},"typeVersion":2.2},{"id":"ee00437a-8586-449c-ab4f-04b91d5f247b","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-440,-360],"parameters":{"width":340,"height":820,"content":"![Callforge](https://uploads.n8n.io/templates/callforgeshadow.png)\n## CallForge\nCallForge allows you to extract important information for different departments from your Sales Gong Calls. \n\n### Salesforce Trigger\nThis workflow triggers the AI agent to run, processing calls every hour. It uses the Gong/Salesforce integration to look for new conversation objects in Salesforce which indicate that a new recording has synced to Salesforce. This allows us to filter calls based on internal milestones and metrics ensuring only calls that meet a certain criteria are processed. "},"typeVersion":1},{"id":"2906d433-070d-4240-ba2f-a1669ce5ccc1","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[-80,-360],"parameters":{"color":7,"width":1940,"height":820,"content":"## Get Gong Transcript and Call Details\nThe transcript is to pass into the AI prompt, but needs to be transformed first. The Call details provide the Prompt with metadata."},"typeVersion":1},{"id":"96cb8746-3605-4723-b8b5-33bbe8841eaa","name":"Format call into correct JSON Object","type":"n8n-nodes-base.set","position":[1360,-140],"parameters":{"options":{},"assignments":{"assignments":[{"id":"881fab8b-2f6e-474e-a913-c4bde2b6bd2e","name":"id","type":"string","value":"={{ $json.metaData.id }}"},{"id":"29aad399-1bb7-49e3-8fc9-cf8a6353536a","name":"url","type":"string","value":"={{ $json.metaData.url }}"},{"id":"709d029e-6843-42e1-94cc-d01857918617","name":"title","type":"string","value":"={{ $json.metaData.title }}"},{"id":"39de0391-207b-46ec-9230-cf83667c42b8","name":"scheduled","type":"string","value":"={{ $json.metaData.scheduled }}"},{"id":"05e3a4a5-12a4-4e14-a8bf-4231e4b2c5b1","name":"started","type":"string","value":"={{ $json.metaData.started }}"},{"id":"19de15be-56e5-4935-807c-9530cb1da5a8","name":"duration","type":"number","value":"={{ $json.metaData.duration }}"},{"id":"5a15284b-7c7f-4174-ae6a-82a0dade0542","name":"primaryUserId","type":"string","value":"={{ $json.metaData.primaryUserId }}"},{"id":"aa58e20b-ddaa-4ed1-a0e2-06125103216f","name":"direction","type":"string","value":"={{ $json.metaData.direction }}"},{"id":"0f877bb4-a75f-4691-92b0-8b29b939a5b4","name":"system","type":"string","value":"={{ $json.metaData.system }}"},{"id":"05b3cb81-244d-4f42-a681-13aca1c1df0d","name":"scope","type":"string","value":"={{ $json.metaData.scope }}"},{"id":"2f9b87d1-e0bd-4170-88da-6966c00c7a2b","name":"media","type":"string","value":"={{ $json.metaData.media }}"},{"id":"86282040-ceea-4a88-ae47-d5e3fa7cb1a7","name":"language","type":"string","value":"={{ $json.metaData.language }}"},{"id":"6d8e4e35-5b84-4a1b-a2c1-605ea5e08e66","name":"workspaceId","type":"string","value":"={{ $json.metaData.workspaceId }}"},{"id":"85f50bb3-306e-4fb3-921b-ff0f61acecbd","name":"sdrDisposition","type":"string","value":"={{ $json.metaData.sdrDisposition }}"},{"id":"a779d6e8-0d07-4159-8b56-b3c2e49d1c19","name":"clientUniqueId","type":"string","value":"={{ $json.metaData.clientUniqueId }}"},{"id":"14718f26-69e1-4e4b-90b5-dd059af6459e","name":"customData","type":"string","value":"={{ $json.metaData.customData }}"},{"id":"4741d29d-0ad6-471d-8432-e7158daeb224","name":"purpose","type":"string","value":"={{ $json.metaData.purpose }}"},{"id":"7e390036-376e-430d-bd28-43d52ae8794b","name":"meetingUrl","type":"string","value":"={{ $json.metaData.meetingUrl }}"},{"id":"1ea1f639-8327-4e76-bb3b-f08182fdb87a","name":"isPrivate","type":"boolean","value":"={{ $json.metaData.isPrivate }}"},{"id":"855ceef1-6bae-44ea-b2af-cc4aa38d6a37","name":"calendarEventId","type":"string","value":"={{ $json.metaData.calendarEventId }}"},{"id":"f7c11074-70bb-46de-8e7b-2c6d095033c4","name":"sfOpp","type":"string","value":"={{ $('Get all custom Salesforce Gong Objects').item.json.Gong__Primary_Opportunity__c }}"}]}},"typeVersion":3.4},{"id":"5b5eb2c1-7f80-4211-b835-5188376c6df2","name":"Pass to Gong Call Preprocessor","type":"n8n-nodes-base.executeWorkflow","position":[1580,-140],"parameters":{"options":{},"workflowId":{"__rl":true,"mode":"list","value":"6mL5jWOJfuzkpjzx","cachedResultName":"Gong Call Preprocessor Demo"}},"typeVersion":1.1},{"id":"025d3ed7-2bd8-4a88-8834-034036c533c6","name":"Get Gong Call","type":"n8n-nodes-base.gong","position":[1140,-140],"parameters":{"call":{"__rl":true,"mode":"id","value":"={{ $json.Gong__Call_ID__c }}"},"options":{},"operation":"get","requestOptions":{}},"typeVersion":1},{"id":"a4f63c5c-a23e-400f-9fa4-40c61756c321","name":"Sort by date","type":"n8n-nodes-base.sort","position":[440,0],"parameters":{"options":{},"sortFieldsUi":{"sortField":[{"order":"descending","fieldName":"CreatedDate"}]}},"typeVersion":1},{"id":"aa24b82b-3d65-4d1e-be04-7e7d5e439587","name":"Get all custom Salesforce Gong Objects","type":"n8n-nodes-base.salesforce","position":[220,0],"parameters":{"options":{"fields":["CreatedDate","LastActivityDate","Name","Gong__Call_ID__c","Gong__Talk_Time_Us__c","Gong__Talk_Time_Them__c","Gong__Title__c","Gong__View_call__c","Gong__Primary_Opportunity__c","Gong__Opp_Stage_Time_Of_Call__c"],"conditionsUi":{"conditionValues":[{"field":"CreatedDate","value":"={{ $now.minus(4, 'hours') }}","operation":">="}]}},"resource":"customObject","operation":"getAll","customObject":"Gong__Gong_Call__c"},"typeVersion":1},{"id":"c46f7b03-8ce0-468d-ac84-fae9ae5b2466","name":"Run Hourly","type":"n8n-nodes-base.scheduleTrigger","position":[0,-160],"parameters":{"rule":{"interval":[{"field":"hours"}]}},"typeVersion":1.2}],"connections":{"Run Hourly":{"main":[[{"node":"Get all custom Salesforce Gong Objects","type":"main","index":0}]]},"Sort by date":{"main":[[{"node":"Check if Opportunity Stage is Meeting Booked or Discovery","type":"main","index":0}]]},"Get Gong Call":{"main":[[{"node":"Format call into correct JSON Object","type":"main","index":0}]]},"When clicking \u2018Test workflow\u2019":{"main":[[{"node":"Get all custom Salesforce Gong Objects","type":"main","index":0}]]},"Format call into correct JSON Object":{"main":[[{"node":"Pass to Gong Call Preprocessor","type":"main","index":0}]]},"Get all custom Salesforce Gong Objects":{"main":[[{"node":"Sort by date","type":"main","index":0}]]},"Check if Primary Opportunity Contains Value":{"main":[[{"node":"Get Gong Call","type":"main","index":0}]]},"Check if Opportunity Stage is Meeting Booked or Discovery":{"main":[[{"node":"Check if Primary Opportunity Contains Value","type":"main","index":0}]]}},"settings":{},"pinData":{}}

02 — prep Gong calls with sheets & notion for AI summarization

CallForge - 02 - prep Gong calls with sheets & notion for AI summarization

View JSON
{"name":"CallForge - 02 - prep Gong calls with sheets & notion for AI summarization","nodes":[{"parameters":{},"id":"3c86697a-7f76-4a83-916b-9423dbf509f0","name":"When clicking \u2018Test workflow\u2019","type":"n8n-nodes-base.manualTrigger","position":[-80,560],"typeVersion":1,"disabled":true},{"parameters":{"returnAll":true,"filters":{"fromDateTime":"={{ $now.minus({ days: 2 }).toISO() }}","toDateTime":"={{ $now.toISO() }}"},"options":{},"requestOptions":{}},"id":"5b2fd374-0b5d-47fd-8f00-f74d925bb318","name":"Gong","type":"n8n-nodes-base.gong","position":[336,304],"typeVersion":1,"disabled":true},{"parameters":{"content":"## Get Gong Calls and Supporting Data\nBesides the phone calls, integration and competitor data is extracted to supplement the AI prompt with accurate data to compare against mispronunciations. ","height":920,"width":1080,"color":7},"id":"9b18d74a-b6e7-4697-88df-f5b87c144b6c","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[80,128],"typeVersion":1},{"parameters":{"content":"## Remove Duplicates from Queue\nChecks notion for already processed calls and removes them from the processing queue ensuring data is not duplicated. ","height":920,"width":880,"color":7},"id":"ff76c186-ccc5-464a-a26c-a43c902f06a2","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[1184,128],"typeVersion":1},{"parameters":{"workflowId":{"__rl":true,"mode":"list","value":"7BAQDjnHQVYO1SWG","cachedResultName":"Transcript Processor Demo"},"options":{}},"id":"b7310b3d-d296-41b6-9880-7942fabd6597","name":"Transcript Processor","type":"n8n-nodes-base.executeWorkflow","position":[2976,832],"typeVersion":1.1},{"parameters":{"content":"## Generate Clean Transcript \nAllows for reduced prompting in the OpenAI node. ","height":440,"width":700,"color":7},"id":"8ab9642a-30f0-42a1-adee-7b3a66b23617","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[2608,608],"typeVersion":1},{"parameters":{"content":"## Pass Call Transcripts to Call Processor\nThe OpenAI node handles this process and outputs in structured JSON.","height":440,"width":700,"color":7},"id":"aa160ac8-281a-48ed-a612-368a636e7405","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[2608,144],"typeVersion":1},{"parameters":{"content":"## Loop through all calls to get enrichment\nAllows for easier processing due to complexity ","height":920,"width":500,"color":7},"id":"2ae79af8-8079-4e34-8f41-99a2ad84a5ca","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[2080,128],"typeVersion":1},{"parameters":{"content":"![Callforge](https://uploads.n8n.io/templates/callforgeshadow.png)\n## CallForge - The AI Gong Sales Call Processor\nCallForge allows you to extract important information for different departments from your Sales Gong Calls. \n\n### Call PreProcessor\nThis workflow preps the calls to pass into the call processor. It also pulls data from the product in order to enrich the AI Prompt to catch typos in the Gong call transcript. It then cleans up the transcript into a single string and then sends it to the call processor.","height":1200,"width":360,"color":5},"id":"8b06f94c-706a-4395-853c-991bd92fce90","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-304,-160],"typeVersion":1},{"parameters":{},"id":"2bf8df4f-d24a-412a-b830-dfc24aa37efd","name":"Execute Workflow Trigger","type":"n8n-nodes-base.executeWorkflowTrigger","position":[-80,768],"typeVersion":1},{"parameters":{"aggregate":"aggregateAllItemData","destinationFieldName":"calls","options":{}},"id":"1a9e65a8-69c4-4770-9f69-e7b2a543380c","name":"Call Aggregator","type":"n8n-nodes-base.aggregate","position":[688,304],"typeVersion":1},{"parameters":{"fieldsToAggregate":{"fieldToAggregate":[{"fieldToAggregate":"Google Sheets"}]},"options":{}},"id":"d39ef4b8-b20b-4aec-a4af-31e917fb2e96","name":"Integration Aggregator","type":"n8n-nodes-base.aggregate","position":[544,560],"typeVersion":1},{"parameters":{"documentId":{"__rl":true,"mode":"list","value":"1DKrLntdoNScMey5Bb4ggSpS8NFHlYN3kuTJQbrbJU7I","cachedResultUrl":"https://docs.google.com/spreadsheets/d/1DKrLntdoNScMey5Bb4ggSpS8NFHlYN3kuTJQbrbJU7I/edit?usp=drivesdk","cachedResultName":"Most Popular Node Combos"},"sheetName":{"__rl":true,"mode":"list","value":1859794756,"cachedResultUrl":"https://docs.google.com/spreadsheets/d/1DKrLntdoNScMey5Bb4ggSpS8NFHlYN3kuTJQbrbJU7I/edit#gid=1859794756","cachedResultName":"Sheet1"},"options":{}},"id":"0f340b67-75cf-4812-a62c-0138796438ab","name":"Get Integrations","type":"n8n-nodes-base.googleSheets","position":[320,560],"executeOnce":true,"typeVersion":4.5},{"parameters":{"assignments":{"assignments":[{"id":"39dfde65-e5e0-46d8-8596-af7ea31fcd3b","name":"integrations","type":"string","value":"={{ $json[\"Google Sheets\"].join() }}"}]},"options":{}},"id":"ec00b84b-6f55-4d04-98d5-9d193f630447","name":"Comma Separate Integrations","type":"n8n-nodes-base.set","position":[768,560],"typeVersion":3.4},{"parameters":{"assignments":{"assignments":[{"id":"c419af9b-f161-4aac-863f-3a450aaf759f","name":"competitors","type":"string","value":"={{ $jmespath($json.properties['Competitor vs.'].select.options, '[].name').join() }}"}]},"options":{}},"id":"a34b8cc6-0f3b-448f-a53c-39611198b4cd","name":"Comma separate competitors","type":"n8n-nodes-base.set","position":[768,768],"typeVersion":3.4},{"parameters":{"resource":"database","databaseId":{"__rl":true,"mode":"list","value":"2cb8596f-2029-4d15-bf56-7001652f6fcf","cachedResultUrl":"https://www.notion.so/2cb8596f20294d15bf567001652f6fcf","cachedResultName":"n8n vs."},"simple":false},"id":"d3f621f2-d4cc-4726-83f0-d456d88b5c80","name":"Get list of Competitors","type":"n8n-nodes-base.notion","position":[320,768],"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000},{"parameters":{"numberInputs":3},"id":"be8e0c44-e074-497f-b4fb-a2ec75fb312f","name":"Merge 3 objects into one","type":"n8n-nodes-base.merge","position":[1040,560],"typeVersion":3},{"parameters":{"aggregate":"aggregateAllItemData","destinationFieldName":"calldata","options":{}},"id":"7986284e-675f-4408-b3e0-021565a6f3a6","name":"Aggregate Call Data","type":"n8n-nodes-base.aggregate","position":[1344,432],"typeVersion":1},{"parameters":{"fieldToSplitOut":"calldata[0].calls","include":"selectedOtherFields","fieldsToInclude":"calldata[1].integrations, , calldata[2].competitors","options":{}},"id":"3f5dc1d8-763c-4bbb-8a9e-5707a9bcbd51","name":"Split Out Call Data and Competitors","type":"n8n-nodes-base.splitOut","position":[1536,432],"typeVersion":1},{"parameters":{"aggregate":"aggregateAllItemData","options":{}},"id":"174cf249-7b9f-41ca-805c-06763c7f394c","name":"Reduce down to 1 object","type":"n8n-nodes-base.aggregate","position":[1264,768],"typeVersion":1},{"parameters":{"resource":"databasePage","operation":"getAll","databaseId":{"__rl":true,"mode":"list","value":"1a85b6e0-c94f-81a3-aa21-e3ccf8296d72","cachedResultUrl":"https://www.notion.so/1a85b6e0c94f81a3aa21e3ccf8296d72","cachedResultName":"Sales Call Summaries Demo"},"returnAll":true,"options":{}},"id":"215c65fb-0199-466b-9a20-96703150bc9d","name":"Get Previous Phone Calls","type":"n8n-nodes-base.notion","position":[1488,768],"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000},{"parameters":{"assignments":{"assignments":[{"id":"328e6ac8-88f3-4c2f-b8e8-d4a0756efd24","name":"Call ID","type":"string","value":"={{ $json.property_gong_call_id ? $json.property_gong_call_id : \"none\" }}"}]},"options":{}},"id":"5d8fe32f-050e-43e9-bcf4-bc36b88c0e55","name":"Isolate Only Call IDs","type":"n8n-nodes-base.set","position":[1680,768],"typeVersion":3.4},{"parameters":{"mergeByFields":{"values":[{"field1":"['calldata[0].calls'].id","field2":"Call ID"}]},"resolve":"preferInput1","options":{}},"id":"383176fd-8d8b-4f5c-9fb0-8a716b949b61","name":"Only Process New Calls","type":"n8n-nodes-base.compareDatasets","position":[1904,608],"typeVersion":2.3},{"parameters":{"options":{}},"id":"324188c4-5151-47f2-b517-8ae799bf7fbe","name":"Loop Over Calls","type":"n8n-nodes-base.splitInBatches","position":[2288,592],"typeVersion":3},{"parameters":{"workflowId":{"__rl":true,"mode":"list","value":"cg4Eo7yZlhWkqHCB","cachedResultName":"Call Processor Demo"},"options":{}},"id":"fc3d5837-98cb-4d9f-9efd-88b9a8e9c2cc","name":"Process All Call Transcripts","type":"n8n-nodes-base.executeWorkflow","position":[2976,320],"typeVersion":1.1},{"parameters":{},"id":"c67af358-e523-496b-95a2-1cf703b73474","name":"Receive all Transcripts","type":"n8n-nodes-base.noOp","position":[2704,320],"typeVersion":1}],"connections":{"Gong":{"main":[[{"node":"Call Aggregator","type":"main","index":0}]]},"Call Aggregator":{"main":[[{"node":"Merge 3 objects into one","type":"main","index":0}]]},"Loop Over Calls":{"main":[[{"node":"Receive all Transcripts","type":"main","index":0}],[{"node":"Transcript Processor","type":"main","index":0}]]},"Get Integrations":{"main":[[{"node":"Integration Aggregator","type":"main","index":0}]]},"Aggregate Call Data":{"main":[[{"node":"Split Out Call Data and Competitors","type":"main","index":0}]]},"Transcript Processor":{"main":[[{"node":"Loop Over Calls","type":"main","index":0}]]},"Isolate Only Call IDs":{"main":[[{"node":"Only Process New Calls","type":"main","index":1}]]},"Integration Aggregator":{"main":[[{"node":"Comma Separate Integrations","type":"main","index":0}]]},"Only Process New Calls":{"main":[[{"node":"Loop Over Calls","type":"main","index":0}]]},"Get list of Competitors":{"main":[[{"node":"Comma separate competitors","type":"main","index":0}]]},"Receive all Transcripts":{"main":[[{"node":"Process All Call Transcripts","type":"main","index":0}]]},"Reduce down to 1 object":{"main":[[{"node":"Get Previous Phone Calls","type":"main","index":0}]]},"Execute Workflow Trigger":{"main":[[{"node":"Gong","type":"main","index":0},{"node":"Get list of Competitors","type":"main","index":0},{"node":"Get Integrations","type":"main","index":0}]]},"Get Previous Phone Calls":{"main":[[{"node":"Isolate Only Call IDs","type":"main","index":0}]]},"Merge 3 objects into one":{"main":[[{"node":"Aggregate Call Data","type":"main","index":0},{"node":"Reduce down to 1 object","type":"main","index":0}]]},"Comma separate competitors":{"main":[[{"node":"Merge 3 objects into one","type":"main","index":2}]]},"Comma Separate Integrations":{"main":[[{"node":"Merge 3 objects into one","type":"main","index":1}]]},"When clicking \u2018Test workflow\u2019":{"main":[[{"node":"Gong","type":"main","index":0},{"node":"Get Integrations","type":"main","index":0},{"node":"Get list of Competitors","type":"main","index":0}]]},"Split Out Call Data and Competitors":{"main":[[{"node":"Only Process New Calls","type":"main","index":0}]]}},"settings":{},"pinData":{}}

03 — Gong transcript processor and Salesforce enricher

CallForge - 03 - Gong transcript processor and Salesforce enricher

View JSON
{"name":"CallForge - 03 - Gong transcript processor and Salesforce enricher","nodes":[{"parameters":{},"id":"eaa060b3-405d-40d6-bad1-545554566707","name":"Execute Workflow Trigger","type":"n8n-nodes-base.executeWorkflowTrigger","position":[432,448],"typeVersion":1},{"parameters":{"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","requestMethod":"POST","url":"https://api.gong.io/v2/calls/extensive","jsonParameters":true,"options":{"fullResponse":true},"bodyParametersJson":"={\n  \"contentSelector\": {\n    \"context\": \"Extended\",\n    \"contextTiming\": [\"Now\", \"TimeOfCall\"],\n    \"exposedFields\": {\n      \"collaboration\": {\n        \"publicComments\": true\n      },\n      \"content\": {\n        \"pointsOfInterest\": true,\n        \"structure\": true,\n        \"topics\": true,\n        \"trackers\": true\n      },\n      \"interaction\": {\n        \"personInteractionStats\": true,\n        \"questions\": true,\n        \"speakers\": true,\n        \"video\": true\n      },\n      \"media\": false,\n      \"parties\": true\n    }\n  },\n  \"filter\": {\n    \"callIds\": [\"{{ $json['calldata[0].calls'].id }}\"]\n  }\n}"},"id":"81b00a7a-0313-40c0-a03b-fda9e48e0521","name":"Retrieve detailed call data","type":"n8n-nodes-base.httpRequest","position":[672,544],"typeVersion":2},{"parameters":{"authentication":"genericCredentialType","genericAuthType":"httpHeaderAuth","requestMethod":"POST","url":"https://api.gong.io/v2/calls/transcript?callIds=1807130744801961509","jsonParameters":true,"options":{"fullResponse":true},"bodyParametersJson":"={\"filter\":{\"callIds\":[\"{{ $json['calldata[0].calls'].id }}\"]}}"},"id":"088e784d-445f-41ea-b484-24ad9c22d9fd","name":"Get transcript","type":"n8n-nodes-base.httpRequest","position":[672,368],"typeVersion":2},{"parameters":{"assignments":{"assignments":[{"id":"c9828e0c-fce4-487d-b5cb-bff625cb7c8e","name":"Conversation","type":"array","value":"={{ $jmespath($json.body.callTranscripts, '[].transcript[].{\"speaker\": speakerId, \"text\": sentences[].text}') }}"}]},"options":{}},"id":"8d68dd4e-679a-45f9-b8a7-04acde79120a","name":"Join Transcript to String","type":"n8n-nodes-base.set","position":[864,368],"typeVersion":3.4},{"parameters":{"assignments":{"assignments":[{"id":"ee14c39a-1590-4262-b5ab-36640a6e3c31","name":"metaData.CompanyName","type":"string","value":"={{ $json.sfOpp[0].Name }}"},{"id":"0d323985-076c-456f-bf4c-d9520b07f73d","name":"Attendees.internal","type":"array","value":"={{ $jmespath($json.gongData[0].parties, '[?affiliation==`Internal`].emailAddress') }}"},{"id":"ee040180-fce4-4d68-a406-26a88a383c14","name":"metaData.title","type":"string","value":"={{ $json.gongData[0].metaData.title }}"},{"id":"dea503f9-d575-4804-bbe7-0dcf7d5fbea4","name":"metaData.started","type":"string","value":"={{ $json.gongData[0].metaData.started }}"},{"id":"91fa2545-6a02-43e6-b893-4d3133540a5c","name":"metaData.GongCallID","type":"string","value":"={{ $json.gongData[0].metaData.id }}"},{"id":"c0cbfa8b-40d1-4838-a375-88ea8eb85170","name":"metaData.url","type":"string","value":"={{ $json.gongData[0].metaData.url }}"},{"id":"d10a0184-f17c-4fd6-aed5-72656e15f856","name":"Conversation","type":"string","value":"={{ $json.gongData[0].conversationText }}"},{"id":"02eb0113-7e52-4931-bd10-3f2bee87d984","name":"Attendees.external","type":"array","value":"={{ $jmespath($json.gongData[0].parties, '[?affiliation==`External` || affiliation==`Unknown`].emailAddress') }}"},{"id":"c2183c7b-d552-4a16-bb08-c9ed247f8111","name":"Attendees.externalNames","type":"array","value":"={{ $jmespath($json.gongData[0].parties, '[?affiliation==`External` || affiliation==`Unknown`].name') }}"},{"id":"a232bd40-ae56-4c12-8b3f-9062d4880415","name":"Attendees.internalNames","type":"array","value":"={{ $jmespath($json.gongData[0].parties, '[?affiliation==`Internal`].name') }}"},{"id":"99f7143e-af6c-45d2-b3a1-c5169c6632eb","name":"metaData.Integrations","type":"string","value":"={{ $('Execute Workflow Trigger').item.json['calldata[1].integrations'] }}"},{"id":"7fe14a89-5fda-4594-8b5a-6fbd8a519db9","name":"metaData.Competitors","type":"string","value":"={{ $('Execute Workflow Trigger').item.json['calldata[2].competitors'] }}"},{"id":"29fb3dbe-071c-4b02-9dd9-afa4c3a4ad8f","name":"metaData.domain","type":"string","value":"={{ \n  (() => {\n    // List of known free email domains\n    const freeEmailDomains = [\n      'gmail.com',\n      'yahoo.com',\n      'hotmail.com',\n      'outlook.com',\n      'aol.com',\n      'icloud.com',\n      'mail.com',\n      'yandex.com',\n      'protonmail.com'\n    ];\n\n    // Extract email addresses using JMESPath\n    const emailAddresses = $jmespath($json.gongData[0].parties, '[?affiliation==`External` || affiliation==`Unknown`].emailAddress');\n\n    // Function to extract the domain from an email address\n    const extractDomain = (email) => email.match(/@([\\w.-]+)/)?.[1];\n\n    // Filter out free email domains\n    const companyDomains = emailAddresses\n      .map(extractDomain)\n      .filter(domain => domain && !freeEmailDomains.includes(domain.toLowerCase()));\n\n    // Return the first non-free domain or \"Unknown\" if none are found\n    return companyDomains[0] || 'Unknown';\n  })()\n}}"},{"id":"b28eb61e-6052-4022-9d31-447dbf877982","name":"sfOpp","type":"array","value":"={{ $json.sfOpp }}"}]},"options":{}},"id":"fe211641-8eee-4023-849c-c5868ea7a068","name":"Isolate Notion Data","type":"n8n-nodes-base.set","position":[3328,400],"typeVersion":3.4},{"parameters":{"jsCode":"// Retrieve input data from all items\nconst inputData = $input.all();\nconst originalJson = inputData[0].json; // Get the original JSON data\nconst conversation = originalJson.Conversation;\nconst parties = originalJson.parties;\n\n// Create a mapping of speakerId to affiliation\nconst affiliationMap = {};\nparties.forEach(party => {\n  affiliationMap[party.speakerId] = party.affiliation;\n});\n\n// Replace speakerId with affiliation in the conversation data\nconst updatedConversation = conversation.map(entry => {\n  const affiliation = affiliationMap[entry.speaker] || 'Unknown'; // Fallback to 'Unknown' if not found\n  return {\n    ...entry,\n    speaker: affiliation, // Replace speakerId with affiliation\n  };\n});\n\n// Return the updated conversation along with the original JSON data\nreturn [{ json: { ...originalJson, updatedConversation } }];\n"},"id":"e17bf237-36ee-4303-8a95-07ed7a51830e","name":"Join Affiliation","type":"n8n-nodes-base.code","position":[1344,384],"typeVersion":2},{"parameters":{"jsCode":"// Retrieve the original JSON data\nconst originalJson = $json;\nconst conversation = originalJson.updatedConversation;\n\n// Create an array to hold the formatted lines\nconst formattedLines = [];\n\n// Iterate over each entry in the conversation\nconversation.forEach(entry => {\n  const speaker = entry.speaker;\n  const texts = entry.text;\n\n  // Iterate over each text item and format it as \"speaker: text\"\n  texts.forEach(line => {\n    formattedLines.push(`${speaker}: ${line}`);\n  });\n});\n\n// Join the formatted lines with newline characters\nconst result = formattedLines.join('\\n');\n\n// Return the original JSON data along with the new conversationText field\nreturn [{ json: { ...originalJson, conversationText: result } }];\n"},"id":"f27a1176-78ed-4211-9dd7-c8b828b2df96","name":"Join conversation","type":"n8n-nodes-base.code","position":[1552,384],"typeVersion":2},{"parameters":{"content":"![Callforge](https://uploads.n8n.io/templates/callforgeshadow.png)\n## CallForge - The AI Gong Sales Call Processor\nCallForge allows you to extract important information for different departments from your Sales Gong Calls. \n\n### Transcript PreProcessor\nThis workflow preps the call transcripts to pass into the call processor. It starts by using the code node to separate the different speakers into either Internal or External speaker. It also pulls data from Salesforce to enrich the call data by pulling things such as company name. ","height":820,"width":340},"id":"d14113e5-5111-4bd3-ac9f-e6a6cf606d83","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[0,0],"typeVersion":1},{"parameters":{"content":"## Get Gong Transcript and Call Details\nThe transcript is to pass into the AI prompt, but needs to be transformed first. The Call details provide the Prompt with metadata.","height":660,"width":720,"color":7},"id":"bf215419-ae9a-4f94-b4eb-dfa2c5b5e85e","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[368,160],"typeVersion":1},{"parameters":{"content":"## Format Call Transcript \nHere we join the call transcript together and then set the speaker as either Internal (for our sales team) or External (for our customers). ","height":660,"width":580,"color":7},"id":"35db08fd-2af3-47f0-9c01-95efa4311463","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[1104,160],"typeVersion":1},{"parameters":{"content":"## Enrich Call Data\nHere we get the Pipedrive ID using the email domain and use that to search pipedrive for the customer. We also pass the domain into the People Data Labs api to get location data. ","height":780,"width":1320,"color":7},"id":"a050e372-2dc4-4240-95cb-b0d8b5bd0552","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[1712,160],"typeVersion":1},{"parameters":{"content":"## Extract Final Data Blob\nHere we merge the final outputs and get rid of anything we don't need for the final AI prompt. ","height":660,"width":480,"color":7},"id":"0dc5f1d1-f9f1-4b8e-b4cf-ffb2e2f92c92","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[3040,160],"typeVersion":1},{"parameters":{"assignments":{"assignments":[{"id":"64f7f8ec-3c1c-4743-9e5b-6bb5d385e9d2","name":"SFOppId","type":"string","value":"={{ $json.Id }}"},{"id":"85629904-617a-4a5f-87a3-72f2349cdf99","name":"OppType","type":"string","value":"={{ $json.Type }}"},{"id":"f6ec091d-0784-4000-ad49-3bb6ece375ca","name":"LeadSource","type":"string","value":"={{ $json.LeadSource }}"},{"id":"a3fd520e-3577-4c2d-a09a-ad3bc76e0bd7","name":"IsClosed","type":"boolean","value":"={{ $json.IsClosed }}"},{"id":"8a1fac85-5f1b-4ab2-86ea-586df1e2af2b","name":"IsWon","type":"boolean","value":"={{ $json.IsWon }}"},{"id":"0f86f2a2-94bb-412a-b831-974f2528fca3","name":"sfStage","type":"string","value":"={{ $json.StageName }}"},{"id":"f455d38b-d48a-483c-b0d9-def9514741ef","name":"companyAccountId","type":"string","value":"={{ $json.AccountId }}"},{"id":"1eb560db-3dd8-46cb-993d-0e370e25222f","name":"usingn8n","type":"string","value":"={{ $json.n8n_experience__c }}"},{"id":"e1d251e3-40e5-4b63-bbc3-c45e503bb108","name":"ForecastCategory","type":"string","value":"={{ $json.ForecastCategory }}"}]},"options":{}},"id":"e8fc6cd1-09b4-42df-bd88-2336eb7f7979","name":"Extract SF Opp Data","type":"n8n-nodes-base.set","position":[2304,592],"typeVersion":3.4},{"parameters":{"assignments":{"assignments":[{"id":"261c0f53-82d1-4deb-ae52-09ea342d0f88","name":"Employees","type":"string","value":"={{ $json.Employees_Bucket__c }}"},{"id":"ca1c9890-4a7d-43c6-b7ad-bf1d522574a7","name":"Name","type":"string","value":"={{ $json.Name }}"}]},"options":{}},"id":"c072d40c-992a-4f98-9e36-df718c97e51b","name":"Extract SF Opp Data1","type":"n8n-nodes-base.set","position":[2480,768],"typeVersion":3.4},{"parameters":{"resource":"opportunity","operation":"get","opportunityId":"={{ $('Execute Workflow Trigger').item.json[\"calldata[0].calls\"].sfOpp }}"},"id":"f2e40422-71cb-4b89-b773-2597f0e2df4a","name":"Get Opp Data","type":"n8n-nodes-base.salesforce","position":[2064,592],"typeVersion":1},{"parameters":{"resource":"account","operation":"get","accountId":"={{ $json.AccountId }}"},"id":"c92aff95-bddb-450b-8ddc-e7ec81942dcf","name":"Get account data","type":"n8n-nodes-base.salesforce","position":[2304,768],"typeVersion":1},{"parameters":{"fieldToSplitOut":"body.calls","options":{}},"id":"eef857d7-ca83-467a-91a9-9b4af44d81f2","name":"Extract Call Data","type":"n8n-nodes-base.splitOut","position":[864,544],"typeVersion":1},{"parameters":{"mode":"combine","combineBy":"combineByPosition","options":{}},"id":"f2713e25-159d-41d3-8e1c-946d2edc91f3","name":"Merge call and transcript Data","type":"n8n-nodes-base.merge","position":[1152,384],"typeVersion":3},{"parameters":{"aggregate":"aggregateAllItemData","destinationFieldName":"gongData","options":{}},"id":"3061c963-159e-4218-8bfc-1f310d785383","name":"Aggregate Gong Call Transcript","type":"n8n-nodes-base.aggregate","position":[2320,384],"typeVersion":1},{"parameters":{"assignments":{"assignments":[{"id":"0a813814-2e7d-40e0-961f-ba59baf5ece5","name":"externalAttendees","type":"array","value":"={{ $jmespath($json.parties, '[?affiliation==`External` || affiliation==`Unknown`].emailAddress') }}"}]},"options":{}},"id":"2d4afe12-99a3-4e07-b1e1-a89937618823","name":"Get External Attendees Emails","type":"n8n-nodes-base.set","position":[1888,592],"typeVersion":3.4},{"parameters":{"mode":"combine","combineBy":"combineByPosition","options":{}},"id":"114ce5e1-8c44-4055-ab1a-370f6960d407","name":"Combine Salesforce Opp Data","type":"n8n-nodes-base.merge","position":[2672,608],"typeVersion":3},{"parameters":{"aggregate":"aggregateAllItemData","destinationFieldName":"sfOpp","options":{}},"id":"667e20f6-6cdd-4dd7-8a13-7dab04da1c99","name":"Aggregate Salesforce data","type":"n8n-nodes-base.aggregate","position":[2864,608],"typeVersion":1},{"parameters":{"mode":"combine","combineBy":"combineByPosition","options":{}},"id":"421b53f8-9706-4f8b-80c0-46f48aeaf8e9","name":"Merge Enriched Transcript Data","type":"n8n-nodes-base.merge","position":[3120,400],"typeVersion":3}],"connections":{"Get Opp Data":{"main":[[{"node":"Extract SF Opp Data","type":"main","index":0},{"node":"Get account data","type":"main","index":0}]]},"Get transcript":{"main":[[{"node":"Join Transcript to String","type":"main","index":0}]]},"Get account data":{"main":[[{"node":"Extract SF Opp Data1","type":"main","index":0}]]},"Join Affiliation":{"main":[[{"node":"Join conversation","type":"main","index":0}]]},"Extract Call Data":{"main":[[{"node":"Merge call and transcript Data","type":"main","index":1}]]},"Join conversation":{"main":[[{"node":"Get External Attendees Emails","type":"main","index":0},{"node":"Aggregate Gong Call Transcript","type":"main","index":0}]]},"Extract SF Opp Data":{"main":[[{"node":"Combine Salesforce Opp Data","type":"main","index":0}]]},"Extract SF Opp Data1":{"main":[[{"node":"Combine Salesforce Opp Data","type":"main","index":1}]]},"Execute Workflow Trigger":{"main":[[{"node":"Get transcript","type":"main","index":0},{"node":"Retrieve detailed call data","type":"main","index":0}]]},"Aggregate Salesforce data":{"main":[[{"node":"Merge Enriched Transcript Data","type":"main","index":1}]]},"Join Transcript to String":{"main":[[{"node":"Merge call and transcript Data","type":"main","index":0}]]},"Combine Salesforce Opp Data":{"main":[[{"node":"Aggregate Salesforce data","type":"main","index":0}]]},"Retrieve detailed call data":{"main":[[{"node":"Extract Call Data","type":"main","index":0}]]},"Get External Attendees Emails":{"main":[[{"node":"Get Opp Data","type":"main","index":0}]]},"Aggregate Gong Call Transcript":{"main":[[{"node":"Merge Enriched Transcript Data","type":"main","index":0}]]},"Merge Enriched Transcript Data":{"main":[[{"node":"Isolate Notion Data","type":"main","index":0}]]},"Merge call and transcript Data":{"main":[[{"node":"Join Affiliation","type":"main","index":0}]]}},"settings":{},"pinData":{}}

04 — AI workflow for Gong.io sales calls

CallForge - 04 - AI workflow for Gong.io sales calls

View JSON
{"name":"CallForge - 04 - AI workflow for Gong.io sales calls","nodes":[{"parameters":{},"id":"9cc6f505-48cc-49b1-8cf4-eaa59babb835","name":"Loop to next call","type":"n8n-nodes-base.noOp","position":[864,592],"typeVersion":1},{"parameters":{},"id":"1e5cfe2c-ab08-4b9d-b7de-1eb771367403","name":"Execute Workflow Trigger","type":"n8n-nodes-base.executeWorkflowTrigger","position":[-3264,432],"typeVersion":1},{"parameters":{"resource":"databasePage","databaseId":{"__rl":true,"mode":"list","value":"1a85b6e0-c94f-81a3-aa21-e3ccf8296d72","cachedResultUrl":"https://www.notion.so/1a85b6e0c94f81a3aa21e3ccf8296d72","cachedResultName":"Sales Call Summaries Demo"},"title":"={{ $json.metaData.title }}","propertiesUi":{"propertyValues":[{"key":"Call Date|date","date":"={{ $json.metaData.started }}"},{"key":"Recording URL|url","urlValue":"={{ $json.metaData.url }}"},{"key":"Company|rich_text","textContent":"={{ $json.metaData.CompanyName }}"},{"key":"Call Name|title","title":"={{ $json.metaData.title }}"},{"key":"Gong Call ID|rich_text","textContent":"={{ $json.metaData.GongCallID }}"},{"key":"SF Opp ID|rich_text","textContent":"={{ $json.sfOpp[0].SFOppId }}"},{"key":"SF Opp Stage|select","selectValue":"={{ $json.sfOpp[0].sfStage }}"},{"key":"SF Company ID|rich_text","textContent":"={{ $json.sfOpp[0].companyAccountId }}"},{"key":"SF Opp Won|checkbox","checkboxValue":"={{ $json.sfOpp[0].IsWon }}"},{"key":"SF Opp Closed|checkbox","checkboxValue":"={{ $json.sfOpp[0].IsClosed }}"},{"key":"Company Size|select","selectValue":"={{ $json.sfOpp[0].Employees }}"},{"key":"Sales Rep|multi_select","multiSelectValue":"={{ $json.Attendees.internalNames }}"},{"key":"SF Opp Link|url","urlValue":"=https://data-drive-1632.lightning.force.com/lightning/r/Opportunity/{{ $json.sfOpp[0].SFOppId }}/view"},{"key":"SF Company Link|url","urlValue":"=https://data-drive-1632.lightning.force.com/lightning/r/Account/{{ $json.sfOpp[0].companyAccountId }}/view"}]},"options":{"icon":"\ud83d\udcde"}},"id":"d958c85d-7d6e-4c95-8d34-1165a0808b86","name":"Create Notion DB Page","type":"n8n-nodes-base.notion","position":[-720,544],"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000},{"parameters":{"content":"## Process Queue Logic\nIf the run fails for any reason, it can be rerun on only the remaining calls, allowing for greater resilisience in api calls. The main issue I ran into was Notion rate limiting.","height":600,"width":1240,"color":7},"id":"807fd0fd-d5d6-46eb-96d5-333e8ca7d678","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-3344,192],"typeVersion":1},{"parameters":{"content":"## Loop over calls for analysis and Create Parent \n## DB Object to relate other DB objects to\nThe output is a structured JSON object that is then \npassed into a subworkflow for processing in a linear fashion. ","height":600,"width":1360,"color":7},"id":"7ae1090f-beb4-4759-9e37-6faeaf89af31","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-1264,192],"typeVersion":1},{"parameters":{"content":"## Pass Parent Notion ID and Call data into AI Subworkflow for final prompt processing\nThis allows for multiple agents to process and generate structured data from the calls.","height":660,"width":420,"color":7},"id":"f4eb0956-1457-44b2-a561-6bc2f92c3494","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[128,144],"typeVersion":1},{"parameters":{"content":"## Alert on Progress\nIn Slack, a progress alert is generated and updated in real time to keep the company updated on the progress of the call processing. ","height":660,"width":520,"color":7},"id":"8309b442-ed95-4111-b1ba-34cfd85c0a56","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[576,144],"typeVersion":1},{"parameters":{"content":"## Alert Slack Job Complete\nSince this runs in the background, this alerts the team that job finished successfully. ","height":300,"width":600,"color":7},"id":"d1a75c6e-fc80-4821-94ba-ebbddcf13405","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[-496,-128],"typeVersion":1},{"parameters":{"content":"![Callforge](https://uploads.n8n.io/templates/callforgeshadow.png)\n## CallForge - The AI Gong Sales Call Processor\nCallForge allows you to extract important information for different departments from your Sales Gong Calls. \n\n### Call Processor\nThis is where the parent object in notion is generated to store the AI Call data once it's generated. This is done first so that it can be passed into multiple sub objects for storage. Once that's done, it's passed into the AI Processor.","height":820,"width":340,"color":5},"id":"ce21ce37-35fe-43f4-ab4c-eb26f74f4cc9","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[-3696,-32],"typeVersion":1},{"parameters":{"content":"## Alert Slack Job Started\nSince this runs in the background, this alerts the team that job has begun successfully.","height":300,"width":800,"color":7},"id":"25b07479-3290-4c83-8173-06ade70dfca4","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[-2080,112],"typeVersion":1},{"parameters":{"select":"channel","channelId":{"__rl":true,"mode":"list","value":"C080KBCK1TL","cachedResultName":"project-call-forge-alerts"},"text":"=Queu Started, Processing {{ $json.data.length }} calls.","otherOptions":{}},"id":"0bd22379-6ad9-4d1e-8b35-1f1a755f0129","name":"Post Slack Receipt","type":"n8n-nodes-base.slack","position":[-1696,256],"typeVersion":2.2},{"parameters":{"workflowId":{"__rl":true,"mode":"list","value":"4Uol9xlNKyNH213f","cachedResultName":"AI Team Processor Demo"},"options":{}},"id":"6467f155-5f4c-47bf-95fd-38faefa9c36d","name":"AI Team Processor","type":"n8n-nodes-base.executeWorkflow","position":[208,432],"typeVersion":1.1},{"parameters":{"operation":"update","channelId":{"__rl":true,"mode":"id","value":"C080KBCK1TL"},"ts":"={{ $('Loop Over Calls').item.json.slackdata[0].message.ts }}","text":"=Queu Started, Processing calls.\nProgress: {{$node[\"Loop Over Calls\"].context[\"currentRunIndex\"]+1;}}/{{ $('Reduce down to One object').item.json.data.length }}","updateFields":{},"otherOptions":{}},"id":"11718b09-0155-4469-8fbb-19cc7ca6aa86","name":"Update Slack Progress","type":"n8n-nodes-base.slack","position":[624,432],"typeVersion":2.2},{"parameters":{"mode":"combine","combineBy":"combineByPosition","options":{}},"id":"89ba3ead-c7bd-490e-8cc5-b37316fcc6cd","name":"Merge call data and parent notion id","type":"n8n-nodes-base.merge","position":[-240,432],"typeVersion":3},{"parameters":{"aggregate":"aggregateAllItemData","options":{}},"id":"ea22c45f-f262-42ec-91b2-c1b173ee6bce","name":"Reduce down to 1 object","type":"n8n-nodes-base.aggregate","position":[-2976,576],"typeVersion":1},{"parameters":{"resource":"databasePage","operation":"getAll","databaseId":{"__rl":true,"mode":"list","value":"1a85b6e0-c94f-81a3-aa21-e3ccf8296d72","cachedResultUrl":"https://www.notion.so/1a85b6e0c94f81a3aa21e3ccf8296d72","cachedResultName":"Sales Call Summaries Demo"},"returnAll":true,"options":{}},"id":"93adf7b6-8110-4eb2-b941-fefaf75d1ef3","name":"Get all older Calls","type":"n8n-nodes-base.notion","position":[-2736,576],"typeVersion":2.2},{"parameters":{"assignments":{"assignments":[{"id":"328e6ac8-88f3-4c2f-b8e8-d4a0756efd24","name":"Call ID","type":"string","value":"={{ $json.property_gong_call_id ? $json.property_gong_call_id : \"none\" }}"}]},"options":{}},"id":"7a4f2652-4591-465c-b974-cea1d0faf42e","name":"Isolate Only Call IDs","type":"n8n-nodes-base.set","position":[-2512,576],"typeVersion":3.4},{"parameters":{"mergeByFields":{"values":[{"field1":"metaData.GongCallID","field2":"Call ID"}]},"resolve":"preferInput1","options":{}},"id":"db8b92c8-7a38-4259-84a8-510628e77a8b","name":"Only Process New Calls","type":"n8n-nodes-base.compareDatasets","position":[-2272,432],"typeVersion":2.3},{"parameters":{"aggregate":"aggregateAllItemData","options":{}},"id":"77874e0c-f69f-4f37-b5f3-d6df4581da7c","name":"Reduce down to One object","type":"n8n-nodes-base.aggregate","position":[-1936,256],"typeVersion":1},{"parameters":{"aggregate":"aggregateAllItemData","destinationFieldName":"slackdata","options":{}},"id":"d2075fdf-630f-45ea-bec4-a7138b8356da","name":"Bundle Slack Message Data","type":"n8n-nodes-base.aggregate","position":[-1472,256],"typeVersion":1},{"parameters":{"mode":"combine","combineBy":"combineAll","options":{}},"id":"a2a2d932-914d-4434-ab88-b9314ae27ce2","name":"Merge Slack and Call Data","type":"n8n-nodes-base.merge","position":[-1152,400],"typeVersion":3},{"parameters":{"options":{}},"id":"4801ee94-44c4-475a-96f7-2b48629570d7","name":"Loop Over Calls","type":"n8n-nodes-base.splitInBatches","position":[-944,400],"typeVersion":3},{"parameters":{"aggregate":"aggregateAllItemData","destinationFieldName":"notionData","options":{}},"id":"92b8a8b4-fcba-4872-bfb6-f5b681f0e3ba","name":"Bundle Notion Parent Object Data","type":"n8n-nodes-base.aggregate","position":[-512,544],"typeVersion":1},{"parameters":{"aggregate":"aggregateAllItemData","options":{}},"id":"c7f3ab1d-1ba0-4a56-ac20-fe4cfff15956","name":"Bundle Processed Calls","type":"n8n-nodes-base.aggregate","position":[-416,-16],"typeVersion":1},{"parameters":{"select":"channel","channelId":{"__rl":true,"mode":"list","value":"C080KBCK1TL","cachedResultName":"project-call-forge-alerts"},"text":"=Queu Processed, {{ $json.data.length }} calls successfully added to Database.","otherOptions":{}},"id":"beb9f46a-d24e-4b47-84ec-11e26f2f839d","name":"Post Completed Calls Message","type":"n8n-nodes-base.slack","position":[-112,-16],"typeVersion":2.2}],"connections":{"Loop Over Calls":{"main":[[{"node":"Bundle Processed Calls","type":"main","index":0}],[{"node":"Merge call data and parent notion id","type":"main","index":0},{"node":"Create Notion DB Page","type":"main","index":0}]]},"AI Team Processor":{"main":[[{"node":"Update Slack Progress","type":"main","index":0}]]},"Loop to next call":{"main":[[{"node":"Loop Over Calls","type":"main","index":0}]]},"Post Slack Receipt":{"main":[[{"node":"Bundle Slack Message Data","type":"main","index":0}]]},"Get all older Calls":{"main":[[{"node":"Isolate Only Call IDs","type":"main","index":0}]]},"Create Notion DB Page":{"main":[[{"node":"Bundle Notion Parent Object Data","type":"main","index":0}]]},"Isolate Only Call IDs":{"main":[[{"node":"Only Process New Calls","type":"main","index":1}]]},"Update Slack Progress":{"main":[[{"node":"Loop to next call","type":"main","index":0}]]},"Bundle Processed Calls":{"main":[[{"node":"Post Completed Calls Message","type":"main","index":0}]]},"Only Process New Calls":{"main":[[{"node":"Reduce down to One object","type":"main","index":0},{"node":"Merge Slack and Call Data","type":"main","index":1}]]},"Reduce down to 1 object":{"main":[[{"node":"Get all older Calls","type":"main","index":0}]]},"Execute Workflow Trigger":{"main":[[{"node":"Only Process New Calls","type":"main","index":0},{"node":"Reduce down to 1 object","type":"main","index":0}]]},"Bundle Slack Message Data":{"main":[[{"node":"Merge Slack and Call Data","type":"main","index":0}]]},"Merge Slack and Call Data":{"main":[[{"node":"Loop Over Calls","type":"main","index":0}]]},"Reduce down to One object":{"main":[[{"node":"Post Slack Receipt","type":"main","index":0}]]},"Bundle Notion Parent Object Data":{"main":[[{"node":"Merge call data and parent notion id","type":"main","index":1}]]},"Merge call data and parent notion id":{"main":[[{"node":"AI Team Processor","type":"main","index":0}]]}},"settings":{},"pinData":{}}

05 — Gong.io call analysis with Azure AI & CRM sync

CallForge - 05 - Gong.io call analysis with Azure AI & CRM sync

View JSON
{"name":"CallForge - 05 - Gong.io call analysis with Azure AI & CRM sync","nodes":[{"id":"b092ac6b-f12a-4eaa-9424-5cbfc51acc7e","name":"Execute Workflow Trigger","type":"n8n-nodes-base.executeWorkflowTrigger","position":[-700,-100],"parameters":{},"typeVersion":1},{"id":"6c0aba3a-4e0c-443f-a08b-d871daa36839","name":"Structured Output Parser1","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[-20,260],"parameters":{"jsonSchemaExample":"{\n    \"MarketingInsights\": [\n        {\n            \"Tag\": \"Landing Page Opportunity\",\n            \"Summary\": \"The prospect mentioned needing more detailed information about how n8n ensures GDPR compliance, suggesting a landing page dedicated to security features.\"\n        },\n        {\n            \"Tag\": \"Workflow Template Request\",\n            \"Summary\": \"The prospect asked if there is a template for automating Slack notifications based on CRM updates, which would streamline their sales process.\"\n        },\n        {\n            \"Tag\": \"Brand Advocate Potential\",\n            \"Summary\": \"The prospect expressed excitement about n8n, saying, 'This is exactly what we've been looking for,' and mentioned they would be happy to share their experience if it works well.\"\n        }\n    ],\n    \"RecurringTopics\": [\n        {\n            \"Topic\": \"Data Security\",\n            \"Mentions\": 6,\n            \"Context\": \"The organization emphasized the importance of secure integrations to comply with GDPR and protect customer data in cloud-based workflows.\"\n        },\n        {\n            \"Topic\": \"Customer Support Automation\",\n            \"Mentions\": 4,\n            \"Context\": \"Discussions focused on automating ticket assignment and resolution workflows to improve response times and customer satisfaction.\"\n        },\n        {\n            \"Topic\": \"Slack Integration\",\n            \"Mentions\": 3,\n            \"Context\": \"The organization wanted to explore how n8n could automate notifications and task updates through Slack for better team collaboration.\"\n        }\n    ],\n    \"ActionableInsights\": [\n        {\n            \"RecommendationType\": \"Blog Post\",\n            \"Title\": \"Ensuring GDPR Compliance in Workflow Automation\",\n            \"Topic\": \"Data Security\",\n            \"Rationale\": \"Data security was the most frequently mentioned topic, with specific interest in GDPR compliance and secure integrations.\"\n        },\n        {\n            \"RecommendationType\": \"Tutorial\",\n            \"Title\": \"Automating Slack Notifications with n8n\",\n            \"Topic\": \"Slack Integration\",\n            \"Rationale\": \"The prospect requested guidance on setting up automated Slack notifications for team workflows, indicating strong demand for this feature.\"\n        },\n        {\n            \"RecommendationType\": \"Case Study\",\n            \"Title\": \"How Automated Customer Support Workflows Boosted Efficiency\",\n            \"Topic\": \"Customer Support Automation\",\n            \"Rationale\": \"Customer support automation was highlighted as a major challenge, suggesting value in showcasing real-world success stories.\"\n        }\n    ]\n}"},"typeVersion":1.2},{"id":"e928f8b7-0775-43f6-815e-d872663818d5","name":"Marketing AI Agent Processor","type":"@n8n/n8n-nodes-langchain.agent","position":[-200,40],"parameters":{"text":"={{ $json.prompt.transcript }}","options":{"systemMessage":"=You are an AI assistant specializing in analyzing sales call transcripts. Your task is to extract structured information about the call, including use cases, objections, summaries, and other relevant insights for the marketing team at n8n. Pay close attention to action-oriented language and specific requests made by the external participants.\n\n\n1. **Marketing Insights**: Summarize any marketing-related insights from the external speaker, organized by specific tags that correspond to different areas of marketing focus (e.g., website work, workflow templates, video content, community forum). Each piece of insight should include a Tag field with the specific marketing area and a Summary field that provides a brief description of the insight. Only use the below list of tags when creating insights and ensure the insight is specific to insights from the list below. For example do not give pricing insight for marketing insights. If no marketing insights that match the tags below are not found, output an empty array. Please do not output any tags that are not defined below in the numbered list. Include relevant quotes from the transcript to explain why the marketing tag is relevant in the summary output.\nTags:\n1. **Landing Page Opportunity**: Indicates a need for a new or improved landing page targeting a specific enterprise demographic. For example, if a prospect mentions needing more detailed information about security or scalability, this could prompt the creation of a dedicated landing page.\n2. **Workflow Template Request**: Indicates a specific workflow template that a prospect or customer would find helpful. This could be based on mentions of repetitive tasks or automation needs that aren't yet covered by your existing templates.\n3. **Video Tutorial Request**: Prospects asking for video tutorials or walkthroughs on how to set up specific workflows, integrations, or advanced features.\n4. **Feature Explanation**: Indicates a need for video or text based content explaining the benefits or setup of specific n8n features. For example, if a prospect doesn\u2019t understand how the HTTP request node works, a video or blog post could be created to explain this.\n5. **Success Story Request**: Prospects interested in seeing content showcasing how other companies have successfully implemented n8n. Try to include details in the summary of what success looks like for the external speaker.\n6. **Customer Success Story**: Stories that the external speaker gave of success they have found using the n8n platform. In the summary include any direct quotes taken from the transcript about this story.\n7. **FAQ Gap**: Questions or concerns raised during calls that are not covered or easily found in the existing forum FAQ or website.\n8. **Event/Conference Mention**: Capture mentions of events, conferences, or industry meetups where n8n could have a presence. Try to get name, location, and date if possible from the transcript.\n9. **Brand Advocate Potential**: Identify prospects who sound excited or enthusiastic about using n8n and could become brand advocates. Use this to prioritize follow-ups for case studies, testimonials, or involvement in community events. It could also inform who to reach out to for co-marketing opportunities.\n9. **Documentation Gap**: Use this tag anytime an external speaker mentions a lack or frustration with the n8n documentation pages, and any suggestions to improve them. Include the suggestion in the summary if mentioned.\nA. Expected example Format: \"MarketingInsights\": [\n{\n\"Tag\": \"Landing Page Opportunity\",\n\"Summary\": \"The prospect mentioned wanting more information about data security, suggesting a need for a dedicated landing page on security features.\"\n},\n{\n\"Tag\": \"WorkFlow Template Request\",\n\"Summary\": \"The external speaker asked if there was a workflow template for automating CRM data entry.\"\n}\n]\nB. Expected Example Format for no insights: \"MarketingInsights\": []\n\n---\n\n### **2. Marketing Insights: Keyword and Topic Analysis**\n\nAnalyze the call transcript to identify recurring topics or phrases that were mentioned multiple times by the external speaker or other participants. This analysis will be used to match recurring topics with keyword volume data and adapt **n8n's** blog content accordingly.\n\n1. **Identify Recurring Topics or Phrases**:\n   - Extract key topics, phrases, or keywords mentioned more than once during the call.\n   - Focus on phrases related to:\n     - Pain points or challenges.\n     - Desired features or solutions.\n     - Industry-specific terminology.\n     - Automation goals or use case ideas.\n\n2. **Provide a Frequency Analysis**:\n   - Rank the identified topics or phrases by the number of times they were mentioned during the call.\n   - Group similar phrases under a unified topic if they are variations of the same concept (e.g., \"CRM integration\" and \"integrating with CRM\").\n\n3. **Include Context**:\n   - For each topic or phrase, summarize its context within the conversation. Example contexts could include:\n     - Pain points the topic addresses.\n     - Solutions or workflows discussed.\n     - Broader goals or industry-specific needs.\n\n4. **Output Format**:\n   - **Recurring Topics**:\n     ```json\n     {\n         \"RecurringTopics\": [\n             {\n                 \"Topic\": \"Data Security\",\n                 \"Mentions\": 5,\n                 \"Context\": \"Discussed in relation to GDPR compliance and secure integrations with cloud platforms.\"\n             },\n             {\n                 \"Topic\": \"Customer Support Automation\",\n                 \"Mentions\": 3,\n                 \"Context\": \"Focused on improving ticket resolution times through automated workflows.\"\n             },\n             {\n                 \"Topic\": \"CRM Integration\",\n                 \"Mentions\": 2,\n                 \"Context\": \"Talked about syncing Salesforce data with email campaigns.\"\n             }\n         ]\n     }\n     ```\n\nIf there are no recurring topics, use this output format: \n     ```json\n     {\n         \"RecurringTopics\": []\n     }\n     ```\n\n   - **Actionable Insights**:\n     ```json\n     {\n         \"ActionableInsights\": [\n             {\n                 \"RecommendationType\": \"Blog Post\",\n                 \"Title\": \"Top 5 Ways to Ensure Data Security in Workflow Automation\",\n                 \"Topic\": \"Data Security\",\n                 \"Rationale\": \"Data security was mentioned frequently in the context of compliance and cloud integrations, indicating high interest.\"\n             },\n             {\n                 \"RecommendationType\": \"Tutorial\",\n                 \"Title\": \"How to Automate Customer Support with n8n\",\n                 \"Topic\": \"Customer Support Automation\",\n                 \"Rationale\": \"Customer support automation was discussed as a key challenge, suggesting value in a step-by-step guide.\"\n             },\n             {\n                 \"RecommendationType\": \"Marketing Campaign\",\n                 \"Title\": \"CRM Integration as a Cornerstone for Workflow Automation\",\n                 \"Topic\": \"CRM Integration\",\n                 \"Rationale\": \"CRM integration was highlighted as a critical feature, making it a strong focus for targeted marketing campaigns.\"\n             }\n         ]\n     }\n     ```\n\nIf there are no actionable insights, use the following output format: \n\n     ```json\n     {\n         \"ActionableInsights\": []\n     }\n     ```\n\n---\n"},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":1.7},{"id":"7db7a2d6-055f-47b2-aabc-1f1016e7d817","name":"Structured Output Parser2","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[0,860],"parameters":{"jsonSchemaExample":"{\n    \"ProductFeedback\": [\n        {\n            \"Sentiment\": \"Positive\",\n            \"Feedback\": \"The external speaker mentioned that 'n8n's interface is very intuitive and user-friendly,' highlighting how quickly their team was able to set up workflows without prior experience.\"\n        },\n        {\n            \"Sentiment\": \"Negative\",\n            \"Feedback\": \"The external speaker expressed frustration about the lack of a native integration for their HR platform, saying, 'It adds complexity when we have to rely on HTTP requests instead of a dedicated node.'\"\n        }\n    ],\n    \"AI_ML_References\": {\n        \"Exist\": true,\n        \"Context\": \"The external speaker discussed using AI to prioritize and categorize support tickets based on urgency and customer sentiment, mentioning that n8n could potentially integrate with their existing AI model for automated ticket routing.\",\n        \"Details\": {\n            \"DevelopmentStatus\": \"Building\",\n            \"Department\": \"Support\",\n            \"RequiresAgents\": true,\n            \"RequiresRAG\": true,\n            \"RequiresChat\": \"Yes: External App (e.g. Slack)\"\n        }\n    }\n}\n"},"typeVersion":1.2},{"id":"e97e1e48-52ba-4cbd-ac97-78ac756aa792","name":"Product AI Agent Processor","type":"@n8n/n8n-nodes-langchain.agent","position":[-200,640],"parameters":{"text":"={{ $json.prompt.transcript }}","options":{"systemMessage":"=You are an AI assistant specializing in analyzing sales call transcripts. Your task is to extract structured information about the call, including use cases, objections, summaries, and other relevant insights for the product team at n8n. Pay close attention to action-oriented language and specific requests made by the external participants.\n\n**Product Feedback**: Summarize any feedback given about the n8n automation platform from the external speaker in a structured JSON format. Each piece of feedback should include a **Sentiment** field that can be either \"Positive\" or \"Negative\" and a **Feedback** field that summarizes the comment. **For Positive Feedback**: Look for praise about features or aspects such as ease of use, performance, scalability, support, or cost-effectiveness. Positive feedback may include phrases like \"we love,\" \"the best part,\" \"a game-changer,\" or \"it's very intuitive.\" Capture comments that highlight what the external speaker appreciates about n8n or how it solves a problem for them. **For Negative Feedback**: Focus on areas where the product is lacking, or specific requests for new features or improvements. Use cues such as phrases from the internal speaker like \"we don't offer that,\" \"we don't support that,\" or mentions of the product \"Roadmap.\" Also, note instances where the internal speaker invites the external attendee to explain a requirement, using phrases like \"we can bring this to our product team\" or \"if you can explain your requirement, I can bring this to our product department.\"\n    A.  Expected Format: \"ProductFeedback\": [ { \"Sentiment\": \"Positive\", \"Feedback\": \"Summary of the positive feedback provided by the external speaker\" }, { \"Sentiment\": \"Negative\", \"Feedback\": \"Summary of the negative feedback or unmet needs described by the external speaker\" } ]\n    B. Expected Format for no feedback: \"ProductFeedback\": []\n\n\n---\n\n**AI/ML References**\nIdentify any mentions of AI or machine learning in the conversation from the external speaker. Summarize the context in which these technologies are discussed and capture additional details about their development status, department, and specific requirements.\n\n1. **What to Extract**:\n   - **Mentions of AI/ML**: Determine whether AI or machine learning was mentioned in the conversation.\n   - **Context**: Summarize how the external speaker plans to use these technologies with n8n, focusing on their goals, challenges, or implementation strategies.\n   - **Additional Details**:\n     - **Development Status**: Is this an idea, currently being built, or already in production? (output only one of these options exactly as they are shown here: \"Idea\", \"Building\", \"In Production\")\n     - **Department**: Which department will use this AI/ML solution? (output only one of these options exactly as they are shown here: \"Support\", \"Marketing\", \"Security\", \"Sales\", \"BI\", \"Engineering\")\n     - **Requires Agents**: Does this AI/ML use case require agents for interaction or execution? (Options: true/false)\n     - **Requires RAG**: Does this use case require Retrieval-Augmented Generation (RAG) for AI? (Options: true/false)\n     - **Requires Chat**: Does this use case involve chat functionality? Specify the type. Output only one of these options exactly as they are shown here: \n- \"Yes: Custom Chat\"\n- \"Yes: External App (e.g. Slack)\"\n- \"Yes: n8n chat\"\n- \"No\", \"Yes\"\n\n2. **Output Format**:\n   \njson\n   {\n       \"AI_ML_References\": {\n           \"Exist\": true,\n           \"Context\": \"The external speaker mentioned using AI to automate data classification, stating that they would like to explore how n8n could support machine learning models for more accurate data tagging.\",\n           \"Details\": {\n               \"DevelopmentStatus\": \"Idea\",\n               \"Department\": \"Support\",\n               \"RequiresAgents\": true,\n               \"RequiresRAG\": false,\n               \"RequiresChat\": \"Yes: External App (e.g. Slack)\"\n           }\n       }\n   }\n\n\n3. **If No AI/ML Mentioned**:\n   \njson\n{\n    \"AI_ML_References\": {\n        \"Exist\": false,\n        \"Context\": \"null\",\n        \"Details\": {\n            \"DevelopmentStatus\": \"null\",\n            \"Department\": \"null\",\n            \"RequiresAgents\": false,\n            \"RequiresRAG\": false,\n            \"RequiresChat\": \"null\"\n        }\n    }\n}\n"},"promptType":"define","hasOutputParser":true},"retryOnFail":true,"typeVersion":1.7},{"id":"1d3c0b6c-0b1a-42d4-914f-0f3b08eb505a","name":"Sales Data Processor","type":"n8n-nodes-base.executeWorkflow","position":[620,-660],"parameters":{"options":{},"workflowId":{"__rl":true,"mode":"list","value":"I6lNpYOK5i8SXhPU","cachedResultName":"Sales AI Data Processor Demo"},"workflowInputs":{"value":{},"schema":[],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":true}},"typeVersion":1.2},{"id":"778cfa90-4a19-424b-aeb2-71bc1cf61848","name":"Marketing Data Processor","type":"n8n-nodes-base.executeWorkflow","position":[620,40],"parameters":{"options":{},"workflowId":{"__rl":true,"mode":"list","value":"enqv6mILqxzIW5TV","cachedResultName":"Marketing AI Data Processor Demo"},"workflowInputs":{"value":{},"schema":[],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":true}},"typeVersion":1.2},{"id":"22950eb8-5c89-4a17-91fc-f40e543c69b8","name":"Product AI Data Processor","type":"n8n-nodes-base.executeWorkflow","position":[640,640],"parameters":{"options":{},"workflowId":{"__rl":true,"mode":"list","value":"sn0DvsN0Wqpkrxjv","cachedResultName":"Product AI Data Processor Demo"},"workflowInputs":{"value":{},"schema":[],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":true}},"typeVersion":1.2},{"id":"24989b3a-03bc-496b-9d0c-dd64a40816fd","name":"Data Recall Sales","type":"n8n-nodes-base.set","position":[260,-620],"parameters":{"options":{},"assignments":{"assignments":[{"id":"d8d3bef7-4e05-4dc0-8108-b2a7b5b7cb73","name":"AIoutput","type":"object","value":"={{ $json.output }}"},{"id":"044e7d52-d025-45e6-af14-6cf255be1b2f","name":"metaData","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.metaData }}"},{"id":"be5c1891-77b6-4bfd-b4ab-11e2e54470f6","name":"Attendees","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.Attendees }}"},{"id":"f35dbafc-5090-4ac0-b291-a99ceeca80dd","name":"PeopleDataLabs","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.PeopleDataLabs }}"},{"id":"a17df98b-5227-48f5-9d8f-2fdd8073f7ac","name":"sfOpp","type":"array","value":"={{ $('Execute Workflow Trigger').item.json.sfOpp }}"},{"id":"d041a535-c654-4f4a-b00a-c57f801da80e","name":"pipedrive","type":"array","value":"={{ $('Execute Workflow Trigger').item.json.pipedrive }}"},{"id":"e9336d46-11fc-46b1-9e9f-1fa1432a38dc","name":"notionData","type":"array","value":"={{ $('Execute Workflow Trigger').item.json.notionData }}"}]}},"typeVersion":3.4},{"id":"b710f198-ead4-46ae-8bbc-ac50d8533dbc","name":"Data Recall Marketing","type":"n8n-nodes-base.set","position":[240,40],"parameters":{"options":{},"assignments":{"assignments":[{"id":"d8d3bef7-4e05-4dc0-8108-b2a7b5b7cb73","name":"AIoutput","type":"object","value":"={{ $json.output }}"},{"id":"044e7d52-d025-45e6-af14-6cf255be1b2f","name":"metaData","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.metaData }}"},{"id":"be5c1891-77b6-4bfd-b4ab-11e2e54470f6","name":"Attendees","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.Attendees }}"},{"id":"f35dbafc-5090-4ac0-b291-a99ceeca80dd","name":"PeopleDataLabs","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.PeopleDataLabs }}"},{"id":"a17df98b-5227-48f5-9d8f-2fdd8073f7ac","name":"sfOpp","type":"array","value":"={{ $('Execute Workflow Trigger').item.json.sfOpp }}"},{"id":"d041a535-c654-4f4a-b00a-c57f801da80e","name":"pipedrive","type":"array","value":"={{ $('Execute Workflow Trigger').item.json.pipedrive }}"},{"id":"e9336d46-11fc-46b1-9e9f-1fa1432a38dc","name":"notionData","type":"array","value":"={{ $('Execute Workflow Trigger').item.json.notionData }}"}]}},"typeVersion":3.4},{"id":"ad407809-2281-4f54-a363-6a3b32392818","name":"Data Recall Product","type":"n8n-nodes-base.set","position":[240,640],"parameters":{"options":{},"assignments":{"assignments":[{"id":"d8d3bef7-4e05-4dc0-8108-b2a7b5b7cb73","name":"AIoutput","type":"object","value":"={{ $json.output }}"},{"id":"044e7d52-d025-45e6-af14-6cf255be1b2f","name":"metaData","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.metaData }}"},{"id":"be5c1891-77b6-4bfd-b4ab-11e2e54470f6","name":"Attendees","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.Attendees }}"},{"id":"f35dbafc-5090-4ac0-b291-a99ceeca80dd","name":"PeopleDataLabs","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.PeopleDataLabs }}"},{"id":"a17df98b-5227-48f5-9d8f-2fdd8073f7ac","name":"sfOpp","type":"array","value":"={{ $('Execute Workflow Trigger').item.json.sfOpp }}"},{"id":"d041a535-c654-4f4a-b00a-c57f801da80e","name":"pipedrive","type":"array","value":"={{ $('Execute Workflow Trigger').item.json.pipedrive }}"},{"id":"e9336d46-11fc-46b1-9e9f-1fa1432a38dc","name":"notionData","type":"array","value":"={{ $('Execute Workflow Trigger').item.json.notionData }}"}]}},"typeVersion":3.4},{"id":"9ee91a9b-0175-4a02-bc44-2e37302dc28c","name":"SF Sales Data Processor","type":"n8n-nodes-base.executeWorkflow","disabled":true,"position":[620,-480],"parameters":{"options":{},"workflowId":{"__rl":true,"mode":"id","value":"22QS6tCywKY2LN2K"},"workflowInputs":{"value":{},"schema":[],"mappingMode":"defineBelow","matchingColumns":[],"attemptToConvertTypes":false,"convertFieldsToString":true}},"typeVersion":1.2},{"id":"7ee72c9f-19ab-4f9b-95ee-7292c8490464","name":"Azure OpenAI Chat Model","type":"@n8n/n8n-nodes-langchain.lmChatAzureOpenAi","position":[-180,-380],"parameters":{"model":"gpt-4o-mini","options":{}},"typeVersion":1},{"id":"31ac033f-ded5-459c-b427-a3cd39325439","name":"Azure OpenAI Chat Model1","type":"@n8n/n8n-nodes-langchain.lmChatAzureOpenAi","position":[-200,260],"parameters":{"model":"gpt-4o-mini","options":{}},"typeVersion":1},{"id":"bc64a18b-3d30-46ff-a983-683dfc481a9d","name":"Azure OpenAI Chat Model2","type":"@n8n/n8n-nodes-langchain.lmChatAzureOpenAi","position":[-200,840],"parameters":{"model":"gpt-4o-mini","options":{}},"typeVersion":1},{"id":"009c4b72-1cb6-4c27-8749-6a905f2d210e","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[-760,-360],"parameters":{"color":7,"width":480,"height":600,"content":"## Receive Call Data and standardize User Prompt\nThis node gets the call data passed into it, and it creates a single user prompt that is passed into all 3 AI agents. This allows for standardizing things such as name misprononciation and integration data to be set in one node that can easily be updated and automatically be sent to the 3 AI agents. "},"typeVersion":1},{"id":"bcb43542-eef3-46ee-8610-b2a9ddda382b","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[-1120,-580],"parameters":{"color":5,"width":340,"height":820,"content":"![Callforge](https://uploads.n8n.io/templates/callforgeshadow.png)\n## CallForge - The AI Gong Sales Call Processor\nCallForge allows you to extract important information for different departments from your Sales Gong Calls. \n\n### AI Agent Processor\nThis is where the AI magic happens. In this workflow, we take the final transcript blog and pass it into the AI Prompt for analysis and data extraction. "},"typeVersion":1},{"id":"aba37121-e48f-4e81-91af-78ee00f02276","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[-260,-780],"parameters":{"color":7,"width":1160,"height":580,"content":"## Process Sales Agent\nThe Sales agent structured output is passed to both the notion processor and the Salesforce processor, thereby feeding the data back to the main platform where the sales team works. "},"typeVersion":1},{"id":"c2827dbe-229d-425a-b5fb-f47ceefc6f70","name":"Sticky Note2","type":"n8n-nodes-base.stickyNote","position":[-260,-180],"parameters":{"color":7,"width":1160,"height":600,"content":"## Process Marketing Agent\nThe marketing agent outputs to a subworkflow that feeds to a notion database. "},"typeVersion":1},{"id":"b8e816ca-1ac7-4445-8a84-9bc4f4f5e037","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[-260,440],"parameters":{"color":7,"width":1160,"height":600,"content":"## Process Product Agent\nThe product team also uses notion so the output is fed to a subworkflow that outputs to Notion as well. "},"typeVersion":1},{"id":"859734c7-efc7-42d5-b597-aaea00beb71c","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[960,-200],"parameters":{"color":7,"width":700,"height":440,"content":"## Process Queue Logic\nIf the run fails for any reason, it can be rerun on only the remaining calls, allowing for greater resilisience in api calls. The main issue I ran into was Notion rate limiting."},"typeVersion":1},{"id":"aa9c227b-74f8-4e30-a89c-2dfb505fbbb4","name":"Create User Prompt","type":"n8n-nodes-base.set","position":[-480,-100],"parameters":{"options":{},"assignments":{"assignments":[{"id":"d843f262-a7b9-44be-802e-56e5e2c7be3f","name":"prompt.transcript","type":"string","value":"=Analyze the following call transcript for a sales call between an n8n sales representative (denoted as \"Internal\") and external attendees (denoted as \"External\" or \"Unknown\"). Provide the following details in a structured JSON format in English. Please note that the company n8n is sometimes incorrectly called NADN, NATN, NAN, NITEN, NNN, or Nathan in the transcript, so keep this in mind when reading the transcript. To help make the transcription more precise, see context details below:\n\nCall Context:\nCompany Domain: {{ $json.metaData.CompanyName }}\nCall Title: {{ $json.metaData.title }}\nCall Attendee Names:\nInternal: {{ $json.Attendees.internalNames }}\nExternal: {{ $json.Attendees.externalNames }}\n\nDue to potential errors in the the transcript, here is a list of our competitors to ensure accuracy. If a misspelled word is used in a competitor context similar sounding to one of these competitors, assume they are talking about this competitor: {{ $json.metaData.Competitors }}\n\nAnd here is a list of our current integrations as well to ensure transcript accuracy. If a misspelled word is used in an integration context similar sounding to one of these integrations, assume they are talking about this integration: {{ $json.metaData.Integrations }}\n\nCall Transcript:\n{{ $json.Conversation }}"}]},"includeOtherFields":true},"typeVersion":3.4},{"id":"978479c2-29c7-4a47-b9f2-5e1a181d25e8","name":"Success Status Generated","type":"n8n-nodes-base.set","position":[1480,0],"parameters":{"options":{},"assignments":{"assignments":[{"id":"f106901a-9970-475c-80d8-356fb71d2e18","name":"status","type":"string","value":"=Successfully ran AI Process on Call for {{ $('Execute Workflow Trigger').item.json.metaData.title }} for Gong ID {{ $('Execute Workflow Trigger').item.json.metaData.GongCallID }}"}]}},"typeVersion":3.4},{"id":"0269ec40-4935-44d8-bab1-c76bf9cac82c","name":"AI Agent","type":"@n8n/n8n-nodes-langchain.agent","position":[-180,-620],"parameters":{"text":"=You have no tools, do not attempt to use an ai tool. {{ $json.prompt.transcript }}","options":{"systemMessage":"You are an AI assistant specializing in analyzing sales call transcripts. Your task is to extract structured information about the call, including use cases, objections, summaries, and other relevant insights for the sales and marketing teams. Pay close attention to action-oriented language and specific requests made by the external participants. You have no tools, do not attempt to use an ai tool. \n\n---\n\n### **1. UseCases**\n**Prompt**:  \n**Objective**: Extract structured information about the use cases discussed during the call. Each use case should focus on a distinct goal, challenge, or project mentioned by the external speaker. Include a detailed summary, relevant department and industry tags, and the current status of implementation.\n\n---\n\n**Instructions**:\n\n1. **Identify Use Cases**:\n   - Look for distinct goals, challenges, or projects mentioned by the external or unknown speaker during the call.  \n   - Pay attention to action-oriented phrases, such as:  \n     - *\u201cWe need\u2026\u201d*  \n     - *\u201cOur goal is\u2026\u201d*  \n     - *\u201cWe\u2019re building\u2026\u201d*  \n     - *\u201cWe\u2019re trying to\u2026\u201d*  \n     - *\u201cWe\u2019d like to explore\u2026\u201d*\n\n2. **Summarize Each Use Case**: Summary\n   - Provide a concise paragraph in the style of a **white paper**, but do not mention Customer names or organization names, for the sake of privacy.  \n   - Structure the summary as follows:\n     - **Start with the problem or goal**: Briefly describe the challenge or objective. Avoid mentioning the company name and use generic industry references, e.g., *\u201cAn organization in the financial industry\u2026\u201d*.  \n     - **Describe the solution or Idea**: Explain how **n8n** or automation in general is used to solve the problem or achieve the goal, focusing on key capabilities and value.  \n     - **Conclude with the benefits**: Highlight tangible outcomes or improvements, using metrics or specific results when possible, as well as quotes from the call where possible.\n\n3. **Implementation Status**: ImplementationStatus\n   - Assign an **ImplementationStatus** tag to indicate the progress of the use case. Use only one of the following tags:\n     - **\"Idea\"**: The use case is in the conceptual phase.  \n     - **\"Building\"**: The use case is actively under development.  \n     - **\"Deployed\"**: The use case is fully implemented and live.  \n     - **\"Stalled\"**: The use case has been paused or is facing challenges.  \n     - **\"Evaluating\"**: The use case is being assessed for feasibility or ROI.  \n\n4. **Assign Department Tags**: DepartmentTags\n   - Select one or more departments that align with the use case. Only output a department tag from the following list based on the context of the use case and company info provided:  \n     - **Engineering**: Automating bug tracking, notifying CI/CD pipeline failures, syncing documentation.\n     - **Finance**: Automating invoice processing, syncing financial data with CRMs, generating financial reports.\n     - **HR**: Managing onboarding workflows, automating reminders for reviews, syncing hiring pipelines.\n     - **Other**: General automations like syncing data between tools, creating APIs, or one-off utilities.\n     - **Product**: Collecting user feedback, automating competitive analysis, updating feature request lists.\n     - **Support**: Automating ticket assignment, summarizing customer feedback, generating FAQs.\n     - **Marketing**: Automating lead capture, scheduling social media posts, tracking campaign metrics.\n     - **DevOps**: Automating infrastructure alerts, streamlining log aggregation, deploying changes.\n     - **IT Ops**: Managing user provisioning, automating network monitoring, syncing asset data.\n     - **Design**: Automating feedback collection, generating image thumbnails, syncing design assets.\n     - **SecOps**: Automating vulnerability scans, sending security alerts, tracking compliance tasks.\n     - **AI**: Integrating AI models, automating data preparation, building AI-powered chatbots.\n     - **Sales**: Automating lead qualification, scheduling follow-ups, generating proposals.\n     - **Building Blocks**: Fundamental workflows like data transformation, API integration, error handling.\n\n5. **Assign Industry Tags**: IndustryTags\n   - Choose one or more industries relevant to the use case.  Only output an industry tag from the following list based on the context of the use case and company info provided:  \n     - **Technology & Software Development**: Automating CI/CD pipelines, bug tracking, syncing tools.\n     - **E-commerce & Retail**: Automating order processing, inventory updates, abandoned cart recovery.\n     - **Financial Services & Banking**: Automating compliance workflows, fraud detection, financial reporting.\n     - **Healthcare**: Scheduling appointments, syncing medical records, automating billing workflows.\n     - **Education & E-learning**: Automating course enrollment, syncing student data, sending reminders.\n     - **Manufacturing**: Managing supply chain workflows, automating equipment monitoring, processing orders.\n     - **Real Estate**: Syncing property listings, automating lead follow-ups, generating trend reports.\n     - **Marketing & Advertising**: Campaign tracking, social media scheduling, lead generation.\n     - **Media & Entertainment**: Content publishing automation, royalty management, audience engagement.\n     - **Transportation & Logistics**: Automating shipment tracking, fleet management, route optimization.\n     - **Nonprofits & NGOs**: Automating donor communication, volunteer coordination, grant reporting.\n     - **Legal & Compliance**: Managing contracts, sending alerts for deadlines, automating legal research.\n     - **Travel & Hospitality**: Booking confirmations, guest communication, feedback management.\n     - **Telecommunications**: Customer onboarding, outage monitoring, automating ticket workflows.\n     - **Energy & Utilities**: Meter readings, billing automation, equipment monitoring.\n     - **Agriculture**: Automating crop monitoring, syncing weather data, managing supply chains.\n     - **Gaming**: Automating in-game event notifications, user onboarding, analytics tracking.\n     - **Aerospace & Defense**: Maintenance reporting, compliance checks, resource coordination.\n     - **Insurance**: Claims processing, policy management, risk assessment reporting.\n     - **Food & Beverage**: Order processing, inventory management, customer loyalty programs.\n     - **Government**: Service request handling, interdepartmental data sharing, citizen engagement.\n\n---\n\n### **Expected Output Format**:\n\n**If Use Cases are identified**:\n```json\n{\n  \"UseCases\": [\n    {\n      \"Summary\": \"A brief paragraph summarizing the specific use case.\",\n      \"DepartmentTags\": [\"RelevantDepartment1\", \"RelevantDepartment2\"],\n      \"IndustryTags\": [\"RelevantIndustry\"],\n      \"ImplementationStatus\": \"Idea\"\n    },\n    {\n      \"Summary\": \"A second distinct use case.\",\n      \"DepartmentTags\": [\"RelevantDepartment\"],\n      \"IndustryTags\": [\"RelevantIndustry\"],\n      \"ImplementationStatus\": \"Building\"\n    }\n  ]\n}\n```\n\n**If no Use Cases are identified**:\n```json\n{\n  \"UseCases\": []\n}\n```\n\n---\n\n### **2. Objection**\n**Prompt**:  \n**Objective**: Identify and categorize objections raised by the external or unknown speaker during the call. Summarize the nature of these objections and tag them based on specific categories to ensure clear insights for the sales and product teams.\n\n---\n\n**Instructions**:\n\n1. **Identify Objections**:\n   - Pay attention to language that conveys reluctance, concerns, or hesitations about using n8n.\n   - Common objection indicators include:\n     - **Pricing Concerns**: *\u201cIt\u2019s too expensive,\u201d* *\u201cWe don\u2019t have the budget,\u201d* *\u201cAre there cheaper plans?\u201d*\n     - **Feature or Fit Concerns**: *\u201cWe don\u2019t need all these features,\u201d* *\u201cIt\u2019s not what we\u2019re looking for,\u201d* *\u201cDoes it integrate with our system?\u201d*\n     - **Scalability or Complexity Concerns**: *\u201cWill it scale with us?\u201d* *\u201cIt\u2019s too complicated to set up.\u201d*\n     - **Other Concerns**: *\u201cWe\u2019ll revisit this later,\u201d* *\u201cWe need more time to evaluate.\u201d*\n\n2. **Summarize the Objection**: Nature\n   - Provide a brief summary under **Nature** to describe the concern clearly. Include key quotes from the transcript for context, especially for critical objections like pricing or feature limitations.\n\n3. **Assign Objection Tags**: ObjectionTags\n   - Use one or more tags to categorize the objection. Only Choose the most relevant tags from the following list:\n     - **Pricing: Budget Constraints**: Limited funding or timing issues for unlocking the budget.  \n     - **Pricing: Perceived Fairness**: Concerns about high costs compared to other plans or competitors.  \n     - **Pricing: Value-Based Objections**: Questions about whether the price justifies the features or benefits.  \n     - **Pricing: Return on Investment**: Doubts about the ROI, including resources saved or value added.  \n     - **Pricing: Other Pricing Concerns**: Any pricing-related objections not covered above.  \n     - **Internal Competition**: Preference for non-enterprise n8n plans (e.g., *Cloud Plans*, *Starter*, *Pro*).  \n     - **External Competition**: Mentions of competing products or platforms as preferred alternatives.  \n     - **Feature Limitation**: Missing or inadequate features for the prospect\u2019s needs.  \n     - **Scalability**: Concerns about n8n\u2019s ability to handle growth or large-scale operations.  \n     - **Complexity**: Objections about the product being difficult to understand or use.  \n     - **Integration Issues**: Concerns about compatibility with existing systems or workflows.  \n     - **Not a Fit**: Statements suggesting misalignment with the prospect\u2019s needs.  \n     - **Time Commitment**: Reluctance due to time, effort, or resources needed for implementation.  \n     - **Security**: Concerns about data protection, privacy, or security.  \n     - **Performance**: Objections about speed, reliability, or efficiency.  \n     - **Support**: Issues with availability or quality of support/documentation.  \n     - **None**: Use this tag if no objections are raised.\n\n4. **Handle No Objections**:\n   - If no objections are mentioned, set **ObjectionTags** to `[\"None\"]` and **Nature** to `\"null\"`.\n\n---\n\n### **Expected Output Format**:\n\n**If objections are identified**:\n```json\n{\n  \"Objection\": {\n    \"ObjectionTags\": [\"RelevantTag1\", \"RelevantTag2\"],\n    \"Nature\": \"Brief summary of the objection, including key quotes from the transcript.\"\n  }\n}\n```\n\n**If no objections are identified**:\n```json\n{\n  \"Objection\": {\n    \"ObjectionTags\": [\"None\"],\n    \"Nature\": \"null\"\n  }\n}\n```\n\n---\n\n### **3. CallSummary**\n**Prompt**:  \n\n**Objective**: Provide a concise, high-level summary of the call, highlighting key insights, discussion points, and expected next steps. The summary should be actionable and clear for the sales and marketing teams to understand the context and outcomes of the call with a maximum of 150 words.\n\n### **Expected Output Format**:\n\n**If insights and next steps are identified**:\n```json\n{\n  \"CallSummary\": \"Brief summary of the phone call limited to 150 words\",\n}\n```\n\n**Fallback if call to short to summarize**:\n```json\n{\n  \"CallSummary\": \"Unable to Summarize\",\n}\n```\n\n---\n\n### **4. CustomerPainPoints**\n**Prompt**:  \nIdentify any pain points mentioned by the external speaker. These may include concerns about wasted time, inefficiencies, or unmet goals. Look for feedback about their current setup, frustrations with other tools, or reasons why previous solutions did not work. Good indicators are phrases like \"struggle,\" \"difficulty,\" or \"challenge,\" as well as answers to strategic questions like \"what are you trying to achieve\" or \"what is driving your interest in n8n.\" Capture any feedback that highlights the external speaker's broader strategic goals or aspirations, especially if they mention objectives they haven't been able to accomplish.\n\n**Expected JSON Output Format**:\n```json\n{\n  \"CustomerPainPoints\": [\n    \"Pain point 1\",\n    \"Pain point 2\"\n  ]\n}\n```\n\n**Fallback** (If no pain points mentioned):  \n```json\n{\n  \"CustomerPainPoints\": []\n}\n```\n\n---\n\n### **5. NextSteps**\n**Prompt**:  \nList any next steps or agreements that the external or internal speaker has committed to for the next meeting or action items. Look for phrases like \"plan to,\" \"next meeting,\" or \"agreed to.\"\n\n**Expected JSON Output Format**:\n```json\n{\n  \"NextSteps\": [\n    \"Next step 1\",\n    \"Next step 2\"\n  ]\n}\n```\n\n**Fallback** (If no next steps):  \n```json\n{\n  \"NextSteps\": []\n}\n```\n\n---\n\n### **6. Competitors**\n**Prompt**:  \nList out any competitors the external speaker may be considering or has used instead of n8n. Do not output n8n. Separate these into two categories: **Used** and **Considering**. For each competitor, include the **Name**, a **Reason** summarizing why they are using or considering the competitor, a **Known** boolean field indicating if the competitor is part of a provided known list, and a **Pricing** field to capture any pricing details mentioned. **Details for Each Category**:\n\n- **Used**: List competitors that the external speaker has previously used. Include details about the purpose or reason for using these competitors, such as \"better integrations,\" \"better support,\" or \"specific features.\"\n- **Considering**: List competitors the external speaker is currently evaluating as alternatives to n8n. Include any details provided about why these competitors are being considered, such as \"scalability,\" \"cost-effectiveness,\" or \"existing familiarity.\"\n- **Known Competitor List**: Reference the following known list to ensure accuracy, especially when dealing with transcription issues or unusual company names: {{ $json.metaData.Competitors }} Only include a competitor if language is used to that suggests that they are comparing the competitor to n8n or language is used that suggests that it is a better match than n8n or being evaluated against n8n. \n- - If a competitor matches one from the known list, set **Known** to `true` and output the name exactly as it is in the list above. If it is not on the list, set **Known** to `false` and output the company name as output. If they do not mention the name of the competitor but allude to one, output the name \"Unknown\" as the name of the compeitor. \n- **Pricing**: Capture any pricing information mentioned about the competitor. This may include specific price points, subscription plans, or cost comparisons. If no pricing information is found, set **Pricing** to `null`.\n- **Sentiment**: Capture the sentiment of the external speaker towards the competitor using one of three options, \"n8n better\",\"n8n worse\", \"Unknown\". Include the reason for choosing sentiment in \"Reason\" with quotes from transcript or if not reasoning for choosing that sentiment. \"n8n better\" should be used where language is used to denote that they find n8n's features better than the competitor. \"n8n worse\" should be used where language is used to denote that they find the competitors features better equipped to handle their use case. Use \"Unknown\" if they do not have sentiment one way or another regarding the competitor.   \n\n**Expected JSON Output Format**:\n```json\n{\n  \"Competitors\": [\n    {\n      \"Tag\": \"Used or Considering\",\n      \"Name\": \"Competitor Name\",\n      \"Reason\": \"Reason for using or considering this competitor.\",\n      \"Known\": true,\n      \"Pricing\": \"Pricing details or null if not mentioned.\",\n      \"Sentiment\": \"n8n better, n8n worse, or Unknown\"\n    }\n  ]\n}\n```\n\n**Fallback** (If no competitors mentioned):  \n```json\n{\n  \"Competitors\": []\n}\n```\n\n---\n\n### **7. Integrations**\n**Prompt**:  \nList any software the external speaker mentions they either currently use or want to integrate with n8n, along with the context or reason for the integration if specified. Do not comma separate the integration names, and simplify just to the name of the integration. Focus on specific integrations named on the call and avoid general or vague terms. Reference the provided comma separated list of native nodes from our database to determine if the integration is natively supported. List of current Integrations: {{ $json.metaData.Integrations }}. Only include an integration if language is used to that suggests that they are trying to deploy or integrate with n8n or have in the past. Do not use general terms for integrations, please use company names. Include tags for the integration status and usage status. Transcription Analysis Tip: If the external speaker mentions they are currently using an integration through the HTTP request node but express a desire for a dedicated node, classify the IntegrationStatus as \"Not Integrated\" and the UsageStatus as \"Currently Using.\" This indicates that they are using a workaround and would prefer native support.\n\n- Explanation of Fields\n- - **IntegrationName**: The simplified name of the software mentioned. If the Integration is in the comma separated list above, use the exact name in the comma separated list as the IntegrationName.\n- - **SummaryOfUse**: A brief description of how the external speaker wants to use or integrate the software with n8n, including mention of using the **HTTP request node** if applicable.\n- - **IntegrationStatus**: Use \"Currently Integrated\" if the integration is natively supported by n8n by checking the comma separated List of current Integrations above, and \"Not Integrated\" if it is not in the list above. \n- - **UsageStatus**: Use \"Currently Using\" if the external speaker is actively using the integration (including via the HTTP request node), and \"Want to Use\" if they are only considering or planning to use it.\n\n**Expected JSON Output Format**:\n```json\n{\n  \"Integrations\": [\n    {\n      \"IntegrationName\": \"Integration Name\",\n      \"SummaryOfUse\": \"Brief description of the integration use case.\",\n      \"IntegrationStatus\": \"Currently Integrated or Not Integrated\",\n      \"UsageStatus\": \"Currently Using or Want to Use\"\n    }\n  ]\n}\n```\n\n**Fallback** (If no integrations mentioned):  \n```json\n{\n  \"Integrations\": []\n}\n```\n\n---\n\n### **8. Sentiment**\n**Prompt**:  \nDetermine the overall sentiment of the external speaker throughout the call. It should be categorized as one of \"Positive,\" \"Neutral,\" or \"Negative\" based on their feedback, objections, and tone. \n- **Positive**: The external speaker shows genuine interest in the n8n platform, discusses clear and actionable next steps, or uses enthusiastic language. Look for phrases that indicate excitement or satisfaction, such as \"this is great,\" \"we're looking forward to,\" or \"this could really help us.\" \n- **Neutral**: The external speaker neither expresses strong enthusiasm nor significant concerns. They may use language that indicates a wait-and-see approach, such as \"let's explore this further\" or \"we need more information.\" The call may end with some uncertainty, but without outright dismissal and with specific plans to meet again. \n- **Negative**: The external speaker expresses significant concerns or reluctance about using n8n. Indicators include phrases like \"not a fit,\" \"not a fit right now,\" or discussion about taking the information away and \"following up if we need more information in the future/down the line.\" Negative sentiment can also be inferred if the call ends without any clear next steps.\n\n**Expected JSON Output Format**:\n```json\n{\n  \"Sentiment\": \"Positive, Neutral, or Negative\"\n}\n```\n\n**Fallback**:  \n```json\n{\n  \"Sentiment\": \"Neutral\"\n}\n```\n\n---\n\n### **9. CurrentSituation**\n**Prompt**:  \nSummarize the external speaker's current situation and why they need automation. Focus on specific pain points, inefficiencies, or challenges they are trying to solve with automation. Look for statements that describe existing n8n workflows, tools, or bottlenecks.\n\n**Expected JSON Output Format**:\n```json\n{\n  \"CurrentSituation\": \"Reason why n8n automation is needed.\"\n}\n```\n\n**Fallback**:  \n```json\n{\n  \"CurrentSituation\": \"Unknown\"\n}\n```\n\n---\n\n### **10. Budget**\n**Prompt**:  \nIdentify the external speaker's budget for this opportunity, if mentioned. Include specific amounts, ranges, or qualitative statements about their willingness or ability to invest.\n\n**Expected JSON Output Format**:\n```json\n{\n  \"Budget\": \"Brief summary of budget including specific amounts, ranges, or qualitative statements about their willingness or ability to invest\"\n}\n```\n\n**Fallback**:  \n```json\n{\n  \"Budget\": \"Unknown\"\n}\n```\n\n---\n\n### **11. Authority**\n**Prompt**:  \nDetermine who the decision-making authority is for purchasing the solution. Look for titles, departments, or references to the individual(s) responsible for approving the purchase. \n\n**Expected JSON Output Format**:\n```json\n{\n  \"Authority\": \"Summary of the decision-making authority in charge of purchasing the n8n platform\"\n}\n```\n\n**Fallback**:  \n```json\n{\n  \"Authority\": \"Unknown\"\n}\n```\n\n---\n\n### **12. Timeline**\n**Prompt**:  \nIdentify the timeline for purchasing the solution. Include deadlines, dates, or key events that indicate the urgency or planned timeframe for the decision.\n\n**Expected JSON Output Format**:\n```json\n{\n  \"Timeline\": \"Brief summary of the timeline for purchasing the n8n platform\"\n}\n```\n\n**Fallback if unable to determine timeline**:  \n```json\n{\n  \"Timeline\": \"Unknown\"\n}\n```\n\n---\n\n### **13. DecisionProcess**\n**Prompt**:  \nSummarize the process the organization follows to make purchasing decisions. Look for references to steps such as internal evaluations, stakeholder approvals, or pilot testing.\n\n**Expected JSON Output Format**:\n```json\n{\n  \"DecisionProcess\": \"Summary of the Decisons Process to make the purchasing decison of the n8n platform\"\n}\n```\n\n**Fallback**:  \n```json\n{\n  \"DecisionProcess\": \"Unknown\"\n}\n```\n\n---"},"promptType":"define","hasOutputParser":true},"typeVersion":1.8},{"id":"2920d012-d5f1-4eb7-8f41-69ec07487f46","name":"Structured Output Parser3","type":"@n8n/n8n-nodes-langchain.outputParserStructured","position":[20,-380],"parameters":{"jsonSchemaExample":"{\n  \"UseCases\": [\n    {\n      \"Summary\": \"An organization in the healthcare industry wants to automate appointment scheduling to reduce no-shows and improve patient experience by integrating their EMR system with calendar services through n8n.\",\n      \"DepartmentTags\": [\"IT Ops\", \"Support\"],\n      \"IndustryTags\": [\"Healthcare\"],\n      \"ImplementationStatus\": \"Building\"\n    },\n    {\n      \"Summary\": \"A manufacturing company seeks to streamline supply chain operations by automating inventory monitoring and vendor notifications, reducing manual intervention and delays.\",\n      \"DepartmentTags\": [\"Finance\", \"Operations\"],\n      \"IndustryTags\": [\"Manufacturing\"],\n      \"ImplementationStatus\": \"Deployed\"\n    }\n  ],\n  \"Objection\": {\n    \"ObjectionTags\": [\"Pricing: Budget Constraints\", \"Feature Limitation\"],\n    \"Nature\": \"The prospect mentioned concerns about the pricing model for enterprise features and requested support for a specific CRM integration not currently available.\"\n  },\n  \"CallSummary\": \"The call focused on automation opportunities in supply chain management and healthcare scheduling. The external speaker raised concerns about pricing and feature limitations but expressed interest in a follow-up demo to explore solutions.\",\n  \"CustomerPainPoints\": [\n    \"High manual workload in managing appointments and inventory.\",\n    \"Lack of real-time notifications for supply chain operations.\"\n  ],\n  \"NextSteps\": [\n    \"Share a case study on supply chain automation.\",\n    \"Schedule a demo to showcase EMR integration capabilities.\"\n  ],\n  \"Competitors\": [\n    {\n      \"Tag\": \"Considering\",\n      \"Name\": \"Zapier\",\n      \"Reason\": \"Evaluating for ease of setup and low initial cost.\",\n      \"Known\": true,\n      \"Pricing\": \"Starter plan at $20/month.\",\n      \"Sentiment\": \"n8n better\"\n    },\n    {\n      \"Tag\": \"Used\",\n      \"Name\": \"Make\",\n      \"Reason\": \"Previously used for basic workflow automation but faced scalability issues.\",\n      \"Known\": true,\n      \"Pricing\": null,\n      \"Sentiment\": \"n8n better\"\n    }\n  ],\n  \"Integrations\": [\n    {\n      \"IntegrationName\": \"Salesforce\",\n      \"SummaryOfUse\": \"Used to sync lead data and automate follow-up email workflows.\",\n      \"IntegrationStatus\": \"Currently Integrated\",\n      \"UsageStatus\": \"Currently Using\"\n    },\n    {\n      \"IntegrationName\": \"HubSpot\",\n      \"SummaryOfUse\": \"Desired for lead management with a dedicated node, currently using HTTP request workaround.\",\n      \"IntegrationStatus\": \"Not Integrated\",\n      \"UsageStatus\": \"Currently Using\"\n    }\n  ],\n  \"Sentiment\": \"Positive\",\n  \"CurrentSituation\": \"The organization is exploring automation to reduce inefficiencies in manual workflows for patient scheduling and supply chain management.\",\n  \"Budget\": \"$15,000 - $20,000 annually.\",\n  \"Authority\": \"CTO and Head of Operations.\",\n  \"Timeline\": \"Decision expected by Q2 2025 to align with upcoming operational changes.\",\n  \"DecisionProcess\": \"Initial evaluation with pilot testing, followed by budget approval from finance and final sign-off by the CTO.\"\n}"},"typeVersion":1.2},{"id":"0475da2d-2781-4c53-8dc8-c4a647295556","name":"Merge all processed data","type":"n8n-nodes-base.merge","position":[1040,0],"parameters":{"numberInputs":3},"typeVersion":3},{"id":"c4fa47e9-82c2-471f-8949-b0e64e35c589","name":"Bundle processed Data","type":"n8n-nodes-base.aggregate","position":[1260,0],"parameters":{"options":{},"aggregate":"aggregateAllItemData"},"typeVersion":1}],"connections":{"AI Agent":{"main":[[{"node":"Data Recall Sales","type":"main","index":0}]]},"Data Recall Sales":{"main":[[{"node":"Sales Data Processor","type":"main","index":0},{"node":"SF Sales Data Processor","type":"main","index":0}]]},"Create User Prompt":{"main":[[{"node":"Marketing AI Agent Processor","type":"main","index":0},{"node":"Product AI Agent Processor","type":"main","index":0},{"node":"AI Agent","type":"main","index":0}]]},"Data Recall Product":{"main":[[{"node":"Product AI Data Processor","type":"main","index":0}]]},"Sales Data Processor":{"main":[[{"node":"Merge all processed data","type":"main","index":0}]]},"Bundle processed Data":{"main":[[{"node":"Success Status Generated","type":"main","index":0}]]},"Data Recall Marketing":{"main":[[{"node":"Marketing Data Processor","type":"main","index":0}]]},"Azure OpenAI Chat Model":{"ai_languageModel":[[{"node":"AI Agent","type":"ai_languageModel","index":0}]]},"Azure OpenAI Chat Model1":{"ai_languageModel":[[{"node":"Marketing AI Agent Processor","type":"ai_languageModel","index":0}]]},"Azure OpenAI Chat Model2":{"ai_languageModel":[[{"node":"Product AI Agent Processor","type":"ai_languageModel","index":0}]]},"Execute Workflow Trigger":{"main":[[{"node":"Create User Prompt","type":"main","index":0}]]},"Marketing Data Processor":{"main":[[{"node":"Merge all processed data","type":"main","index":1}]]},"Merge all processed data":{"main":[[{"node":"Bundle processed Data","type":"main","index":0}]]},"Product AI Data Processor":{"main":[[{"node":"Merge all processed data","type":"main","index":2}]]},"Structured Output Parser1":{"ai_outputParser":[[{"node":"Marketing AI Agent Processor","type":"ai_outputParser","index":0}]]},"Structured Output Parser2":{"ai_outputParser":[[{"node":"Product AI Agent Processor","type":"ai_outputParser","index":0}]]},"Structured Output Parser3":{"ai_outputParser":[[{"node":"AI Agent","type":"ai_outputParser","index":0}]]},"Product AI Agent Processor":{"main":[[{"node":"Data Recall Product","type":"main","index":0}]]},"Marketing AI Agent Processor":{"main":[[{"node":"Data Recall Marketing","type":"main","index":0}]]}},"settings":{},"pinData":{}}

06 — Automate sales insights with Gong.io, Notion & AI

CallForge - 06 - Automate sales insights with Gong.io, Notion & AI

View JSON
{"name":"CallForge - 06 - Automate sales insights with Gong.io, Notion & AI","nodes":[{"id":"ffcd401c-3c2d-4fc5-92d7-bd55394e2dc9","name":"Check if Competitor Data Found","type":"n8n-nodes-base.if","position":[2780,240],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"loose"},"combinator":"and","conditions":[{"id":"9d720bd5-f29b-4ac8-92b4-ee2d5df074fe","operator":{"type":"array","operation":"lengthGte","rightType":"number"},"leftValue":"={{ $('Execute Workflow Trigger').item.json.AIoutput.Competitors }}","rightValue":1}]},"looseTypeValidation":true},"typeVersion":2.2},{"id":"65d9cd7a-d0a7-4892-a199-40f4d35a0240","name":"Check if Integration Data Found","type":"n8n-nodes-base.if","position":[2800,-400],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"9d720bd5-f29b-4ac8-92b4-ee2d5df074fe","operator":{"type":"array","operation":"lengthGte","rightType":"number"},"leftValue":"={{ $json.AIoutput.Integrations }}","rightValue":1}]}},"typeVersion":2.2},{"id":"c48921de-d1f8-48a0-b076-6cd6ff2442f6","name":"Execute Workflow Trigger","type":"n8n-nodes-base.executeWorkflowTrigger","position":[2280,-400],"parameters":{},"typeVersion":1},{"id":"74a0d14a-2020-4993-890a-1581da809060","name":"Check if objection found","type":"n8n-nodes-base.if","position":[2900,-1020],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"0fb03927-4c00-4479-b8e3-6298afa4d41e","operator":{"type":"string","operation":"notEmpty","singleValue":true},"leftValue":"={{ $json.AIoutput.Objection.Nature }}","rightValue":"null"}]}},"typeVersion":2.2},{"id":"3e0fad7e-1a08-44ac-8212-ccc96f61669d","name":"Create Competitors in DB","type":"n8n-nodes-base.notion","position":[3580,80],"parameters":{"title":"={{ $('Execute Workflow Trigger').item.json.metaData.title }}","options":{"icon":"\ud83e\udd3a"},"resource":"databasePage","databaseId":{"__rl":true,"mode":"list","value":"1375b6e0-c94f-8010-9161-c65e2c0f093a","cachedResultUrl":"https://www.notion.so/1375b6e0c94f80109161c65e2c0f093a","cachedResultName":"Competitors Database"},"propertiesUi":{"propertyValues":[{"key":"Competitor Status|select","selectValue":"={{ $json['aiResponse.Competitors'].Tag }}"},{"key":"Summary|rich_text","textContent":"={{ $json['aiResponse.Competitors'].Reason }}"},{"key":"Pricing Summary|rich_text","textContent":"={{ $json['aiResponse.Competitors'].Pricing ? $json['aiResponse.Competitors'].Pricing : 'None Found' }}"},{"key":"Competitor Tracked?|checkbox","checkboxValue":"={{ typeof $json['aiResponse.Competitors'].Known === 'string' ? false : $json['aiResponse.Competitors'].Known }}"},{"key":"Name|title","title":"={{ $json['aiResponse.Competitors'].Name }}"},{"key":"Sales Call Summaries|relation","relationValue":["={{ $('Execute Workflow Trigger').item.json.notionData[0].id }}"]},{"key":"Competitor Sentiment|multi_select","multiSelectValue":"={{ $json['aiResponse.Competitors'].Sentiment }}"},{"key":"Mentioned Date|date","date":"={{ $('Execute Workflow Trigger').item.json.metaData.started }}"}]}},"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000},{"id":"7f917a42-a25b-41bb-b904-0fd44e9c2b78","name":"Create Integrations","type":"n8n-nodes-base.notion","position":[3400,-560],"parameters":{"title":"={{ $('Execute Workflow Trigger').item.json.metaData.title }}","options":{"icon":"\u2699\ufe0f"},"resource":"databasePage","databaseId":{"__rl":true,"mode":"list","value":"1375b6e0-c94f-80f2-a449-c47795337c3d","cachedResultUrl":"https://www.notion.so/1375b6e0c94f80f2a449c47795337c3d","cachedResultName":"Integrations Database"},"propertiesUi":{"propertyValues":[{"key":"Name|title","title":"={{ $json[\"AIoutput.Integrations\"].IntegrationName }}"},{"key":"IntegrationStatus|select","selectValue":"={{ $json[\"AIoutput.Integrations\"].IntegrationStatus }}"},{"key":"Summary|rich_text","textContent":"={{ $json[\"AIoutput.Integrations\"].SummaryOfUse }}"},{"key":"UsageStatus|select","selectValue":"={{ $json[\"AIoutput.Integrations\"].UsageStatus }}"},{"key":"Sales Call Summaries|relation","relationValue":["={{ $('Execute Workflow Trigger').item.json.notionData[0].id }}"]}]}},"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000},{"id":"54585eef-41b9-4ee5-ba1b-6ed502b2b7f9","name":"Update Call with Objection Summary","type":"n8n-nodes-base.notion","position":[4320,-1180],"parameters":{"pageId":{"__rl":true,"mode":"id","value":"={{ $('Execute Workflow Trigger').item.json.notionData[0].id }}"},"options":{},"resource":"databasePage","operation":"update","propertiesUi":{"propertyValues":[{"key":"Objection Summary|rich_text","textContent":"={{ $('Execute Workflow Trigger').item.json.AIoutput.Objection.Nature }}"}]}},"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000},{"id":"031a430a-1ac1-4aec-ae21-de7450f03855","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[2720,-760],"parameters":{"color":7,"width":1480,"height":620,"content":"## Integration Data Processing\nIf it's found, we add it to Notion. "},"typeVersion":1},{"id":"ee4e0519-0969-4cb2-a4fd-fdba6313192d","name":"Sticky Note1","type":"n8n-nodes-base.stickyNote","position":[2720,-120],"parameters":{"color":7,"width":1480,"height":620,"content":"## Competitor Data Processing"},"typeVersion":1},{"id":"9518c874-1788-415c-965a-6c90321e501d","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[2140,-760],"parameters":{"color":7,"width":560,"height":620,"content":"## Receives AI Data from other workflow\n"},"typeVersion":1},{"id":"951ba353-afef-4061-91b1-5fe8c6cd9b38","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[1780,-960],"parameters":{"width":340,"height":820,"content":"![Callforge](https://uploads.n8n.io/templates/callforgeshadow.png)\n## CallForge - The AI Gong Sales Call Processor\nCallForge allows you to extract important information for different departments from your Sales Gong Calls. \n\n### AI Output Processor\nOnce the AI data is generated, it is then added (or not!) to the Notion Database here. This is also where the Pipedrive or Salesforce integration will be added once that portion is complete. "},"typeVersion":1},{"id":"24bde4bf-24bb-4c76-80fc-6bd80806b76a","name":"Sticky Note3","type":"n8n-nodes-base.stickyNote","position":[2720,-1260],"parameters":{"color":7,"width":2140,"height":480,"content":"## Objection Data Processing\n"},"typeVersion":1},{"id":"b271cddb-2dc4-4b68-91c0-60bae45c0f63","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[2720,520],"parameters":{"color":7,"width":1480,"height":620,"content":"## Use Case Processing"},"typeVersion":1},{"id":"5277d26b-ca62-466c-b0fd-88f0a55dbe6c","name":"Check for use cases","type":"n8n-nodes-base.if","position":[2860,960],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"7f182ff7-b5cf-44d0-9645-9200bb7afa24","operator":{"type":"array","operation":"lengthGte","rightType":"number"},"leftValue":"={{ $json.AIoutput.UseCases }}","rightValue":1}]}},"typeVersion":2.2},{"id":"ba4f7b4c-613a-42fe-9228-c9c12d2677d8","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[2720,-1640],"parameters":{"color":7,"width":420,"height":360,"content":"## Core Data Processing\n"},"typeVersion":1},{"id":"85880852-03e8-4d7e-bdc6-ed381f16d425","name":"Update Notion Call object with AI data","type":"n8n-nodes-base.notion","position":[2840,-1520],"parameters":{"pageId":{"__rl":true,"mode":"id","value":"={{ $('Execute Workflow Trigger').item.json.notionData[0].id }}"},"options":{},"resource":"databasePage","operation":"update","propertiesUi":{"propertyValues":[{"key":"Call Summary|rich_text","textContent":"={{ $json.AIoutput.CallSummary }}"},{"key":"Next Steps|rich_text","textContent":"={{ $json.AIoutput.NextSteps.map(step => `\u2022 ${step}`).join('\\n\\n') }}"},{"key":"Sentiment|select","selectValue":"={{ $json.AIoutput.Sentiment }}"},{"key":"Customer Pain Points|rich_text","textContent":"={{ $json.AIoutput.CustomerPainPoints.map(painPoint => `\u2022 ${painPoint}`).join('\\n\\n') }}"}]}},"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000},{"id":"74185c7e-8872-47f3-ace5-256e102d043b","name":"Split Out all objections","type":"n8n-nodes-base.splitOut","position":[3360,-1180],"parameters":{"include":"selectedOtherFields","options":{},"fieldToSplitOut":"AIoutput.Objection.ObjectionTags","fieldsToInclude":"id"},"typeVersion":1},{"id":"41ecf92b-d6ee-4111-8684-afbfe45d760c","name":"Format Tag Data for notion","type":"n8n-nodes-base.set","position":[3560,-1180],"parameters":{"options":{},"assignments":{"assignments":[{"id":"d1b2c0c4-71de-429e-9220-d5ece2030180","name":"tag","type":"object","value":"={\"name\": \"{{ $json[\"AIoutput.Objection.ObjectionTags\"] }}\"}"}]}},"typeVersion":3.4},{"id":"c0aa2bcc-0dee-4eeb-a93c-7aeb76ed3acf","name":"Bundle all Tags","type":"n8n-nodes-base.aggregate","position":[3720,-1180],"parameters":{"options":{"mergeLists":false},"fieldsToAggregate":{"fieldToAggregate":[{"fieldToAggregate":"tag"}]}},"typeVersion":1},{"id":"dca88d3e-9dc2-45be-b0d7-728d4f7ed641","name":"Add Objection Tag to Notion","type":"n8n-nodes-base.httpRequest","position":[3920,-1180],"parameters":{"url":"=https://api.notion.com/v1/pages/{{ $('Execute Workflow Trigger').item.json.notionData[0].id }}","method":"PATCH","options":{},"jsonBody":"={\n    \"object\": \"page\",\n    \"id\": \"{{ $('Execute Workflow Trigger').item.json.notionData[0].id }}\",\n    \"properties\": {\n    \"Objections\": {\n      \"multi_select\": {{ $json.tag.toJsonString() }}\n    }\n  }\n}","sendBody":true,"sendHeaders":true,"specifyBody":"json","authentication":"predefinedCredentialType","headerParameters":{"parameters":[{"name":"Notion-Version","value":"2022-06-28"}]},"nodeCredentialType":"notionApi"},"retryOnFail":true,"typeVersion":4.2,"waitBetweenTries":3000},{"id":"85816770-807e-4cbb-98ab-ddf20c2066a0","name":"Wait for rate limiting again","type":"n8n-nodes-base.wait","position":[4100,-1180],"parameters":{"amount":4},"typeVersion":1.1},{"id":"99fd790e-9ba1-4a8c-86cd-981ecef6d4f4","name":"Merge Objection Threads","type":"n8n-nodes-base.set","position":[4660,-1000],"parameters":{"options":{},"assignments":{"assignments":[{"id":"d8fc65ad-2b05-40c1-84c7-7bda819f0f1f","name":"aiResponse","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.aiResponse }}"}]}},"typeVersion":3.4},{"id":"f71aa765-c10f-4ace-8051-8416b7cfefce","name":"Wait for rate limiting - Integration","type":"n8n-nodes-base.wait","position":[3000,-560],"parameters":{"amount":3},"typeVersion":1.1},{"id":"df0772d8-8612-4830-ae66-ba9db77e654e","name":"Split Out Integration data","type":"n8n-nodes-base.splitOut","position":[3200,-560],"parameters":{"include":"selectedOtherFields","options":{},"fieldToSplitOut":"AIoutput.Integrations","fieldsToInclude":"id"},"typeVersion":1},{"id":"40775bc5-2678-41c3-a651-000edba9920f","name":"Bundle Integration Data to 1 object","type":"n8n-nodes-base.aggregate","position":[3600,-560],"parameters":{"options":{},"aggregate":"aggregateAllItemData","destinationFieldName":"tagdata"},"typeVersion":1},{"id":"b4f2a517-a685-4bca-a994-7d395c2743e5","name":"Merge Integration Thread","type":"n8n-nodes-base.set","position":[3860,-380],"parameters":{"options":{},"assignments":{"assignments":[{"id":"513c8505-75dd-4ecf-9bd7-4f51cbb12f81","name":"AIoutput","type":"string","value":"={{ $json.AIoutput }}"}]}},"typeVersion":3.4},{"id":"c606e481-b664-4a64-923d-ffa7d0c50cb9","name":"Wait for rate limiting - Competitors","type":"n8n-nodes-base.wait","position":[3000,80],"parameters":{"amount":3},"typeVersion":1.1},{"id":"1f75b7ab-a452-4f36-92d9-ec0358144f0d","name":"Wait for rate limiting - Objection","type":"n8n-nodes-base.wait","position":[3160,-1180],"parameters":{"amount":3},"typeVersion":1.1},{"id":"6a2f1dd6-e5a5-4b68-9b62-98491621e47d","name":"Wait for rate limiting - Use Cases","type":"n8n-nodes-base.wait","position":[3080,800],"parameters":{"amount":3},"typeVersion":1.1},{"id":"6cb3ba0d-733d-4f51-bfbf-57e350e4ab93","name":"Split Out Use Cases","type":"n8n-nodes-base.splitOut","position":[3280,800],"parameters":{"options":{},"fieldToSplitOut":"AIoutput.UseCases"},"typeVersion":1},{"id":"4a669d54-ea1b-44a8-a7de-afa79d171467","name":"Create Use Cases","type":"n8n-nodes-base.notion","position":[3500,800],"parameters":{"title":"={{ $('Execute Workflow Trigger').item.json.metaData.title }}","options":{"icon":"\ud83d\udcbc"},"resource":"databasePage","databaseId":{"__rl":true,"mode":"list","value":"17c5b6e0-c94f-80e8-bf90-f290e8c78f9d","cachedResultUrl":"https://www.notion.so/17c5b6e0c94f80e8bf90f290e8c78f9d","cachedResultName":"Use Cases"},"propertiesUi":{"propertyValues":[{"key":"Department Tag|multi_select","multiSelectValue":"={{ $json.DepartmentTags }}"},{"key":"Industry Tag|multi_select","multiSelectValue":"={{ $json.IndustryTags }}"},{"key":"Summary|title","title":"={{ $json.Summary }}"},{"key":"Sales Call Summaries|relation","relationValue":["={{ $('Execute Workflow Trigger').item.json.notionData[0].id }}"]},{"key":"Implementation|select","selectValue":"={{ $json.ImplementationStatus }}"}]}},"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000},{"id":"e07e56a3-5f2f-4bc6-995a-af3944c72983","name":"Bundle Use Case Data to 1 object","type":"n8n-nodes-base.aggregate","position":[3700,800],"parameters":{"options":{},"aggregate":"aggregateAllItemData","destinationFieldName":"tagdata"},"typeVersion":1},{"id":"76f2d3cb-9bf9-4f8c-994c-45766080dbcb","name":"Bundle Competitor Data to 1 object","type":"n8n-nodes-base.aggregate","position":[3800,80],"parameters":{"options":{},"aggregate":"aggregateAllItemData","destinationFieldName":"tagdata"},"typeVersion":1},{"id":"9ddf3b34-8b9e-4149-8946-51e208973c37","name":"Split Out Competitor Data","type":"n8n-nodes-base.splitOut","position":[3360,80],"parameters":{"include":"selectedOtherFields","options":{},"fieldToSplitOut":"aiResponse.Competitors","fieldsToInclude":"id"},"typeVersion":1},{"id":"ac4879fc-21a1-49e5-a388-67550032bcd4","name":"Get AI Response - Competitors","type":"n8n-nodes-base.set","position":[3180,80],"parameters":{"options":{},"assignments":{"assignments":[{"id":"d8fc65ad-2b05-40c1-84c7-7bda819f0f1f","name":"aiResponse","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.AIoutput }}"}]}},"typeVersion":3.4},{"id":"063bdedc-fa58-4c05-9ba4-523b4297c4f2","name":"Merge Competitor Thread","type":"n8n-nodes-base.set","position":[4000,260],"parameters":{"options":{},"assignments":{"assignments":[{"id":"d8fc65ad-2b05-40c1-84c7-7bda819f0f1f","name":"aiResponse","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.AIoutput }}"}]}},"typeVersion":3.4},{"id":"c2f253ec-8659-4ead-aed3-e319fb165b90","name":"Merge Use Case Thread","type":"n8n-nodes-base.set","position":[4000,980],"parameters":{"options":{},"assignments":{"assignments":[{"id":"d8fc65ad-2b05-40c1-84c7-7bda819f0f1f","name":"aiResponse","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.aiResponse }}"}]}},"typeVersion":3.4}],"connections":{"Bundle all Tags":{"main":[[{"node":"Add Objection Tag to Notion","type":"main","index":0}]]},"Create Use Cases":{"main":[[{"node":"Bundle Use Case Data to 1 object","type":"main","index":0}]]},"Check for use cases":{"main":[[{"node":"Wait for rate limiting - Use Cases","type":"main","index":0}],[{"node":"Merge Use Case Thread","type":"main","index":0}]]},"Create Integrations":{"main":[[{"node":"Bundle Integration Data to 1 object","type":"main","index":0}]]},"Split Out Use Cases":{"main":[[{"node":"Create Use Cases","type":"main","index":0}]]},"Merge Competitor Thread":{"main":[[]]},"Merge Objection Threads":{"main":[[]]},"Check if objection found":{"main":[[{"node":"Wait for rate limiting - Objection","type":"main","index":0}],[{"node":"Merge Objection Threads","type":"main","index":0}]]},"Create Competitors in DB":{"main":[[{"node":"Bundle Competitor Data to 1 object","type":"main","index":0}]]},"Execute Workflow Trigger":{"main":[[{"node":"Check if Integration Data Found","type":"main","index":0},{"node":"Check if Competitor Data Found","type":"main","index":0},{"node":"Check if objection found","type":"main","index":0},{"node":"Update Notion Call object with AI data","type":"main","index":0},{"node":"Check for use cases","type":"main","index":0}]]},"Merge Integration Thread":{"main":[[]]},"Split Out all objections":{"main":[[{"node":"Format Tag Data for notion","type":"main","index":0}]]},"Split Out Competitor Data":{"main":[[{"node":"Create Competitors in DB","type":"main","index":0}]]},"Format Tag Data for notion":{"main":[[{"node":"Bundle all Tags","type":"main","index":0}]]},"Split Out Integration data":{"main":[[{"node":"Create Integrations","type":"main","index":0}]]},"Add Objection Tag to Notion":{"main":[[{"node":"Wait for rate limiting again","type":"main","index":0}]]},"Wait for rate limiting again":{"main":[[{"node":"Update Call with Objection Summary","type":"main","index":0}]]},"Get AI Response - Competitors":{"main":[[{"node":"Split Out Competitor Data","type":"main","index":0}]]},"Check if Competitor Data Found":{"main":[[{"node":"Wait for rate limiting - Competitors","type":"main","index":0}],[{"node":"Merge Competitor Thread","type":"main","index":0}]]},"Check if Integration Data Found":{"main":[[{"node":"Wait for rate limiting - Integration","type":"main","index":0}],[{"node":"Merge Integration Thread","type":"main","index":0}]]},"Bundle Use Case Data to 1 object":{"main":[[{"node":"Merge Use Case Thread","type":"main","index":0}]]},"Bundle Competitor Data to 1 object":{"main":[[{"node":"Merge Competitor Thread","type":"main","index":0}]]},"Update Call with Objection Summary":{"main":[[{"node":"Merge Objection Threads","type":"main","index":0}]]},"Wait for rate limiting - Objection":{"main":[[{"node":"Split Out all objections","type":"main","index":0}]]},"Wait for rate limiting - Use Cases":{"main":[[{"node":"Split Out Use Cases","type":"main","index":0}]]},"Bundle Integration Data to 1 object":{"main":[[{"node":"Merge Integration Thread","type":"main","index":0}]]},"Wait for rate limiting - Competitors":{"main":[[{"node":"Get AI Response - Competitors","type":"main","index":0}]]},"Wait for rate limiting - Integration":{"main":[[{"node":"Split Out Integration data","type":"main","index":0}]]}},"settings":{},"pinData":{}}

07 — AI marketing data processing with Gong & Notion

CallForge - 07 - AI marketing data processing with Gong & Notion

View JSON
{"name":"CallForge - 07 - AI marketing data processing with Gong & Notion","nodes":[{"parameters":{},"id":"a2e5ac6c-f46c-4176-af1d-79eb0e9bd085","name":"Execute Workflow Trigger","type":"n8n-nodes-base.executeWorkflowTrigger","position":[-448,672],"typeVersion":1},{"parameters":{"resource":"databasePage","databaseId":{"__rl":true,"mode":"list","value":"1395b6e0-c94f-802d-9a63-c524a1769699","cachedResultUrl":"https://www.notion.so/1395b6e0c94f802d9a63c524a1769699","cachedResultName":"Marketing Insights"},"title":"={{ $('Execute Workflow Trigger').item.json.metaData.title }}","propertiesUi":{"propertyValues":[{"key":"Name|title","title":"={{ $json.Summary }}"},{"key":"Marketing Tags|multi_select","multiSelectValue":"={{ $json.Tag }}"},{"key":"Sales Call Summaries|relation","relationValue":["={{ $('Execute Workflow Trigger').item.json.notionData[0].id }}"]},{"key":"Date Mentioned|date","date":"={{ $('Execute Workflow Trigger').item.json.metaData.started }}"}]},"options":{"icon":"\ud83c\udfaf"}},"id":"862cfbbb-1729-463b-9631-1446c0c42f5a","name":"Create Marketing Insight Data","type":"n8n-nodes-base.notion","position":[784,592],"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000},{"parameters":{"content":"## Marketing Insights Processing","height":480,"width":1480,"color":7},"id":"dcf02a41-32ac-4c14-b16d-aa27dde0629d","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[0,464],"typeVersion":1},{"parameters":{"content":"## Receives AI Data from other workflow\n","height":620,"width":560,"color":7},"id":"13fcf6c6-f4c6-4f68-8f36-77e4feb8e4af","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[-576,304],"typeVersion":1},{"parameters":{"content":"![Callforge](https://uploads.n8n.io/templates/callforgeshadow.png)\n## CallForge - The AI Gong Sales Call Processor\nCallForge allows you to extract important information for different departments from your Sales Gong Calls. \n\n### AI Output Processor\nOnce the AI data is generated, it is then added (or not!) to the Notion Database here. This is also where the Pipedrive or Salesforce integration will be added once that portion is complete. ","height":820,"width":340},"id":"b7ef9754-c659-44ad-87fc-2ad1b26649ac","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[-944,112],"typeVersion":1},{"parameters":{"content":"## Actionable Insights","height":440,"width":1480,"color":7},"id":"77e90b13-f82b-409e-808f-4b2228ba36aa","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[0,960],"typeVersion":1},{"parameters":{"content":"## Recurring Topics","height":440,"width":1480,"color":7},"id":"b839a60a-7054-4dac-8aa2-ce6c1109a3fa","name":"Sticky Note8","type":"n8n-nodes-base.stickyNote","position":[0,0],"typeVersion":1},{"parameters":{"conditions":{"options":{"caseSensitive":true,"leftValue":"","typeValidation":"strict","version":2},"combinator":"and","conditions":[{"id":"7f182ff7-b5cf-44d0-9645-9200bb7afa24","operator":{"type":"array","operation":"lengthGte","rightType":"number"},"leftValue":"={{ $json.AIoutput.MarketingInsights }}","rightValue":1}]},"options":{}},"id":"7be5f629-5367-47f3-977c-2bfc040ddad1","name":"Check if Recurring Topics Found","type":"n8n-nodes-base.if","position":[112,240],"typeVersion":2.2},{"parameters":{"amount":3},"id":"f3b68bc5-d1c1-45fe-9cb6-1473a5b3f739","name":"Wait for rate limiting - Recurring","type":"n8n-nodes-base.wait","position":[352,80],"typeVersion":1.1},{"parameters":{"fieldToSplitOut":"AIoutput.RecurringTopics","options":{}},"id":"4c54362c-96cf-4c6f-83c1-2a7bf9abe7f7","name":"Split Out Recurring Topics","type":"n8n-nodes-base.splitOut","position":[560,80],"typeVersion":1},{"parameters":{"resource":"databasePage","databaseId":{"__rl":true,"mode":"list","value":"17c5b6e0-c94f-80f4-9bf0-e52c7b0ef947","cachedResultUrl":"https://www.notion.so/17c5b6e0c94f80f49bf0e52c7b0ef947","cachedResultName":"Recurring Topics"},"title":"={{ $('Execute Workflow Trigger').item.json.metaData.title }}","propertiesUi":{"propertyValues":[{"key":"Context|rich_text","textContent":"={{ $json.Context }}"},{"key":"Mentions|number","numberValue":"={{ $json.Mentions }}"},{"key":"Topic|title","title":"={{ $json.Topic }}"},{"key":"Sales Call Summaries|relation","relationValue":["={{ $('Execute Workflow Trigger').item.json.notionData[0].id }}"]}]},"options":{"icon":"\ud83d\udd01"}},"id":"da40c0c5-46cc-402f-930a-c228be00f17d","name":"Create Recurring Topics Data","type":"n8n-nodes-base.notion","position":[784,80],"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000},{"parameters":{"aggregate":"aggregateAllItemData","destinationFieldName":"tagdata","options":{}},"id":"081ea364-dc99-43c1-8bbd-71f2e0ba06db","name":"Bundle Recurring Topics Data to 1 object","type":"n8n-nodes-base.aggregate","position":[992,80],"typeVersion":1},{"parameters":{"assignments":{"assignments":[{"id":"d8fc65ad-2b05-40c1-84c7-7bda819f0f1f","name":"aiResponse","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.aiResponse }}"}]},"options":{}},"id":"51828f71-3b53-4ca6-bae3-4fc65e225c75","name":"Merge Recurring Topics Thread","type":"n8n-nodes-base.set","position":[1280,272],"typeVersion":3.4},{"parameters":{"conditions":{"options":{"caseSensitive":true,"leftValue":"","typeValidation":"strict","version":2},"combinator":"and","conditions":[{"id":"7f182ff7-b5cf-44d0-9645-9200bb7afa24","operator":{"type":"array","operation":"lengthGte","rightType":"number"},"leftValue":"={{ $json.AIoutput.MarketingInsights }}","rightValue":1}]},"options":{}},"id":"6c1e470f-f343-4ecc-b7aa-9e21c02c7054","name":"Check if Marketing Insight Data Found","type":"n8n-nodes-base.if","position":[112,752],"typeVersion":2.2},{"parameters":{"amount":3},"id":"87e10c28-5080-4fb3-8fff-ba05e4cb8d9a","name":"Wait for rate limiting - Marketing Insights","type":"n8n-nodes-base.wait","position":[352,592],"typeVersion":1.1},{"parameters":{"fieldToSplitOut":"AIoutput.MarketingInsights","options":{}},"id":"c4336ca3-7c9a-449d-b6d4-f3acdadb6008","name":"Split out Insights","type":"n8n-nodes-base.splitOut","position":[560,592],"typeVersion":1},{"parameters":{"aggregate":"aggregateAllItemData","destinationFieldName":"tagdata","options":{}},"id":"2dca8edd-0cfa-4d54-85ec-2172ec5fbcb2","name":"Bundle Marketing Insights Data to 1 object","type":"n8n-nodes-base.aggregate","position":[992,592],"typeVersion":1},{"parameters":{"assignments":{"assignments":[{"id":"d8fc65ad-2b05-40c1-84c7-7bda819f0f1f","name":"aiResponse","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.aiResponse }}"}]},"options":{}},"id":"2f0a8d1f-0c82-432e-8fc7-6d237027c46d","name":"Merge Marketing Insights Thread","type":"n8n-nodes-base.set","position":[1280,768],"typeVersion":3.4},{"parameters":{"conditions":{"options":{"caseSensitive":true,"leftValue":"","typeValidation":"strict","version":2},"combinator":"and","conditions":[{"id":"7f182ff7-b5cf-44d0-9645-9200bb7afa24","operator":{"type":"array","operation":"lengthGte","rightType":"number"},"leftValue":"={{ $json.AIoutput.ActionableInsights }}","rightValue":1}]},"options":{}},"id":"727c1ecb-a70e-420a-bfcd-8968ef549578","name":"Check if Actionable Insights Data Found","type":"n8n-nodes-base.if","position":[112,1200],"typeVersion":2.2},{"parameters":{"amount":3},"id":"62fef3aa-8e7d-42e3-a168-0887c09b99b4","name":"Wait for rate limiting - Actionable Insights","type":"n8n-nodes-base.wait","position":[352,1040],"typeVersion":1.1},{"parameters":{"fieldToSplitOut":"AIoutput.ActionableInsights","options":{}},"id":"0f3be91b-589b-41d4-8b84-92a81ab3f6d4","name":"Split Out Actionable Insights","type":"n8n-nodes-base.splitOut","position":[560,1040],"typeVersion":1},{"parameters":{"resource":"databasePage","databaseId":{"__rl":true,"mode":"list","value":"17c5b6e0-c94f-809f-b5ee-e890f3ab3be9","cachedResultUrl":"https://www.notion.so/17c5b6e0c94f809fb5eee890f3ab3be9","cachedResultName":"Actionable Insights"},"title":"={{ $('Execute Workflow Trigger').item.json.metaData.title }}","propertiesUi":{"propertyValues":[{"key":"Rationale|rich_text","textContent":"={{ $json.Rationale }}"},{"key":"Recommendation Type|rich_text","textContent":"={{ $json.RecommendationType }}"},{"key":"Title|rich_text","textContent":"={{ $json.Title }}"},{"key":"Topic|title","title":"={{ $json.Topic }}"},{"key":"Sales Call Summaries|relation","relationValue":["={{ $('Execute Workflow Trigger').item.json.notionData[0].id }}"]}]},"options":{"icon":"\ud83c\udfac"}},"id":"8ad6393c-e162-4fdc-96ec-a08bd0e9be68","name":"Create Actionable Insights Data","type":"n8n-nodes-base.notion","position":[784,1040],"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000},{"parameters":{"aggregate":"aggregateAllItemData","destinationFieldName":"tagdata","options":{}},"id":"82c4d785-8be5-45c8-a3d5-f3f1676f9f72","name":"Bundle Actionable Insights Data to 1 object","type":"n8n-nodes-base.aggregate","position":[992,1040],"typeVersion":1},{"parameters":{"assignments":{"assignments":[{"id":"d8fc65ad-2b05-40c1-84c7-7bda819f0f1f","name":"aiResponse","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.aiResponse }}"}]},"options":{}},"id":"7b058c11-bee9-4a1b-8bad-5082415f6748","name":"Merge Actionable Insights Thread","type":"n8n-nodes-base.set","position":[1280,1232],"typeVersion":3.4}],"connections":{"Split out Insights":{"main":[[{"node":"Create Marketing Insight Data","type":"main","index":0}]]},"Execute Workflow Trigger":{"main":[[{"node":"Check if Marketing Insight Data Found","type":"main","index":0},{"node":"Check if Recurring Topics Found","type":"main","index":0},{"node":"Check if Actionable Insights Data Found","type":"main","index":0}]]},"Split Out Recurring Topics":{"main":[[{"node":"Create Recurring Topics Data","type":"main","index":0}]]},"Create Recurring Topics Data":{"main":[[{"node":"Bundle Recurring Topics Data to 1 object","type":"main","index":0}]]},"Create Marketing Insight Data":{"main":[[{"node":"Bundle Marketing Insights Data to 1 object","type":"main","index":0}]]},"Split Out Actionable Insights":{"main":[[{"node":"Create Actionable Insights Data","type":"main","index":0}]]},"Check if Recurring Topics Found":{"main":[[{"node":"Wait for rate limiting - Recurring","type":"main","index":0}],[{"node":"Merge Recurring Topics Thread","type":"main","index":0}]]},"Create Actionable Insights Data":{"main":[[{"node":"Bundle Actionable Insights Data to 1 object","type":"main","index":0}]]},"Wait for rate limiting - Recurring":{"main":[[{"node":"Split Out Recurring Topics","type":"main","index":0}]]},"Check if Marketing Insight Data Found":{"main":[[{"node":"Wait for rate limiting - Marketing Insights","type":"main","index":0}],[{"node":"Merge Marketing Insights Thread","type":"main","index":0}]]},"Check if Actionable Insights Data Found":{"main":[[{"node":"Wait for rate limiting - Actionable Insights","type":"main","index":0}],[{"node":"Merge Actionable Insights Thread","type":"main","index":0}]]},"Bundle Recurring Topics Data to 1 object":{"main":[[{"node":"Merge Recurring Topics Thread","type":"main","index":0}]]},"Bundle Marketing Insights Data to 1 object":{"main":[[{"node":"Merge Marketing Insights Thread","type":"main","index":0}]]},"Bundle Actionable Insights Data to 1 object":{"main":[[{"node":"Merge Actionable Insights Thread","type":"main","index":0}]]},"Wait for rate limiting - Marketing Insights":{"main":[[{"node":"Split out Insights","type":"main","index":0}]]},"Wait for rate limiting - Actionable Insights":{"main":[[{"node":"Split Out Actionable Insights","type":"main","index":0}]]}},"settings":{},"pinData":{}}

08 — AI product insights from sales calls with Notion

CallForge - 08 - AI product insights from sales calls with Notion

View JSON
{"name":"CallForge - 08 - AI product insights from sales calls with Notion","nodes":[{"id":"a2061232-329f-4288-9b01-ba832463c31e","name":"Execute Workflow Trigger","type":"n8n-nodes-base.executeWorkflowTrigger","position":[2280,-400],"parameters":{},"typeVersion":1},{"id":"42df9296-82ac-44cd-8370-50e4507fb91d","name":"Check if Product Data Found","type":"n8n-nodes-base.if","position":[2800,-340],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"1a67895e-3ab7-4c93-8e16-202b3882ded5","operator":{"type":"array","operation":"lengthGte","rightType":"number"},"leftValue":"={{ $json.AIoutput.ProductFeedback }}","rightValue":1}]}},"typeVersion":2.2},{"id":"84e93120-92d8-45fd-bb63-8626743e7fe0","name":"Sticky Note4","type":"n8n-nodes-base.stickyNote","position":[2720,-580],"parameters":{"color":7,"width":1340,"height":440,"content":"## Product Data Processing"},"typeVersion":1},{"id":"5cb1df66-abba-4d82-8fe5-c2313c8f7b44","name":"Sticky Note6","type":"n8n-nodes-base.stickyNote","position":[2140,-760],"parameters":{"color":7,"width":560,"height":620,"content":"## Receives AI Data from other workflow\n"},"typeVersion":1},{"id":"7c046627-f418-4b7e-aa5b-7cff69f98f59","name":"Sticky Note7","type":"n8n-nodes-base.stickyNote","position":[1780,-960],"parameters":{"width":340,"height":820,"content":"![Callforge](https://uploads.n8n.io/templates/callforgeshadow.png)\n## CallForge - The AI Gong Sales Call Processor\nCallForge allows you to extract important information for different departments from your Sales Gong Calls. \n\n### AI Output Processor\nOnce the AI data is generated, it is then added (or not!) to the Notion Database here. This is also where the Pipedrive or Salesforce integration will be added once that portion is complete. "},"typeVersion":1},{"id":"a04dac9d-5477-41a3-8696-1871c1cccf53","name":"Create Product Data Object1","type":"n8n-nodes-base.notion","position":[3280,-940],"parameters":{"title":"={{ $('Execute Workflow Trigger').item.json.metaData.title }}","options":{"icon":"\ud83d\udcac"},"resource":"databasePage","databaseId":{"__rl":true,"mode":"list","value":"1775b6e0-c94f-80ac-9885-d9695af5bc89","cachedResultUrl":"https://www.notion.so/1775b6e0c94f80ac9885d9695af5bc89","cachedResultName":"AI use-case database"},"propertiesUi":{"propertyValues":[{"key":"Company|title","title":"={{ $json.metaData.CompanyName }}"},{"key":"Department|multi_select","multiSelectValue":"={{ $json.AIoutput.AI_ML_References.Details.Department }}"},{"key":"Dev status|select","selectValue":"={{ $json.AIoutput.AI_ML_References.Details.DevelopmentStatus }}"},{"key":"Employees|select","selectValue":"={{ $json.sfOpp[0].Employees }}"},{"key":"Engagement with n8n|select","selectValue":"Prospect"},{"key":"Requires agents|checkbox","checkboxValue":"={{ $json.AIoutput.AI_ML_References.Details.RequiresAgents }}"},{"key":"More info|url","urlValue":"={{ $json.metaData.url }}"},{"key":"Requires RAG|checkbox","checkboxValue":"={{ $json.AIoutput.AI_ML_References.Details.RequiresRAG }}"},{"key":"Requires chat|select","selectValue":"={{ $json.AIoutput.AI_ML_References.Details.RequiresChat }}"},{"key":"Use case|rich_text","textContent":"={{ $json.AIoutput.AI_ML_References.Context }}"}]}},"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000},{"id":"66c252a9-e330-4742-84d1-d17042585f79","name":"Sticky Note","type":"n8n-nodes-base.stickyNote","position":[2720,-1040],"parameters":{"color":7,"width":1340,"height":440,"content":"## AI use Case "},"typeVersion":1},{"id":"caded10f-8662-4a2b-ab47-b1a825c39c4b","name":"Sticky Note5","type":"n8n-nodes-base.stickyNote","position":[2720,-120],"parameters":{"color":7,"width":1340,"height":360,"content":"## AI Mentioned on call"},"typeVersion":1},{"id":"750c2853-3653-4557-b636-354fd91f846b","name":"Create Product Feedback Data Object","type":"n8n-nodes-base.notion","position":[3440,-480],"parameters":{"title":"={{ $('Execute Workflow Trigger').item.json.metaData.title }}","options":{"icon":"\ud83d\udcac"},"resource":"databasePage","databaseId":{"__rl":true,"mode":"list","value":"1375b6e0-c94f-80a8-93c9-c623b76dd14a","cachedResultUrl":"https://www.notion.so/1375b6e0c94f80a893c9c623b76dd14a","cachedResultName":"Product Feedback"},"propertiesUi":{"propertyValues":[{"key":"Sentiment|multi_select","multiSelectValue":"={{ $json.Sentiment }}"},{"key":"Feedback|title","title":"={{ $json.Feedback }}"},{"key":"Feedback Date|date","date":"={{ $('Execute Workflow Trigger').item.json.metaData.started }}"},{"key":"Sales Call Summaries|relation","relationValue":["={{ $('Execute Workflow Trigger').item.json.notionData[0].id }}"]}]}},"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000},{"id":"343f536f-2aa3-4fc9-9c75-e288a5019b84","name":"Check if AI Use Case Data Found","type":"n8n-nodes-base.if","position":[2800,-800],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"1a67895e-3ab7-4c93-8e16-202b3882ded5","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.AIoutput.AI_ML_References.Exist }}","rightValue":1}]}},"typeVersion":2.2},{"id":"3d261de2-61fe-40e8-806b-f311b72081f0","name":"Check if AI Mentioned On Call","type":"n8n-nodes-base.if","position":[2860,40],"parameters":{"options":{},"conditions":{"options":{"version":2,"leftValue":"","caseSensitive":true,"typeValidation":"strict"},"combinator":"and","conditions":[{"id":"1a67895e-3ab7-4c93-8e16-202b3882ded5","operator":{"type":"boolean","operation":"true","singleValue":true},"leftValue":"={{ $json.AIoutput.AI_ML_References.Exist }}","rightValue":1}]}},"typeVersion":2.2},{"id":"e422c25b-05c0-4549-a12b-50b727cbcb83","name":"Wait for rate limiting - AI Use Case","type":"n8n-nodes-base.wait","position":[3020,-940],"parameters":{"amount":3},"typeVersion":1.1},{"id":"9ceb4ac2-6539-4c19-b207-883d61670c07","name":"Wait for rate limiting - Product Data","type":"n8n-nodes-base.wait","position":[3020,-480],"parameters":{"amount":3},"typeVersion":1.1},{"id":"61d6864c-a7fa-488e-a252-f60b497de675","name":"Split Out Product Data","type":"n8n-nodes-base.splitOut","position":[3220,-480],"parameters":{"options":{},"fieldToSplitOut":"AIoutput.ProductFeedback"},"typeVersion":1},{"id":"49bd2056-4eeb-43d7-a210-e4b777fd8535","name":"Bundle AI Use Case Data to 1 object","type":"n8n-nodes-base.aggregate","position":[3540,-940],"parameters":{"options":{},"aggregate":"aggregateAllItemData","destinationFieldName":"tagdata"},"typeVersion":1},{"id":"ce6e127d-9ff0-493c-bb47-02c30594f0e2","name":"Bundle Product Feedback Data to 1 object","type":"n8n-nodes-base.aggregate","position":[3660,-480],"parameters":{"options":{},"aggregate":"aggregateAllItemData","destinationFieldName":"tagdata"},"typeVersion":1},{"id":"ce06a39c-8066-4a3a-9ef4-b8bf6d14273a","name":"Merge AI Use Case Thread","type":"n8n-nodes-base.set","position":[3860,-780],"parameters":{"options":{},"assignments":{"assignments":[{"id":"d8fc65ad-2b05-40c1-84c7-7bda819f0f1f","name":"aiResponse","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.aiResponse }}"}]}},"typeVersion":3.4},{"id":"1d64eff6-442a-4f71-a497-d6261bf4753f","name":"Merge Product Feedback Thread","type":"n8n-nodes-base.set","position":[3880,-320],"parameters":{"options":{},"assignments":{"assignments":[{"id":"d8fc65ad-2b05-40c1-84c7-7bda819f0f1f","name":"aiResponse","type":"object","value":"={{ $('Execute Workflow Trigger').item.json.aiResponse }}"}]}},"typeVersion":3.4},{"id":"50116044-d468-4f07-a711-8373c1b26e94","name":"Update Call with AI Data Summary","type":"n8n-nodes-base.notion","position":[3180,-40],"parameters":{"pageId":{"__rl":true,"mode":"id","value":"={{ $('Execute Workflow Trigger').item.json.notionData[0].id }}"},"options":{},"resource":"databasePage","operation":"update","propertiesUi":{"propertyValues":[{"key":"AI Related|checkbox","checkboxValue":"={{ $json.AIoutput.AI_ML_References.Exist }}"},{"key":"AI Summary|rich_text","textContent":"={{ $json.AIoutput.AI_ML_References.Context }}"}]}},"retryOnFail":true,"typeVersion":2.2,"waitBetweenTries":3000}],"connections":{"Split Out Product Data":{"main":[[{"node":"Create Product Feedback Data Object","type":"main","index":0}]]},"Execute Workflow Trigger":{"main":[[{"node":"Check if Product Data Found","type":"main","index":0},{"node":"Check if AI Use Case Data Found","type":"main","index":0},{"node":"Check if AI Mentioned On Call","type":"main","index":0}]]},"Check if Product Data Found":{"main":[[{"node":"Wait for rate limiting - Product Data","type":"main","index":0}],[{"node":"Merge Product Feedback Thread","type":"main","index":0}]]},"Create Product Data Object1":{"main":[[{"node":"Bundle AI Use Case Data to 1 object","type":"main","index":0}]]},"Check if AI Mentioned On Call":{"main":[[{"node":"Update Call with AI Data Summary","type":"main","index":0}]]},"Merge Product Feedback Thread":{"main":[[]]},"Check if AI Use Case Data Found":{"main":[[{"node":"Wait for rate limiting - AI Use Case","type":"main","index":0}],[{"node":"Merge AI Use Case Thread","type":"main","index":0}]]},"Bundle AI Use Case Data to 1 object":{"main":[[{"node":"Merge AI Use Case Thread","type":"main","index":0}]]},"Create Product Feedback Data Object":{"main":[[{"node":"Bundle Product Feedback Data to 1 object","type":"main","index":0}]]},"Wait for rate limiting - AI Use Case":{"main":[[{"node":"Create Product Data Object1","type":"main","index":0}]]},"Wait for rate limiting - Product Data":{"main":[[{"node":"Split Out Product Data","type":"main","index":0}]]},"Bundle Product Feedback Data to 1 object":{"main":[[{"node":"Merge Product Feedback Thread","type":"main","index":0}]]}},"settings":{},"pinData":{}}

If these save you an afternoon, the Tuesday letter is where the rest of the workshop notes go.