Workflow n8n

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.
Tags clés :automatisationSalesforceGongn8nworkflow
Catégorie: Scheduled | Manual · Tags: automatisation, Salesforce, Gong, n8n, workflow0

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

  • When clicking ‘Test workflow’

    Déclenche le workflow manuellement lorsque l'utilisateur clique sur 'Test workflow'.

  • Check if Primary Opportunity Contains Value

    Vérifie si l'opportunité principale contient une valeur spécifiée.

  • Check if Opportunity Stage is Meeting Booked or Discovery

    Vérifie si l'étape de l'opportunité est 'Meeting Booked' ou 'Discovery'.

  • Sticky Note5

    Affiche une note autocollante avec un contenu spécifique.

  • Sticky Note4

    Affiche une note autocollante colorée avec un contenu spécifique.

  • Format call into correct JSON Object

    Formate les données d'appel en un objet JSON correct.

  • Pass to Gong Call Preprocessor

    Exécute un autre workflow pour prétraiter l'appel Gong.

  • Get Gong Call

    Récupère les informations d'un appel Gong selon les paramètres spécifiés.

  • Sort by date

    Trie les données par date selon les critères définis.

  • Get all custom Salesforce Gong Objects

    Récupère tous les objets Gong personnalisés de Salesforce.

  • Run Hourly

    Déclenche le workflow sur une base horaire selon la règle spécifiée.

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": "![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": {}
      },
      "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.