AutomationFlowsData & Sheets › Automated Meeting Attendee Enrichment with Apollo.io and Google Sheets

Automated Meeting Attendee Enrichment with Apollo.io and Google Sheets

ByGain FLow AI @gain-flow on n8n.io

This workflow automates the process of gathering critical information about your meeting attendees right after they book a meeting. Whether they book through Calendly or Cal.com, this workflow extracts key details, uses Apollo.io to enrich their profiles with company and contact…

Event trigger★★★★☆ complexity13 nodesCal TriggerCalendly TriggerGoogle SheetsHTTP Request
Data & Sheets Trigger: Event Nodes: 13 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #5892 — we link there as the canonical source.

This workflow follows the Google Sheets → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "f6a8a3c9-b1c7-4143-95b9-f21a7e6ee7c1",
      "name": "Cal.com Trigger1",
      "type": "n8n-nodes-base.calTrigger",
      "position": [
        -6540,
        1540
      ],
      "parameters": {
        "events": [
          "BOOKING_CREATED"
        ],
        "options": {}
      },
      "credentials": {
        "calApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "ac8e37e7-0e6d-48ea-af24-d145f64dd5cf",
      "name": "Create URL",
      "type": "n8n-nodes-base.code",
      "position": [
        -5660,
        1440
      ],
      "parameters": {
        "jsCode": "// Retrieve the input data from node \"JSON\".\nlet inputData = $node[\"Generate Query\"].json;\n\n// If the output from the \"JSON\" node is an array, take the first element; otherwise, use it as is.\nif (Array.isArray(inputData)) {\n  inputData = inputData[0];\n}\n\n// Access the \"query\" property, expecting it to be an array and taking its first element.\nconst paramsData = inputData.query[0];\n\n// Base URL for Apollo\nconst baseURL = 'https://app.apollo.io/#/people';\n\n// Array to hold each part of the query string\nconst queryParts = [];\n\n// Helper function to process and add array parameters to queryParts.\n// - Spaces in values will be encoded as %20.\n// - Parameter names like 'paramName[]' will have their brackets encoded as 'paramName%5B%5D'.\nconst addArrayParams = (paramName, values) => {\n  values.forEach(val => {\n    // Decode any existing '+' in input string to spaces, then URI encode the whole value.\n    const decodedValue = String(val).replace(/\\+/g, ' ');\n    const encodedValue = encodeURIComponent(decodedValue); // Ensures spaces become %20\n    queryParts.push(`${paramName}%5B%5D=${encodedValue}`); // Appends paramName%5B%5D=encodedValue\n  });\n};\n\n// === Construct the query string in the DESIRED ORDER ===\n\n// 1. page=1 (Static)\nqueryParts.push('page=1');\n\n// 2. Process locations (personLocations[])\n// Example: personLocations%5B%5D=London\nif (paramsData.location && Array.isArray(paramsData.location) && paramsData.location.length > 0) {\n  addArrayParams('personLocations', paramsData.location);\n}\n\n// 3. Process organization keyword tags (qOrganizationKeywordTags[])\n// Used for searching by company NAME.\n// Example: qOrganizationKeywordTags%5B%5D=Paddle\nif (paramsData.business && Array.isArray(paramsData.business) && paramsData.business.length > 0) {\n  addArrayParams('qOrganizationKeywordTags', paramsData.business);\n}\n\n// 4. Static parameters: includedOrganizationKeywordFields[]\n// Example: includedOrganizationKeywordFields%5B%5D=tags & includedOrganizationKeywordFields%5B%5D=name\n// Using addArrayParams to ensure consistent encoding.\naddArrayParams('includedOrganizationKeywordFields', ['tags', 'name']);\n\n// 5. Static parameter: sortByField (value is pre-encoded)\n// Example: sortByField=%5Bnone%5D\nqueryParts.push('sortByField=%5Bnone%5D');\n\n// 6. Static parameter: sortAscending\n// Example: sortAscending=false\nqueryParts.push('sortAscending=false');\n\n// 7. Process qKeywords (person's name/keyword search)\n// Example: qKeywords=Rob%20Fletcher (spaces as %20)\nif (paramsData.keyword && Array.isArray(paramsData.keyword) && paramsData.keyword.length > 0) {\n  // Decode any existing '+' in input string to spaces\n  const keywordVal = String(paramsData.keyword[0]).replace(/\\+/g, ' ');\n  const encodedKeyword = encodeURIComponent(keywordVal); // Ensures spaces become %20\n  queryParts.push(`qKeywords=${encodedKeyword}`);\n}\n\n// Optional: Process job_title (personTitles[]) if needed in the future.\n// Ensure 'personTitles' is the correct Apollo parameter name and uncomment if required.\n/*\nif (paramsData.job_title && Array.isArray(paramsData.job_title) && paramsData.job_title.length > 0) {\n  addArrayParams('personTitles', paramsData.job_title); // This will also use %5B%5D encoding for brackets\n}\n*/\n\n// Combine all query parts with '&' to form the full query string\nconst queryString = queryParts.join('&');\n\n// Build the final URL\nconst finalURL = `${baseURL}?${queryString}`;\n\n// Return the output as an array of objects, with the finalURL nested under a json key.\nreturn [{ json: { finalURL } }];"
      },
      "typeVersion": 2
    },
    {
      "id": "83bc2e49-06d9-4752-a816-c88328afd24b",
      "name": "Calendly Trigger",
      "type": "n8n-nodes-base.calendlyTrigger",
      "position": [
        -6540,
        1340
      ],
      "parameters": {
        "events": [
          "invitee.created"
        ]
      },
      "credentials": {
        "calendlyApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "abb4448c-9c1d-4d56-b2e4-f19ec0631a3f",
      "name": "Google Sheets1",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -4980,
        1320
      ],
      "parameters": {
        "columns": {
          "value": {
            "Email": "={{ $('Log entry').first().json.Email }}",
            "Name ": "={{ $('Log entry').first().json['Name '] }}",
            "Notes": "={{ $('Log entry').first().json.Notes }}",
            "Phone": "={{ $('Scrape Apollo').first().json.contactPhoneNumbers[0].sanitizedNumber }}",
            "Status": "Enriched ",
            "Company": "={{ $('Scrape Apollo').first().json.companyName }}",
            "Country": "={{ $('Scrape Apollo').first().json.countryName }}",
            "Socials": "=1. LinkedIn\nPerson: {{ $('Scrape Apollo').first().json.linkedInProfileUrl }}\nCompany: {{ $json.company.linkedInProfileUrl }}\n2. Twitter\nPerson:{{ $json.twitterProfileUrl }}\nCompany:{{ $json.company.twitterProfileUrl }}\n3. Facebook\nPerson: {{ $json.facebookProfileUrl }}\nCompany: {{ $json.company.facebookProfileUrl }}\n4. Github\nPerson: {{ $json.githubProfileUrl }}\n",
            "Industry": "={{ $('Scrape Apollo').first().json.company.businessIndustry }}",
            "Location": "={{ $('Scrape Apollo').first().json.cityName }}",
            "Created At": "={{ $('Log entry').first().json['Created At'] }}",
            "Job Title ": "={{ $('Scrape Apollo').first().json.positionHistory[0].jobTitle }}",
            "Website URL": "={{ $('Scrape Apollo').first().json.company.websiteUrl }}",
            "Company Size": "=Employee Count: {{ $('Scrape Apollo').first().json.company.employeeEstimate }}\nESTD: {{ $('Scrape Apollo').first().json.company.yearFounded }}\nStock Exchange: {{ $('Scrape Apollo').first().json.company.stockExchange }}\nStock Symbol: {{ $('Scrape Apollo').first().json.company.stockSymbol }}\n"
          },
          "schema": [
            {
              "id": "Created At",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Created At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Name ",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Name ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Phone",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Phone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Country",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Country",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Location",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Location",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Socials",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Socials",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Industry",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Title ",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Job Title ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Website URL",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Website URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Size",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Company Size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Notes",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Created At"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xQ66nuVVjws8sEXhiWPtYZfg6hv-Q2az9OKTrhUIABY/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1xQ66nuVVjws8sEXhiWPtYZfg6hv-Q2az9OKTrhUIABY",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xQ66nuVVjws8sEXhiWPtYZfg6hv-Q2az9OKTrhUIABY/edit?usp=drivesdk",
          "cachedResultName": "Meeting Prep"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "0581ea56-4e36-4d8a-81b7-9ef57ba41183",
      "name": "Google Sheets2",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -4960,
        1520
      ],
      "parameters": {
        "columns": {
          "value": {
            "Status": "Info Not Available",
            "Created At": "={{ $('Log entry').first().json['Created At'] }}"
          },
          "schema": [
            {
              "id": "Created At",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Created At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Name ",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Name ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Phone",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Phone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Country",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Country",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Location",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Location",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Socials",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Socials",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Industry",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Title ",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Job Title ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Website URL",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Website URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Size",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Company Size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Notes",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xQ66nuVVjws8sEXhiWPtYZfg6hv-Q2az9OKTrhUIABY/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1xQ66nuVVjws8sEXhiWPtYZfg6hv-Q2az9OKTrhUIABY",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xQ66nuVVjws8sEXhiWPtYZfg6hv-Q2az9OKTrhUIABY/edit?usp=drivesdk",
          "cachedResultName": "Meeting Prep"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "5fd126bb-f58c-4894-97e9-3b0da6959bf1",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -6630,
        1240
      ],
      "parameters": {
        "width": 1840,
        "height": 520,
        "content": "# Enrich Meeting Attendees"
      },
      "typeVersion": 1
    },
    {
      "id": "60254652-adc6-4614-aac0-f5b269d8e3b7",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -7060,
        1240
      ],
      "parameters": {
        "width": 420,
        "height": 520,
        "content": "## 1. Resources  \n### Get your API keys by clicking on the links below.\n- ### [Calendly](https://calendly.com/integrations/api_webhooks)\n- ### [Cal.com](https://app.cal.com/settings/developer/api-keys)\n- ### [Apify](https://console.apify.com/settings/integrations)\n### Copy this Google Sheet Template\n- ### [Template](https://docs.google.com/spreadsheets/d/1TAFZwx7vo9FmzZVXB8S5qWjVUt7T4Lzvje1VVxP_LPY/edit?usp=sharing)\n## 2. Setup Guide\n- ### Connect Calendly and Cal using API keys.\n- ### Setup the Google Sheet and select it in the workflow\n- ### Replace the <APIKEY> placeholder with your Apify token.\n- ### Read This [Detailed Setup Guide](https://drive.google.com/file/d/1W9mLL2Ddr4vjW2VCs5Wg-Qm1291roH5D/view?usp=sharing) if need help\n- ### Reach out to us via [Email](mailto:info.gainflow@gmail.com) if need help\n- ### Find more real world use workflows by clicking [HERE](https://docs.google.com/document/d/1RACo90h-QwKA4hEZSlOQZsyw4iB5-43JM2l0s4lpuoY/edit?usp=sharing)"
      },
      "typeVersion": 1
    },
    {
      "id": "491cbbcd-851c-49f3-9139-9bc010b44e24",
      "name": "Extract Data",
      "type": "n8n-nodes-base.set",
      "position": [
        -6340,
        1340
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "75c90c99-eefa-4bcf-94f1-0600dd2e17ac",
              "name": "Name",
              "type": "string",
              "value": "={{ $json.payload.name }}"
            },
            {
              "id": "dea8cbbd-b4d3-47f4-8a5d-8898002a5bd6",
              "name": "Email",
              "type": "string",
              "value": "={{ $json.payload.email }}"
            },
            {
              "id": "f6e07fc3-3196-441b-8398-0d4c2358bd53",
              "name": "Company ",
              "type": "string",
              "value": "={{ $json.payload.questions_and_answers[0].answer }}"
            },
            {
              "id": "1195b3c9-ce35-4b7c-8922-52192f80eddb",
              "name": "Notes",
              "type": "string",
              "value": "={{ $json.payload.questions_and_answers[1].answer }}"
            },
            {
              "id": "680c22c0-0518-44b0-94fb-11f245c1c74e",
              "name": "Created at",
              "type": "string",
              "value": "={{ $json.created_at.toDateTime() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "d0ee5e40-5c57-4b51-a6f5-d6184f907772",
      "name": "Extract data",
      "type": "n8n-nodes-base.set",
      "position": [
        -6340,
        1540
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "75c90c99-eefa-4bcf-94f1-0600dd2e17ac",
              "name": "Name",
              "type": "string",
              "value": "={{ $json.responses.name.value }}"
            },
            {
              "id": "dea8cbbd-b4d3-47f4-8a5d-8898002a5bd6",
              "name": "Email",
              "type": "string",
              "value": "={{ $json.responses.email.value }}"
            },
            {
              "id": "f6e07fc3-3196-441b-8398-0d4c2358bd53",
              "name": "Company ",
              "type": "string",
              "value": "={{ $json.responses.title.value }}"
            },
            {
              "id": "1195b3c9-ce35-4b7c-8922-52192f80eddb",
              "name": "Notes",
              "type": "string",
              "value": "={{ $json.responses.notes.value }}"
            },
            {
              "id": "6871b932-5193-4a6c-ab90-442a063f7365",
              "name": "Created at",
              "type": "string",
              "value": "={{ $json.createdAt.toDateTime() }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "8555fefe-a522-4a5b-aaa5-a502f55ce57b",
      "name": "Log entry",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        -6100,
        1440
      ],
      "parameters": {
        "columns": {
          "value": {
            "Email": "={{ $json.Email }}",
            "Name ": "={{ $json.Name }}",
            "Notes": "={{ $json.Notes }}",
            "Company": "={{ $json['Company '] }}",
            "Created At": "={{ $json['Created at'] }}"
          },
          "schema": [
            {
              "id": "Created At",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Created At",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Name ",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Name ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "removed": false,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Phone",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Phone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Country",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Country",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Location",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Location",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Socials",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Socials",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Industry",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Industry",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Title ",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Job Title ",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Website URL",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Website URL",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company Size",
              "type": "string",
              "display": true,
              "removed": true,
              "required": false,
              "displayName": "Company Size",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Notes",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "Created At"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "appendOrUpdate",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xQ66nuVVjws8sEXhiWPtYZfg6hv-Q2az9OKTrhUIABY/edit#gid=0",
          "cachedResultName": "Sheet1"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1xQ66nuVVjws8sEXhiWPtYZfg6hv-Q2az9OKTrhUIABY",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xQ66nuVVjws8sEXhiWPtYZfg6hv-Q2az9OKTrhUIABY/edit?usp=drivesdk",
          "cachedResultName": "Meeting Prep"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 4.6
    },
    {
      "id": "f3f0d32e-8b44-49f5-aa61-a5dccbb19f17",
      "name": "Generate Query",
      "type": "n8n-nodes-base.set",
      "position": [
        -5880,
        1440
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "=={\n  \"query\": [\n    {\n      \"keyword\": [\"{{ $json['Name '] }}\"],\n      \"business\": [\"{{ $json.Company }}\"]\n    }\n  ]\n}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "8f54f69c-2d51-4c90-8a6d-d6cd48527043",
      "name": "Scrape Apollo",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -5440,
        1440
      ],
      "parameters": {
        "url": "https://api.apify.com/v2/acts/supreme_coder~apollo-scraper/run-sync-get-dataset-items?token=<YOURAPIKEY>",
        "method": "POST",
        "options": {},
        "jsonBody": "={\n    \"count\": 25,\n    \"excludeGuessedEmails\": false,\n    \"excludeNoEmails\": false,\n    \"getEmails\": true,\n    \"searchUrl\": \"{{ $json.finalURL }}\"\n}",
        "sendBody": true,
        "specifyBody": "json"
      },
      "typeVersion": 4.2,
      "alwaysOutputData": true
    },
    {
      "id": "c98b7806-6f2a-4a1d-869b-1a2aec0fde18",
      "name": "If Data available?",
      "type": "n8n-nodes-base.if",
      "position": [
        -5220,
        1440
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "6869b0dd-f1b3-4431-a0d5-d02b0acdb6e8",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $('Scrape Apollo').all().toJsonString() }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    }
  ],
  "connections": {
    "Log entry": {
      "main": [
        [
          {
            "node": "Generate Query",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Create URL": {
      "main": [
        [
          {
            "node": "Scrape Apollo",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract Data": {
      "main": [
        [
          {
            "node": "Log entry",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Extract data": {
      "main": [
        [
          {
            "node": "Log entry",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrape Apollo": {
      "main": [
        [
          {
            "node": "If Data available?",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Generate Query": {
      "main": [
        [
          {
            "node": "Create URL",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Cal.com Trigger1": {
      "main": [
        [
          {
            "node": "Extract data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Calendly Trigger": {
      "main": [
        [
          {
            "node": "Extract Data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If Data available?": {
      "main": [
        [
          {
            "node": "Google Sheets1",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Google Sheets2",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

This workflow automates the process of gathering critical information about your meeting attendees right after they book a meeting. Whether they book through Calendly or Cal.com, this workflow extracts key details, uses Apollo.io to enrich their profiles with company and contact…

Source: https://n8n.io/workflows/5892/ — original creator credit. Request a take-down →

More Data & Sheets workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Data & Sheets

This template is ideal for solo store owners, eCommerce marketers, automation beginners, or anyone using Shopify and Gmail who wants to recover lost revenue without coding.

HTTP Request, Gmail, Twilio +3
Data & Sheets

PCN. Uses googleSheets, httpRequest, @n-octo-n/n8n-nodes-json-database, itemLists. Event-driven trigger; 60 nodes.

Google Sheets, HTTP Request, @N Octo N/N8N Nodes Json Database +3
Data & Sheets

The workflow automates the process of gathering extensive keyword data for a "Main Keyword." It starts by reading initial parameters from a Google Sheets template, creates a new dedicated Google Sheet

Google Sheets, Google Drive, HTTP Request
Data & Sheets

🔥 March Sale – n8n Community Members Get ideoGener8r for Just $27! (Reg. $47) Use Coupon Code: (Valid until 3/31/2025 for n8n community members)

HTTP Request, Google Drive, Google Sheets
Data & Sheets

📄 Documentation: Notion Guide

Google Sheets, Google Drive, HTTP Request +2