AutomationFlowsMarketing & Ads › Automate Meeting Prep & Lead Enrichment with Bright Data, Cal.com & Airtable

Automate Meeting Prep & Lead Enrichment with Bright Data, Cal.com & Airtable

ByZacharia Kimotho @imperolq on n8n.io

This workflow makes it easier to prepare for meetings and calls by researching your lead right before the call and creates a high-level meeting prep that is sent to your email. This removes the extra steps needed by teams to learn their leads, research, and prepare for the…

Webhook trigger★★★★☆ complexityAI-powered23 nodesOpenRouter ChatAirtableChain Llm@Brightdata/N8N Nodes BrightdataGmail
Marketing & Ads Trigger: Webhook Nodes: 23 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the Airtable → Chainllm 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": "f359d12b-3c06-4f6b-9ac6-4acb852e6c05",
      "name": "Map needed fields",
      "type": "n8n-nodes-base.set",
      "position": [
        460,
        60
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "332ac717-6d9e-4bb1-a29c-415f2519f7d0",
              "name": "title",
              "type": "string",
              "value": "={{ $json.title }}"
            },
            {
              "id": "f94cd637-1254-4d50-af94-7a1d5e9b135f",
              "name": "description",
              "type": "string",
              "value": "={{ $json.additionalNotes }}"
            },
            {
              "id": "c527097e-949d-4a34-a1bd-ef47105c064f",
              "name": "videoCallUrl",
              "type": "string",
              "value": "={{ $json.metadata.videoCallUrl }}"
            },
            {
              "id": "ceb36c00-ced6-49a6-8fd5-81feebb62cc9",
              "name": "status",
              "type": "string",
              "value": "={{ $json.status }}"
            },
            {
              "id": "1b49259d-fe8d-4582-b8d9-0cc4eee83e83",
              "name": "length",
              "type": "number",
              "value": "={{ $json.length }}"
            },
            {
              "id": "fee35065-650b-4b94-96f9-6dcf4306fc69",
              "name": "name",
              "type": "string",
              "value": "={{ $json.responses.name.value }}"
            },
            {
              "id": "0372c2d0-abe2-42c0-8a3e-45be7e802e1d",
              "name": "email",
              "type": "string",
              "value": "={{ $json.responses.email.value }}"
            },
            {
              "id": "de9e48b5-02b0-4648-bd61-c4391cdc216d",
              "name": "responsesnotes",
              "type": "string",
              "value": "={{ $json.responses.notes.value }}"
            },
            {
              "id": "4afed284-dc20-450a-85bb-3a676a382411",
              "name": "startTime",
              "type": "string",
              "value": "={{ $json.startTime }}"
            },
            {
              "id": "4ba399f9-3df0-4437-86e8-f2bf5a67aa61",
              "name": "endTime",
              "type": "string",
              "value": "={{ $json.endTime }}"
            },
            {
              "id": "753b9aca-a068-4f0e-ace1-827edaac1a62",
              "name": "agenda",
              "type": "string",
              "value": "={{ $json.responses.title.value ||  $json.responses.agenda.value}}"
            },
            {
              "id": "ee9dd182-9a1c-4c45-ae4b-9ec3949b9033",
              "name": "purpose",
              "type": "string",
              "value": "={{ $json.userFieldsResponses.purpose.label }}"
            },
            {
              "id": "fdc9ecf9-a14f-41e5-9d8a-7fc61afbb35b",
              "name": "Linkedin",
              "type": "string",
              "value": "={{ $json.responses.Linkedin.value }}"
            },
            {
              "id": "a9e1537e-ba15-4ee6-be86-dc48f32cbfac",
              "name": "business-website",
              "type": "string",
              "value": "={{ $json.responses['business-website'].value }}"
            },
            {
              "id": "8fa1ba2d-a080-4158-a7ef-d933389239dc",
              "name": "Guest",
              "type": "string",
              "value": "={{ $json.responses.guests.value[0] }}"
            },
            {
              "id": "f7d07121-64bf-4b96-a916-f31a639920bb",
              "name": "iCalUID",
              "type": "string",
              "value": "={{ $json.iCalUID }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "552b5079-df32-45dd-8808-0b549cb4682d",
      "name": "Webhook",
      "type": "n8n-nodes-base.webhook",
      "position": [
        -160,
        60
      ],
      "parameters": {
        "path": "83231439-9c32-443c-86ea-8645f3d76640",
        "options": {},
        "httpMethod": "POST"
      },
      "typeVersion": 2
    },
    {
      "id": "da2e6463-dcf3-4c29-a469-d893404d08d4",
      "name": "create json",
      "type": "n8n-nodes-base.set",
      "position": [
        280,
        60
      ],
      "parameters": {
        "mode": "raw",
        "options": {},
        "jsonOutput": "={{ $json.body.payload }}"
      },
      "typeVersion": 3.4
    },
    {
      "id": "650ba393-c127-4676-bbdf-b6b3276b6c33",
      "name": "If has linkedin",
      "type": "n8n-nodes-base.filter",
      "position": [
        820,
        60
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 2,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "74273d5b-b315-4f94-be05-ab2237fe7143",
              "operator": {
                "type": "string",
                "operation": "notEmpty",
                "singleValue": true
              },
              "leftValue": "={{ $('Map needed fields').first().json.Linkedin }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "eed1b925-f458-4fcb-b840-efeb4a74dc62",
      "name": "Edit bio",
      "type": "n8n-nodes-base.set",
      "position": [
        1140,
        60
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "b0eb19b6-7dec-40ad-8ccb-7fc1e1ebdd85",
              "name": "name",
              "type": "string",
              "value": "={{ $json.name }}"
            },
            {
              "id": "3a213d32-a17d-46d1-848a-64b759677ca3",
              "name": "city",
              "type": "string",
              "value": "={{ $json.city }}"
            },
            {
              "id": "1273634d-efd2-4fc0-a821-df9d3fea06a8",
              "name": "country_code",
              "type": "string",
              "value": "={{ $json.country_code }}"
            },
            {
              "id": "08485677-973e-438a-a9f3-8b62d64a0ff4",
              "name": "position",
              "type": "string",
              "value": "={{ $json.position }}"
            },
            {
              "id": "c15f6f1e-11cf-40fb-b9ac-e216fc3760d7",
              "name": "about",
              "type": "string",
              "value": "={{ $json.about }}"
            },
            {
              "id": "49ea1e20-a376-4d67-9b2c-19371ea23174",
              "name": "current_company",
              "type": "string",
              "value": "={{ $json.current_company.name }}"
            },
            {
              "id": "85e53350-bf31-4a69-aed6-4fe7a2bd0d33",
              "name": "current_company",
              "type": "string",
              "value": "={{ $json.current_company.link }}"
            },
            {
              "id": "68ca9297-4b0e-45de-8a09-5e9a4ed1bfac",
              "name": "experience",
              "type": "array",
              "value": "={{ $json.experience.map(item => item.positions) }}"
            },
            {
              "id": "8b2d2663-b254-43f1-b11a-3d5f3e76140b",
              "name": "url",
              "type": "string",
              "value": "={{ $json.url }}"
            },
            {
              "id": "58086e21-6200-4afb-9588-fd5fafffa807",
              "name": "educations_details",
              "type": "string",
              "value": "={{ $json.educations_details }}"
            },
            {
              "id": "9a583f42-0a83-4419-82a4-56abb6d35bb7",
              "name": "followers",
              "type": "number",
              "value": "={{ $json.followers }}"
            },
            {
              "id": "e3031132-32d4-446e-bcdc-4265c3ea171d",
              "name": "connections",
              "type": "number",
              "value": "={{ $json.connections }}"
            },
            {
              "id": "8abda043-2f59-4eb5-a272-ee40cbbab368",
              "name": "activity",
              "type": "array",
              "value": "={{ $json.activity }}"
            },
            {
              "id": "2268fcc1-9556-41d9-83f4-17c18f560629",
              "name": "current_company  name",
              "type": "string",
              "value": "={{ $json.current_company.name }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "01f093cb-3cb1-4e75-80fd-0a181e24d21d",
      "name": "OpenRouter Chat Model",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
      "position": [
        1360,
        420
      ],
      "parameters": {
        "options": {}
      },
      "credentials": {
        "openRouterApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "95311415-caa6-4e18-bdd9-1a1f700f3690",
      "name": "Update lead data",
      "type": "n8n-nodes-base.airtable",
      "position": [
        1320,
        -60
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appiSZ70ow7uVxv7t",
          "cachedResultUrl": "https://airtable.com/appiSZ70ow7uVxv7t",
          "cachedResultName": "Appointments & Calls Manager"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tbljEjTMx1j4MQ8fV",
          "cachedResultUrl": "https://airtable.com/appiSZ70ow7uVxv7t/tbljEjTMx1j4MQ8fV",
          "cachedResultName": "Lead Enrichment"
        },
        "columns": {
          "value": {
            "city": "={{ $('Edit bio').item.json.city }}",
            "about": "={{ $('Edit bio').item.json.about }}",
            "company": "={{ $('Edit bio').item.json['current_company  name'] }}",
            "country": "={{ $('Edit bio').item.json.country_code }}",
            "full_name": "={{ $('Edit bio').item.json.name }}",
            "job_title": "={{ $('Edit bio').item.json.position }}",
            "public_id": "={{ $('Scrap Linkedin').item.json.id }}",
            "experiences": "={{ $json.experience?.toJsonString() }}",
            "linkedin_url": "={{ $('Map needed fields').item.json.Linkedin }}",
            "follower_count": "={{ $('Edit bio').item.json.followers }}",
            "Appointments & Calls": "={{ $('Map needed fields').item.json.title }}",
            "company_linkedin_url": "={{ $json.current_company }}"
          },
          "schema": [
            {
              "id": "full_name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "full_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "about",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "about",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "city",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "city",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_description",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "company_description",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_domain",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "company_domain",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_employee_range",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "company_employee_range",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_industry",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "company_industry",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_linkedin_url",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "company_linkedin_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "company_website",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "company_website",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "connection_count",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "connection_count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "country",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "country",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "current_company_join_year",
              "type": "number",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "current_company_join_year",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "experiences",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "experiences",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "first_name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "first_name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "follower_count",
              "type": "number",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "follower_count",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "headline",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "headline",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "job_title",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "job_title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "linkedin_url",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "linkedin_url",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "public_id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "public_id",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Appointments & Calls",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Appointments & Calls",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "2e9f499d-6889-4e72-88ba-cb11856b5b91",
      "name": "Meeting Prep Agent",
      "type": "@n8n/n8n-nodes-langchain.chainLlm",
      "position": [
        1340,
        160
      ],
      "parameters": {
        "text": "={{ $json?.toJsonString() }}",
        "batching": {},
        "messages": {
          "messageValues": [
            {
              "message": "=You are an AI assistant specializing in generating meeting preparation documents for business professionals. Your goal is to analyze provided data (specifically LinkedIn profiles and meeting agendas) and synthesize it into actionable insights to facilitate productive introductory calls. You are detail-oriented, organized, and capable of extracting key information and identifying relevant connections.\n\n**Task:**\n\nGenerate a comprehensive meeting preparation document for an introductory call with a prospect, based on the LinkedIn profile data and meeting agenda provided. The output should follow the format described below and be tailored to the specific information in the input data.\n\n**Input Format:**\n\nYou will receive a JSON object containing a LinkedIn profile and a string containing the meeting agenda. The LinkedIn profile will contain fields such as `name`, `position`, `about`, `experience`, `activity` and other relevant details.  The `experience` field is an array of job objects, each containing `title`, `company`, `description`, etc. The `activity` field is an array of the users' recent LinkedIn likes.\n\n**Output Format:**\n\nThe output should be a well-formatted document, easily readable and actionable, adhering to the following structure:"
            }
          ]
        },
        "promptType": "define"
      },
      "typeVersion": 1.7
    },
    {
      "id": "954fe099-0861-4c60-998a-431712e4f322",
      "name": "Add to CRM",
      "type": "n8n-nodes-base.airtable",
      "position": [
        640,
        60
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appiSZ70ow7uVxv7t",
          "cachedResultUrl": "https://airtable.com/appiSZ70ow7uVxv7t",
          "cachedResultName": "Appointments & Calls Manager"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tbl9JXgSsQyVLE3tV",
          "cachedResultUrl": "https://airtable.com/appiSZ70ow7uVxv7t/tbl9JXgSsQyVLE3tV",
          "cachedResultName": "Appointments and calls"
        },
        "columns": {
          "value": {
            "Name": "={{ $json.name }}",
            "Email": "={{ $json.email }}",
            "Notes": "={{ $json.description }}",
            "Source": "Cal.com",
            "Status": "Booked",
            "Meeting": "={{ $json.title }}",
            "iCalUID": "={{ $json.iCalUID }}",
            "Accepted": "={{ $json.status.toSentenceCase() }}",
            "End-time": "={{ $json.endTime.toDateTime() }}",
            "Linkedin": "={{ $json.Linkedin }}",
            "Start-time": "={{ $json.startTime.toDateTime() }}",
            "Meeting Link": "={{ $json.videoCallUrl }}",
            "business-website": "={{ $json['business-website'] }}",
            "Reason For Schedule": "={{ $json.agenda }}"
          },
          "schema": [
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Meeting",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Meeting",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Notes",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Lead data",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Lead data",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Booked",
                  "value": "Booked"
                },
                {
                  "name": "No Show",
                  "value": "No Show"
                },
                {
                  "name": "Done",
                  "value": "Done"
                },
                {
                  "name": "Rescheduled",
                  "value": "Rescheduled"
                },
                {
                  "name": "Showed Up",
                  "value": "Showed Up"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Date",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Date",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Start-time",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Start-time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "End-time",
              "type": "dateTime",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "End-time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Accepted",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Accepted",
                  "value": "Accepted"
                },
                {
                  "name": "accepted",
                  "value": "accepted"
                },
                {
                  "name": "needsAction",
                  "value": "needsAction"
                },
                {
                  "name": "declined",
                  "value": "declined"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Accepted",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Meeting Link",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Meeting Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Open Meeting",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Open Meeting",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Source",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Cal.com",
                  "value": "Cal.com"
                },
                {
                  "name": "G calendar",
                  "value": "G calendar"
                }
              ],
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Source",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "updated",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "updated",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Outcome",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Positive",
                  "value": "Positive"
                },
                {
                  "name": "Negative",
                  "value": "Negative"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Outcome",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Meeting_prep",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Meeting_prep",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Calendar Link",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Calendar Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Created",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Reason For Schedule",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Reason For Schedule",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "business-website",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "business-website",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Linkedin",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Linkedin",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "about (from Lead data)",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "about (from Lead data)",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created time",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Created time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "How did the meeting go?",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "How did the meeting go?",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Extra notes",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Extra notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "FOLLOW UP",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "",
                  "value": ""
                },
                {
                  "name": "Sent",
                  "value": "Sent"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "FOLLOW UP",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "iCalUID",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "iCalUID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "create"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "19049aeb-3b17-499d-a9f9-37bedaf3c340",
      "name": "Route events",
      "type": "n8n-nodes-base.switch",
      "position": [
        60,
        60
      ],
      "parameters": {
        "rules": {
          "values": [
            {
              "outputKey": "BOOKING_CREATED",
              "conditions": {
                "options": {
                  "version": 2,
                  "leftValue": "",
                  "caseSensitive": true,
                  "typeValidation": "strict"
                },
                "combinator": "and",
                "conditions": [
                  {
                    "operator": {
                      "type": "string",
                      "operation": "equals"
                    },
                    "leftValue": "={{ $json.body.triggerEvent }}",
                    "rightValue": "BOOKING_CREATED"
                  }
                ]
              },
              "renameOutput": true
            }
          ]
        },
        "options": {}
      },
      "typeVersion": 3.2
    },
    {
      "id": "1b6ed86d-bd2b-488d-abdf-b83fdae2276b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        260,
        -160
      ],
      "parameters": {
        "width": 720,
        "height": 80,
        "content": "## Cal.com Meeting Prep Agent with Bright Data API"
      },
      "typeVersion": 1
    },
    {
      "id": "c64cf170-1576-4fcd-b977-1a429d20775f",
      "name": "Scrap Linkedin",
      "type": "@brightdata/n8n-nodes-brightdata.brightData",
      "position": [
        980,
        60
      ],
      "parameters": {
        "urls": "=[{\"url\":\"{{ $('Map needed fields').item.json.Linkedin }}\"}]",
        "resource": "webScrapper",
        "dataset_id": {
          "__rl": true,
          "mode": "list",
          "value": "gd_l1viktl72bvl7bjuj0",
          "cachedResultName": "LinkedIn people profiles"
        },
        "requestOptions": {}
      },
      "credentials": {
        "brightdataApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "30a77cf2-baa3-4c82-a3e7-13f8135db38d",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -800,
        0
      ],
      "parameters": {
        "width": 460,
        "height": 260,
        "content": "## Summary\n\nCapture the webhook from cal.com for new bookings\n\nEnsure you have a field on the form to collect linkedin posts. This can be optional or mandatory depending on your preferences\n\nWhen a new event is booked, we will be adding the leads to an airtable CRM for appointments and new bookings. This table will contain all the items and items needed\n\nIf the lead has linkedin then we do a research on linkedin for their content and posts and perform a lead enrichment to get as much info as we can about the leads and create a new meeting prep\n"
      },
      "typeVersion": 1
    },
    {
      "id": "c8786d8b-529d-4af8-a392-e5b2a5e653ae",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -200,
        -60
      ],
      "parameters": {
        "width": 200,
        "height": 400,
        "content": "Receive webhook on a new meeting booked"
      },
      "typeVersion": 1
    },
    {
      "id": "7e245466-782e-4d89-b22a-908e67813226",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        240,
        -60
      ],
      "parameters": {
        "width": 340,
        "height": 400,
        "content": "Split the object data into a json for easy mapping\n\nYou can drag and drop the fields you have on the `Map Needed fields` node"
      },
      "typeVersion": 1
    },
    {
      "id": "292d8261-1e4c-441b-a970-88c61ad32b27",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        600,
        -60
      ],
      "parameters": {
        "width": 180,
        "height": 400,
        "content": "Add the leads to your CRM\n\nMake a copy of this [Airtable CRM](https://airtable.com/appiSZ70ow7uVxv7t/shrvmFKqRYGX6iUZY) \n\nYou can use any CRM of choice for this\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "fa69af0a-561e-4834-8229-41e0ded2b3f1",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        800,
        -60
      ],
      "parameters": {
        "width": 480,
        "height": 380,
        "content": "Filter only leads with linkedin urls and send this to Bright Data API.\n\nGet a copy of the API and select the dataset we want. In this case we are researching for the leads Profile on Linkedin"
      },
      "typeVersion": 1
    },
    {
      "id": "4a6c0152-da5b-459b-ad04-201be06ba209",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1300,
        -140
      ],
      "parameters": {
        "width": 260,
        "height": 240,
        "content": "Add the new enriched leads data to the leads table "
      },
      "typeVersion": 1
    },
    {
      "id": "38c458fe-10d7-4ad7-8f92-a3ebd374010e",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1300,
        120
      ],
      "parameters": {
        "width": 900,
        "height": 280,
        "content": "Create a meeting Prep and Share via email"
      },
      "typeVersion": 1
    },
    {
      "id": "424aac19-9d96-4447-8e4e-29e51c33a872",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        20,
        -60
      ],
      "parameters": {
        "width": 200,
        "height": 400,
        "content": "You can route the data based on other Cal events eg Meeting started, ended etc"
      },
      "typeVersion": 1
    },
    {
      "id": "29f09e3f-e477-4168-8c91-befde3e47ea6",
      "name": "Update meeting summary",
      "type": "n8n-nodes-base.airtable",
      "position": [
        2020,
        160
      ],
      "parameters": {
        "base": {
          "__rl": true,
          "mode": "list",
          "value": "appiSZ70ow7uVxv7t",
          "cachedResultUrl": "https://airtable.com/appiSZ70ow7uVxv7t",
          "cachedResultName": "Appointments & Calls Manager"
        },
        "table": {
          "__rl": true,
          "mode": "list",
          "value": "tbl9JXgSsQyVLE3tV",
          "cachedResultUrl": "https://airtable.com/appiSZ70ow7uVxv7t/tbl9JXgSsQyVLE3tV",
          "cachedResultName": "Appointments and calls"
        },
        "columns": {
          "value": {
            "id": "={{ $('Add to CRM').first().json.id }}",
            "Meeting_prep": "={{ $('create HTML').item.json.text }}"
          },
          "schema": [
            {
              "id": "id",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": true,
              "required": false,
              "displayName": "id",
              "defaultMatch": true
            },
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Meeting",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Meeting",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Notes",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Notes",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Lead data",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Lead data",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Status",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Booked",
                  "value": "Booked"
                },
                {
                  "name": "No Show",
                  "value": "No Show"
                },
                {
                  "name": "Done",
                  "value": "Done"
                },
                {
                  "name": "Rescheduled",
                  "value": "Rescheduled"
                },
                {
                  "name": "Showed Up",
                  "value": "Showed Up"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Status",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Start-time",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Start-time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "End-time",
              "type": "dateTime",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "End-time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Accepted",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Accepted",
                  "value": "Accepted"
                },
                {
                  "name": "accepted",
                  "value": "accepted"
                },
                {
                  "name": "needsAction",
                  "value": "needsAction"
                },
                {
                  "name": "declined",
                  "value": "declined"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Accepted",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Meeting Link",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Meeting Link",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Open Meeting",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": true,
              "required": false,
              "displayName": "Open Meeting",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Source",
              "type": "options",
              "display": true,
              "options": [
                {
                  "name": "Cal.com",
                  "value": "Cal.com"
                },
                {
                  "name": "G calendar",
                  "value": "G calendar"
                }
              ],
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Source",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "updated",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "updated",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Meeting_prep",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "Meeting_prep",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Created",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Reason For Schedule",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Reason For Schedule",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "business-website",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "business-website",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Linkedin",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Linkedin",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Created time",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Created time",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "iCalUID",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "iCalUID",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Lead Enrichment",
              "type": "string",
              "display": true,
              "removed": true,
              "readOnly": false,
              "required": false,
              "displayName": "Lead Enrichment",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [
            "id"
          ],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "update"
      },
      "credentials": {
        "airtableTokenApi": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "05f75d10-4a7a-41ef-829a-fa9c6599a10b",
      "name": "Notify admin",
      "type": "n8n-nodes-base.gmail",
      "position": [
        1820,
        160
      ],
      "parameters": {
        "sendTo": "={your email}",
        "message": "={{ $json.data }}",
        "options": {},
        "subject": "New Meeting Prep Email"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.1
    },
    {
      "id": "4eb75676-c5b8-4ad6-9dc7-451cb695efd8",
      "name": "create HTML",
      "type": "n8n-nodes-base.markdown",
      "position": [
        1660,
        160
      ],
      "parameters": {
        "mode": "markdownToHtml",
        "options": {},
        "markdown": "={{ $json.text }}"
      },
      "typeVersion": 1
    }
  ],
  "connections": {
    "Webhook": {
      "main": [
        [
          {
            "node": "Route events",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit bio": {
      "main": [
        [
          {
            "node": "Meeting Prep Agent",
            "type": "main",
            "index": 0
          },
          {
            "node": "Update lead data",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Add to CRM": {
      "main": [
        [
          {
            "node": "If has linkedin",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "create HTML": {
      "main": [
        [
          {
            "node": "Notify admin",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "create json": {
      "main": [
        [
          {
            "node": "Map needed fields",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Notify admin": {
      "main": [
        [
          {
            "node": "Update meeting summary",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Route events": {
      "main": [
        [
          {
            "node": "create json",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Scrap Linkedin": {
      "main": [
        [
          {
            "node": "Edit bio",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "If has linkedin": {
      "main": [
        [
          {
            "node": "Scrap Linkedin",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Update lead data": {
      "main": [
        []
      ]
    },
    "Map needed fields": {
      "main": [
        [
          {
            "node": "Add to CRM",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Meeting Prep Agent": {
      "main": [
        [
          {
            "node": "create HTML",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "OpenRouter Chat Model": {
      "ai_languageModel": [
        [
          {
            "node": "Meeting Prep Agent",
            "type": "ai_languageModel",
            "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 makes it easier to prepare for meetings and calls by researching your lead right before the call and creates a high-level meeting prep that is sent to your email. This removes the extra steps needed by teams to learn their leads, research, and prepare for the…

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

More Marketing & Ads workflows → · Browse all categories →

Related workflows

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

Marketing & Ads

This automated n8n workflow streamlines lead qualification by taking structured lead data from Tally forms, enriching it with Qwen-3’s AI analysis, and promptly notifying your sales or delivery teams.

OpenRouter Chat, Gmail, Chain Llm
Marketing & Ads

Ad Agency in a box. Uses httpRequest, splitOut, outputParserStructured, chainLlm. Webhook trigger; 54 nodes.

HTTP Request, Output Parser Structured, Chain Llm +5
Marketing & Ads

LinkedinComments (youtube). Uses stickyNote, httpRequest, lmChatGoogleGemini, outputParserAutofixing. Webhook trigger; 27 nodes.

HTTP Request, Google Gemini Chat, Output Parser Autofixing +3
Marketing & Ads

Real estate leads move fast. Manually matching buyer requirements with available properties, sending details, updating CRM records, and notifying sales teams often causes delays and missed opportuniti

Gmail, Airtable, Slack
Marketing & Ads

This n8n workflow monitors Reddit for posts relevant to a specific business or industry, identifies potential leads, and delivers them directly to your inbox.

OpenRouter Chat, HTTP Request Tool, Output Parser Structured +5