Automatisation Salesforce avec n8n : traitement des appels Gong
Ce workflow n8n a pour objectif d'automatiser le traitement des appels enregistrés dans Gong, en intégrant des données provenant de Salesforce. Dans un contexte où les équipes commerciales doivent gérer efficacement leurs opportunités, ce workflow permet de vérifier si une opportunité contient des valeurs pertinentes et si son état est 'Meeting Booked' ou 'Discovery'. En utilisant n8n, les utilisateurs peuvent ainsi gagner du temps et réduire les erreurs manuelles dans le suivi des appels.
- Étape 1 : Le workflow est déclenché manuellement ou selon un horaire défini grâce à un nœud de type 'scheduleTrigger'.
- Étape 2 : Il vérifie si l'opportunité principale contient une valeur grâce à un nœud conditionnel.
- Étape 3 : Si cette condition est remplie, une seconde vérification s'assure que l'état de l'opportunité est correct.
- Étape 4 : Les données des appels sont formatées en un objet JSON approprié avant d'être envoyées à un préprocesseur d'appels Gong.
- Étape 5 : Le workflow récupère les appels de Gong et les trie par date. Enfin, les objets personnalisés de Salesforce sont récupérés pour enrichir les données. Ce processus permet d'améliorer la visibilité sur les interactions avec les clients et d'optimiser la gestion des opportunités commerciales, offrant ainsi une valeur ajoutée significative aux équipes de vente.
Workflow n8n Salesforce, Gong : vue d'ensemble
Schéma des nœuds et connexions de ce workflow n8n, généré à partir du JSON n8n.
Workflow n8n Salesforce, Gong : détail des nœuds
Inscris-toi pour voir l'intégralité du workflow
Inscription gratuite
S'inscrire gratuitementBesoin d'aide ?{
"meta": {
"instanceId": "cb484ba7b742928a2048bf8829668bed5b5ad9787579adea888f05980292a4a7"
},
"nodes": [
{
"id": "692e2883-0d1b-4162-8472-6d15c12c8b43",
"name": "When clicking ‘Test workflow’",
"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": "\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": {}
},
"credentials": {
"gongApi": {
"id": "EchfvOC4rjw8MUkr",
"name": "Liam Gong Cred"
}
},
"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"
},
"credentials": {
"salesforceOAuth2Api": {
"id": "Ykybxuyh0jK0o3qH",
"name": "Angel SF Creds v3"
}
},
"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
}
],
"pinData": {},
"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 ‘Test workflow’": {
"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
}
]
]
}
}
}Workflow n8n Salesforce, Gong : pour qui est ce workflow ?
Ce workflow s'adresse aux équipes commerciales et aux responsables de la gestion des opportunités dans les entreprises utilisant Salesforce et Gong. Il est conçu pour des utilisateurs ayant un niveau technique intermédiaire et souhaitant automatiser leurs processus de suivi d'appels.
Workflow n8n Salesforce, Gong : problème résolu
Ce workflow résout le problème de la gestion manuelle des appels dans Gong et de leur intégration avec Salesforce, ce qui peut entraîner des erreurs et des pertes de temps. En automatisant ce processus, les utilisateurs peuvent se concentrer sur des tâches à plus forte valeur ajoutée, tout en s'assurant que les données sont correctement enregistrées et analysées. Cela réduit également le risque d'oubli d'opportunités importantes.
Workflow n8n Salesforce, Gong : étapes du workflow
Étape 1 : Le workflow est déclenché manuellement ou selon un horaire prédéfini.
- Étape 1 : Il vérifie si l'opportunité principale contient une valeur.
- Étape 2 : Une seconde vérification s'assure que l'état de l'opportunité est 'Meeting Booked' ou 'Discovery'.
- Étape 3 : Les données des appels sont formatées en un objet JSON.
- Étape 4 : Les données sont envoyées à un préprocesseur d'appels Gong.
- Étape 5 : Les appels sont récupérés et triés par date.
- Étape 6 : Les objets personnalisés de Salesforce sont récupérés pour enrichir les données.
Workflow n8n Salesforce, Gong : guide de personnalisation
Pour personnaliser ce workflow, vous pouvez modifier les paramètres du nœud de déclenchement pour ajuster la fréquence d'exécution. Il est également possible de changer les conditions dans les nœuds de vérification pour s'adapter à vos critères spécifiques. Assurez-vous de mettre à jour les informations d'identification pour les connexions à Gong et Salesforce. Pour une intégration plus poussée, envisagez d'ajouter d'autres nœuds pour traiter les données ou les envoyer vers d'autres outils de votre stack technologique.