AutomationFlowsMarketing & Ads › Find Client Email Leads From Search Queries with Findmyclient

Find Client Email Leads From Search Queries with Findmyclient

ByFindMyClient.org @rottie420 on n8n.io

This workflow runs a FindMyClient search for a keyword, polls for completion, and extracts any returned email addresses. If emails are found, it splits them into individual items for optional saving to Google Sheets and sending via Gmail. Starts when you manually execute the…

Event trigger★★★★☆ complexity20 nodesGmailGoogle SheetsHTTP RequestStop And Error
Marketing & Ads Trigger: Event Nodes: 20 Complexity: ★★★★☆ Added:
Find Client Email Leads From Search Queries with Findmyclient — n8n workflow card showing Gmail, Google Sheets, HTTP Request integration

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

This workflow follows the Gmail → Google Sheets 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
{
  "id": "Dyuys1p6pzNYsWFU",
  "meta": {
    "templateCredsSetupCompleted": true
  },
  "name": "findmyclient_workflow_v1.2",
  "tags": [],
  "nodes": [
    {
      "id": "333f1aca-2c7e-4d55-b58e-8c5aeaf72df8",
      "name": "When clicking \u2018Execute workflow\u2019",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -1744,
        1632
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "ba3b1a73-cc18-4362-95a9-ba682140882d",
      "name": "If",
      "type": "n8n-nodes-base.if",
      "position": [
        -336,
        2192
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 3,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "39e30a7c-7ac9-4212-9750-6a229243ccdf",
              "operator": {
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "={{ $('return_result').item.json.status }}",
              "rightValue": "completed"
            },
            {
              "id": "d3d3eec4-c673-478d-8186-fa1afc30dba1",
              "operator": {
                "name": "filter.operator.equals",
                "type": "string",
                "operation": "equals"
              },
              "leftValue": "",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "bddd1e07-11f6-4b0c-91b3-a9c9bb857d77",
      "name": "Send a message",
      "type": "n8n-nodes-base.gmail",
      "disabled": true,
      "position": [
        1088,
        1680
      ],
      "parameters": {
        "options": {}
      },
      "typeVersion": 2.2
    },
    {
      "id": "eba632f8-564e-4217-b7e9-b43df57736b2",
      "name": "SAVE to spreadsheet",
      "type": "n8n-nodes-base.googleSheets",
      "disabled": true,
      "position": [
        1088,
        1488
      ],
      "parameters": {
        "options": {},
        "resource": "spreadsheet"
      },
      "typeVersion": 4.7
    },
    {
      "id": "d6308fa7-7c88-4398-b83d-1acf38c62d27",
      "name": "Input Query",
      "type": "n8n-nodes-base.set",
      "position": [
        -1520,
        1632
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "8ac84b5c-8a43-4b68-affc-b40bb044b0fd",
              "name": "query",
              "type": "string",
              "value": "=tokyo sushi"
            },
            {
              "id": "e5c10eb2-e5ae-4d45-8463-ec83c2e117b7",
              "name": "",
              "type": "string",
              "value": ""
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "9e2fae86-c313-484d-8623-80f045a358c5",
      "name": "Start Search",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1296,
        1632
      ],
      "parameters": {
        "url": "https://findmyclient.org/api/search",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "sendHeaders": true,
        "bodyParameters": {
          "parameters": [
            {
              "name": "query",
              "value": "={{ $json.query }}"
            }
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "token",
              "value": "YOUR-API-TOKEN"
            },
            {
              "name": "content-type",
              "value": "application/json"
            },
            {}
          ]
        }
      },
      "typeVersion": 4.4
    },
    {
      "id": "1fc0d1ec-63e6-4c1b-83b9-2f17f540b7c8",
      "name": "reuse_job_id",
      "type": "n8n-nodes-base.set",
      "position": [
        -112,
        2272
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "643fc032-ede2-4a15-bfcb-c4175df5472a",
              "name": "job_id",
              "type": "string",
              "value": "={{ $('get_job_id').item.json.job_id }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "edaa44b0-0040-4b0f-9400-2eb630585b60",
      "name": "return_status",
      "type": "n8n-nodes-base.set",
      "position": [
        -784,
        2192
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "55ed6949-4a91-436d-85fe-a7eea4903fd5",
              "name": "status",
              "type": "string",
              "value": "={{ $json.status }}"
            },
            {
              "id": "ed2e1d5a-0e21-4a6e-97bd-2b909fbbcae8",
              "name": "job_id",
              "type": "string",
              "value": "={{ $('get_job_id').item.json.job_id }}"
            },
            {
              "id": "a070e54e-7624-4c4f-b8fd-4faca8ea1e60",
              "name": "result.output.emails",
              "type": "array",
              "value": "={{ $json.result.output.emails }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "3735ba08-17f5-4682-8abe-ea9048b9eac9",
      "name": "Wait",
      "type": "n8n-nodes-base.wait",
      "position": [
        -560,
        2192
      ],
      "parameters": {
        "amount": 30
      },
      "typeVersion": 1.1
    },
    {
      "id": "1d5f69aa-fd2c-4b29-a10c-6200271949ea",
      "name": "return_result",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -1008,
        2272
      ],
      "parameters": {
        "url": "=https://findmyclient.org/api/result/{{$json[\"job_id\"]}}",
        "options": {}
      },
      "typeVersion": 4.4
    },
    {
      "id": "0f72933e-216c-4440-83e7-eb17d2448f08",
      "name": "get_job_id",
      "type": "n8n-nodes-base.set",
      "position": [
        -1072,
        1632
      ],
      "parameters": {
        "include": "selected",
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "f5e00cd1-f983-4388-97cf-050f099afd0e",
              "name": "job_id",
              "type": "string",
              "value": "={{ $json.job_id }}"
            }
          ]
        },
        "includeFields": "job_id",
        "includeOtherFields": true
      },
      "typeVersion": 3.4
    },
    {
      "id": "a0331583-9acb-4e97-8f5c-f8bcc1c141a7",
      "name": "Final Result",
      "type": "n8n-nodes-base.set",
      "position": [
        96,
        1680
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "7690d832-b978-4fc7-a0ff-5ff0b3588c0e",
              "name": "result.output.emails",
              "type": "array",
              "value": "={{ $json.result.output.emails }}"
            },
            {
              "id": "f1433d25-15b6-4c2d-8532-02f0ec9290c2",
              "name": "",
              "type": "string",
              "value": ""
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "b8eabed9-2b1b-4b66-9ca7-b362dd22bdb6",
      "name": "Split Emails",
      "type": "n8n-nodes-base.splitOut",
      "disabled": true,
      "position": [
        496,
        1584
      ],
      "parameters": {
        "options": {},
        "fieldToSplitOut": "result.output.emails"
      },
      "typeVersion": 1
    },
    {
      "id": "2a944dcd-82c4-447f-b9e0-3d00ac2fa063",
      "name": "Stop and Error",
      "type": "n8n-nodes-base.stopAndError",
      "position": [
        496,
        1776
      ],
      "parameters": {
        "errorMessage": "Keyword not found!"
      },
      "typeVersion": 1
    },
    {
      "id": "9cf87de1-8139-4a02-a05f-d060226bf372",
      "name": "if_email",
      "type": "n8n-nodes-base.if",
      "position": [
        272,
        1680
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "version": 3,
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "39e30a7c-7ac9-4212-9750-6a229243ccdf",
              "operator": {
                "type": "boolean",
                "operation": "true",
                "singleValue": true
              },
              "leftValue": "={{ ($json.result?.output?.emails || []).length > 0 }}",
              "rightValue": "is not empty"
            }
          ]
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "6e5c3f97-bfbe-4923-9fb5-2d227e373ff9",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2672,
        1488
      ],
      "parameters": {
        "color": "#FFFFFF",
        "width": 816,
        "height": 752,
        "content": "## How it works\n\nThis workflow automates lead discovery using the FindMyClient API. It submits a search query, polls for job completion, extracts discovered email addresses, and splits them into individual items for downstream processing.\n\n1. **Configure Search Query** \u2013 An Edit Fields (Set) node defines a `query` field (business type, niche, or location) sent to the FindMyClient API.\n2. **Start Search Job** \u2013 An HTTP Request node sends a POST request to `https://findmyclient.org/api/search` with your API token and the query payload, returning a `job_id`.\n3. **Store Job ID** \u2013 An Edit Fields (Set) node saves the `job_id` for use in polling.\n4. **Check Search Status** \u2013 An HTTP Request node sends a GET request to `https://findmyclient.org/api/result/{{ $json.job_id }}` to check whether the job is `processing` or `completed`.\n5. **Evaluate Job Status** \u2013 An IF node branches based on the status: completed results proceed, processing results enter the retry loop.\n6. **Wait and Retry** \u2013 A Wait node pauses for 30 seconds, then re-checks the status using the same `job_id`, repeating until completed.\n7. **Extract Search Results** \u2013 Once completed, an Edit Fields (Set) node extracts the list of discovered emails.\n8. **Split Emails into Individual Items** \u2013 A Split Out node converts the email array into separate items for individual processing (database storage, CRM entry, outreach, enrichment, etc.).\n\n## Optional Steps\n\n- **Save Results to Google Sheets** \u2013 A disabled Google Sheets node can be enabled and connected to a Google account to automatically log discovered emails to a spreadsheet.\n- **Send Email Notifications** \u2013 A disabled Gmail node can be enabled with OAuth credentials to notify a team when a search completes, useful for sales alerts, CRM imports, or downstream triggers.\n\n## Set Up Steps\n\n1. Add your FindMyClient API token to the HTTP Request node header (`token`).\n2. Set the `query` value in the Edit Fields (Set) node to your target search term.\n3. (Optional) Connect your Google Sheets account and configure the spreadsheet destination.\n4. (Optional) Connect your Gmail account via OAuth to enable completion notifications.\n5. Activate the workflow to start submitting searches and polling for results automatically."
      },
      "typeVersion": 1
    },
    {
      "id": "9b2cc335-4cd3-478f-a0af-2f0da6b76491",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1552,
        1504
      ],
      "parameters": {
        "color": 7,
        "width": 624,
        "height": 320,
        "content": "## Configuring FindMyClient API Search: \n\nSet search query, start FindMyClient search job via API, store returned job ID"
      },
      "typeVersion": 1
    },
    {
      "id": "e8851859-60c9-4704-b665-b362ec5aa45b",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1024,
        2080
      ],
      "parameters": {
        "color": 7,
        "width": 1024,
        "height": 416,
        "content": "## Poll Job Status Until Complete\n\nStore job ID, check status via GET, branch on result, retry after 30s wait"
      },
      "typeVersion": 1
    },
    {
      "id": "9bc8d720-ca1e-4690-8eef-23eb9f417b77",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        48,
        1488
      ],
      "parameters": {
        "color": 7,
        "width": 624,
        "height": 448,
        "content": "## Extract and Split Email Results\n\nExtract discovered emails, split array into individual items for processing"
      },
      "typeVersion": 1
    },
    {
      "id": "3267c7ac-b54f-45c0-ad65-97335695904a",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        976,
        1280
      ],
      "parameters": {
        "color": 7,
        "width": 320,
        "height": 624,
        "content": "## Optional: Google Sheets & Email Alerts\n\nEnable Google Sheets logging and Gmail notifications for completed searches"
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "settings": {
    "binaryMode": "separate",
    "executionOrder": "v1"
  },
  "versionId": "c7d10287-11e3-473b-8264-06421c500482",
  "connections": {
    "If": {
      "main": [
        [
          {
            "node": "Final Result",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "reuse_job_id",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Wait": {
      "main": [
        [
          {
            "node": "If",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "if_email": {
      "main": [
        [
          {
            "node": "Split Emails",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "Stop and Error",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "get_job_id": {
      "main": [
        [
          {
            "node": "return_result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Input Query": {
      "main": [
        [
          {
            "node": "Start Search",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Final Result": {
      "main": [
        [
          {
            "node": "if_email",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Split Emails": {
      "main": [
        [
          {
            "node": "SAVE to spreadsheet",
            "type": "main",
            "index": 0
          },
          {
            "node": "Send a message",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Start Search": {
      "main": [
        [
          {
            "node": "get_job_id",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "reuse_job_id": {
      "main": [
        [
          {
            "node": "return_result",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "return_result": {
      "main": [
        [
          {
            "node": "return_status",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "return_status": {
      "main": [
        [
          {
            "node": "Wait",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "When clicking \u2018Execute workflow\u2019": {
      "main": [
        [
          {
            "node": "Input Query",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Pro

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

About this workflow

This workflow runs a FindMyClient search for a keyword, polls for completion, and extracts any returned email addresses. If emails are found, it splits them into individual items for optional saving to Google Sheets and sending via Gmail. Starts when you manually execute the…

Source: https://n8n.io/workflows/16169/ — 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 workflow leverages n8n to perform automated Google Maps API queries and manage data efficiently in Google Sheets. It's designed to extract specific location data based on a given list of ZIP code

Execute Workflow Trigger, Stop And Error, HTTP Request +1
Marketing & Ads

Find companies similar to your best clients using PredictLeads, enrich each with news, hiring, and tech signals, then score them 0–100 for outreach priority.

Google Sheets, @Predictleads/N8N Nodes Predictleads, Slack +2
Marketing & Ads

This n8n workflow automates the process of finding ecommerce seller leads, enriching them with product and business details, discovering company websites, and extracting contact information such as em

Google Sheets, N8N Nodes Mrscraper, HTTP Request
Marketing & Ads

This template is for B2B sales teams, SDRs, growth marketers, and founders who maintain a spreadsheet of prospects and need verified contact details -- emails and mobile numbers -- without manual rese

Google Sheets, HTTP Request
Marketing & Ads

This workflow finds local businesses from Google Maps and automatically enriches them with emails, social profiles, AI summaries, and personalized outreach messages — all saved to Google Sheets. Searc

HTTP Request, Google Sheets