← All N8N workflows
AI & researchCodeFilterGoogle SheetsGoogle Sheets TriggerHTTP Request

🏒 Company Decision Maker Discovery

Configured with Filter, Google Sheets, Google Sheets Trigger, HTTP Request, and additional nodes. Review the connections and setup before adapting this template.

Workflow preview
TriggerGoogle Sheets TriggerGoogle Sheets TriggerWeb / APIApollo OrganizationEnrichmentHTTP RequestCodeCreate Apollo PeopleSearch URLCodeRoutingLoop Over Items (1000per Batch)Loop Over ItemsWeb / APIApollo Find DecisionMakersHTTP RequestData storeAdd ContactsGoogle SheetsWeb / APIApollo Enrich DecisionMakersHTTP RequestCodeCreate Apollo PeopleEnrichment PayloadCodeData storeEnrich ContactsGoogle SheetsRoutingLoop Over Items ForBulk Enrichment (10 per…Loop Over ItemsAI & modelsDetermine Contact'sDepartmentOpen AiWeb / APIApollo OrganizationSearchHTTP RequestData storeAdd Company WebsiteGoogle SheetsMessagingApprove Company WebsiteSlackData storeAdd Company DetailsGoogle SheetsRoutingSelect UnprocessedCompaniesFilterRoutingIs Domain AlreadyProvided?IfAI & modelsSummarize Core BusinessOpen AiTransformSplit Out BatchedDecision Maker ResponseSplit OutTransformSplit Out BatchedEnrichment ResponseSplit OutMessagingSend Weekly ReportSlackData storeRetrieve Verified LeadsGoogle SheetsCodeDerive Past Week's LeadGen. MetricsCodeTriggerWeekly Report TriggerSchedule TriggerTransformMerge Rows Which NowAll Contain DomainsMerge

Node categories in this workflow

  • Trigger
  • Web / API
  • Code
  • Routing
  • Data store
  • AI & models
  • Messaging
  • Transform

Icons describe general node roles, inferred from node types. Inspect the parameters for the configured action.

Drag to pan; use + and βˆ’ to zoom. Reconstructed from the exported node positions; nothing runs here. Dashed lines represent non-main connections. Full node names and notes appear below.

How it works

The exported workflow contains the following configured nodes. Their connections are shown above; inspect the JSON for the complete logic, expressions, and external actions.

Workflow node names, types, and operations
NodeCategoryTypeOperation
Google Sheets TriggerTriggerGoogle Sheets TriggerSee node parameters
Apollo Organization EnrichmentWeb / APIHTTP RequestSee node parameters
Create Apollo People Search URLCodeCodeSee node parameters
Loop Over Items (1000 per Batch)RoutingLoop Over ItemsSee node parameters
Apollo Find Decision MakersWeb / APIHTTP RequestPOST
Add ContactsData storeGoogle SheetsappendOrUpdate
Apollo Enrich Decision MakersWeb / APIHTTP RequestPOST
Create Apollo People Enrichment PayloadCodeCodeSee node parameters
Enrich ContactsData storeGoogle SheetsappendOrUpdate
Loop Over Items For Bulk Enrichment (10 per batch)RoutingLoop Over ItemsSee node parameters
Determine Contact's DepartmentAI & modelsOpen AiSee node parameters
Apollo Organization SearchWeb / APIHTTP RequestPOST
Add Company WebsiteData storeGoogle SheetsappendOrUpdate
Approve Company WebsiteMessagingSlacksendAndWait
Add Company DetailsData storeGoogle SheetsappendOrUpdate
Select Unprocessed CompaniesRoutingFilterSee node parameters
Is Domain Already Provided?RoutingIfSee node parameters
Summarize Core BusinessAI & modelsOpen AiSee node parameters
Split Out Batched Decision Maker ResponseTransformSplit OutSee node parameters
Split Out Batched Enrichment ResponseTransformSplit OutSee node parameters
Send Weekly ReportMessagingSlackSee node parameters
Retrieve Verified LeadsData storeGoogle SheetsSee node parameters
Derive Past Week's Lead Gen. MetricsCodeCodeSee node parameters
Weekly Report TriggerTriggerSchedule TriggerSee node parameters
Merge Rows Which Now All Contain DomainsTransformMergeSee node parameters

Setup

  1. Download the JSON and import it into an isolated n8n instance. Leave the workflow inactive.
  2. Connect your own credentials through n8n’s credential store. Replace REPLACE_WITH_* values with your resource identifiers.
  3. Inspect API destinations, Code nodes, database queries, file paths, and outbound actions.
  4. Run with synthetic data and harmless destinations. Enable triggers only after checking the actual outputs.

Requirements

An n8n instance with the listed node types and compatible versions. Service-connected workflows may require accounts, credentials, or paid APIs.

Credential types declared in the source

None declared. HTTP requests and Code nodes may still need configuration.

Workflow notes

🏒 Company Decision Maker Discovery

🏒 Company Decision Maker Discovery

This workflow processes a list of companies (optionally with their websites to improve search accuracy) and outputs a curated list of decision-makers (e.g., CEO, COO, CTO, VP, Director) along with their contact information (LinkedIn, email, phone) into a structured leads database. It also sends out a weekly report to a Slack channel, specifying the number of verified leads generated over the past week.​

Here's the Google Sheet template for this workflow.

You can explore the Apps Script code in the sheet via Extensions > App Script

βš™οΈ Workflow Trigger πŸ‘‡

βš™οΈ Workflow Trigger πŸ‘‡

The main workflow is triggered by adding or updating a row in the Companies tab of a Google Sheet. You can provide the company's name and website (the domain will be extracted automatically in the spreadsheet). Alternatively, you may provide only the company name, allowing the Apollo Organization Search API to retrieve the website.

πŸ”„ Status Management ☝️

πŸ”„ Status Management ☝️

To avoid unintentional duplicate lead extraction from companies, we use a filter to retrieve only companies where the value of the Status column isn't "Processed". Note that if the website of a "Processed" company is edited, the status changes back to "Pending" as configured via an Apps Script function.

🏒 Company Enrichment ☝️

🏒 Company Enrichment ☝️

With company domains present in the spreadsheet, we utilize the Apollo Organization Enrichment endpoint to extract details about the companies. Subsequently, we generate a one-line summary of each company's core business via an LLM and populate the Companies tab of the spreadsheet, setting the Status to "Processed".

πŸ‘₯ Decision Maker Discovery ☝️

πŸ‘₯ Decision Maker Discovery ☝️

We employ the Apollo People Search endpoint to find decision-makers at the companies. A crucial query parameter is q_organization_domains_list[], which accepts up to 1,000 domains in a single request. To accommodate scenarios with over 1,000 companies, we batch the API calls (1,000 per batch) and dynamically construct the full search URL for each batch using a Code node.

🧠 Data Processing and Upsertion πŸ‘‡

🧠 Data Processing and Upsertion πŸ‘‡

A Split Out node enables handling the batched API response. We generate each decision maker's department based on their job title using an LLM call and upsert the results into the Contacts tab of the spreadsheet.

πŸ“§ Contact Enrichment ☝️

πŸ“§ Contact Enrichment ☝️

Since the Apollo People Search endpoint doesn't retrieve email addresses and phone numbers, we make additional calls to the Bulk People Enrichment endpoint to enrich data for up to 10 people with a single API call. Using a Code node, we construct the dynamic endpoint URL for each batch of 10 people, split the batched enrichment response data, and upsert the Contacts tab again.

βœ… Verified Contacts Filtering

βœ… Verified Contacts Filtering

At this stage, the Contacts tab may contain both verified and unverified email addresses. We filter and select only contacts with verified email addresses using the following spreadsheet formula in cell A2 of the Contacts (Verified) tab:​

=FILTER(Contacts!A2:M, Contacts!L2:L = "Yes")

πŸ“Š Weekly Report ☝️

πŸ“Š Weekly Report ☝️

This step is configured to automatically send out a summary message every week, reporting the number of new verified leads discovered over the past 7 days.

πŸ§‘β€πŸ’Ό Human-in-the-Loop Verification πŸ‘‡

πŸ§‘β€πŸ’Ό Human-in-the-Loop Verification πŸ‘‡

Since the retrieved website may not always be accurate, a human-in-the-loop step (via Slack) is required to verify the returned websites in the spreadsheet, make corrections if needed, and approve.

🏒 Company Decision Maker Discovery

🏒 Company Decision Maker Discovery

Purpose and structure

This folder contains the 🏒 Company Decision Maker Discovery workflow. Its executable nodes use code, filter, googleSheets, googleSheetsTrigger, httpRequest, if, merge, openAi, scheduleTrigger, slack, splitInBatches, splitOut. The table and connection map below are derived from the JSON, not an inferred guarantee of behavior.

Setup

Import inactive. Configure your own credentials and replace REPLACE_WITH_* values. Review external destinations and Code nodes before running.

Entry points

Google Sheets Trigger, Weekly Report Trigger

Verification

Sanitized source candidate; not runtime-tested. This overview is generated from node metadata. Read the folder README for the connection map, credential types, and license.

Attribution

https://github.com/Zie619/n8n-workflows/blob/94007c1445d9258a7da116646b79473e7c7c3282/workflows/Splitout/0902_Splitout_Code_Create_Scheduled.json MIT; preserve source notices.

More in AI & research