ar-website-email-phone-finder

Find website email addresses and phone numbers in n8n using an Apify Actor

Package Information

Released: 5 mo ago
Downloads: 2 weekly / 142 monthly
Latest Version: 1.0.0
Author: AR

Documentation

n8n-nodes-website-email-phone-finder

An n8n community node for finding website email addresses, phone numbers, and useful links from website domains using an Apify Actor.

This node is useful for lead generation, business contact discovery, CRM enrichment, and saving website contact data into tools like PostgreSQL, Google Sheets, Airtable, or any other n8n-supported app.


Features

  • Find email addresses from website domains
  • Find phone numbers from websites
  • Extract useful website links
  • Run an Apify Actor directly from n8n
  • Use secure Apify API credentials inside n8n
  • Supports multiple domains in one run
  • Returns clean JSON output
  • Can be connected with PostgreSQL, Google Sheets, Airtable, CRM tools, Slack, Email, and more

How it works

The node sends website domains to an Apify Actor.

The Apify Actor does the scraping work and returns contact information.

Simple flow:

n8n Workflow
↓
Apify Website Email & Phone Finder Node
↓
Apify Actor
↓
Dataset Results
↓
n8n Output

Example workflow

Manual Trigger
↓
Apify Website Email & Phone Finder
↓
Code Node
↓
PostgreSQL

Installation

Install from n8n Community Nodes

In your n8n instance:

Settings
↓
Community Nodes
↓
Install

Enter package name:

n8n-nodes-website-email-phone-finder

Then click install.

After installation, restart n8n if required.

Credentials

This node uses Apify API token authentication.

Where to get Apify API token

Go to your Apify account:

Apify Console
↓
Settings
↓
Integrations
↓
API Token
↓
Copy token

How to add token in n8n

In n8n:

Credentials
↓
New Credential
↓
Apify API
↓
Paste your Apify API token
↓
Save

Then select this credential inside the node.

Do not paste the Apify API token directly into node input fields. Always save it as an n8n credential.

Node Name

After installation, search for this node in n8n:

Apify Website Email & Phone Finder

You can search using:

WebsiteEmailPhoneApify

Input

The node accepts one or more website domains.

Example domains:

centralrestaurante.com
disfrutarbarcelona.com
diverxo.com
asadorretxebarri.com
alchemist.dk

In the node, open the Domains field and add values one by one.

Example Input

{
  "domains": [
    "centralrestaurante.com",
    "disfrutarbarcelona.com",
    "diverxo.com"
  ]
}

Example Output

The node returns data similar to this:

{
  "domain": "centralrestaurante.com",
  "emails": [
    "reserva@centralrestaurante.com",
    "facturaciontermain@centralrestaurante.com.pe"
  ],
  "phoneNumbers": [
    "+5112428575"
  ],
  "links": [
    "https://centralrestaurante.com.pe/en/",
    "https://centralrestaurante.com.pe/en/privacy"
  ]
}

Recommended n8n Workflow

Basic workflow

Manual Trigger
↓
Apify Website Email & Phone Finder

Use this for testing the node.

Save results into PostgreSQL

Recommended workflow:

Manual Trigger
↓
Apify Website Email & Phone Finder
↓
Code Node
↓
PostgreSQL

The Apify node returns arrays like:

emails
phoneNumbers
links

For PostgreSQL, it is better to flatten the output before inserting rows.

Code Node Example for PostgreSQL

Add a Code node after this node and use Run Once for All Items mode.

Paste this code:

const output = [];

for (const item of $input.all()) {
	const data = item.json;
	const domain = data.domain || '';
	const emails = Array.isArray(data.emails) ? data.emails : [];
	const phoneNumbers = Array.isArray(data.phoneNumbers) ? data.phoneNumbers : [];
	const links = Array.isArray(data.links) ? data.links : [];

	if (emails.length === 0) {
		output.push({
			json: {
				domain,
				email: '',
				phoneNumber: phoneNumbers[0] || '',
				links: links.join(', '),
				status: 'NO_EMAIL_FOUND',
			},
		});
		continue;
	}

	for (const email of emails) {
		output.push({
			json: {
				domain,
				email,
				phoneNumber: phoneNumbers[0] || '',
				links: links.join(', '),
				status: 'FOUND',
			},
		});
	}
}

return output;

After this Code node, the output will be easier to save in PostgreSQL.

Example output after Code node:

{
  "domain": "centralrestaurante.com",
  "email": "reserva@centralrestaurante.com",
  "phoneNumber": "+5112428575",
  "links": "https://centralrestaurante.com.pe/en/, https://centralrestaurante.com.pe/en/privacy",
  "status": "FOUND"
}

PostgreSQL Table Example

Create a table like this:

CREATE TABLE website_email_phone_leads (
    id SERIAL PRIMARY KEY,
    domain TEXT,
    email TEXT,
    phone_number TEXT,
    links TEXT,
    status TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

In the PostgreSQL node, map fields like this:

domain       → {{ $json.domain }}
email        → {{ $json.email }}
phone_number → {{ $json.phoneNumber }}
links        → {{ $json.links }}
status       → {{ $json.status }}

Common Issues

Node not visible in n8n

Restart n8n after installing the package.

Search using:

WebsiteEmailPhoneApify

Invalid Apify token

If you get unauthorized errors, check your Apify API token.

Make sure the token belongs to the Apify account that has access to the Actor.

Empty result

If no emails are returned:

  • Check if the domain is correct
  • Try the same domain in Apify Console
  • Some websites may not publicly show email addresses
  • Some websites may block scraping

PostgreSQL values showing undefined

This happens if you map the wrong field names.

The direct node output has:

domain
emails
phoneNumbers
links

But PostgreSQL usually needs simple fields like:

domain
email
phoneNumber
links
status

Use the Code node example above to flatten the data before inserting into PostgreSQL.

Local Development

Clone the project:

git clone https://gitlab.com/YOUR_GITLAB_USERNAME/n8n-nodes-website-email-phone-finder.git
cd n8n-nodes-website-email-phone-finder

Install dependencies:

npm install

Build:

npm run build

Link locally:

npm link

Go to your n8n custom folder:

cd ~/.n8n/custom
npm link n8n-nodes-website-email-phone-finder

Start n8n:

npx n8n start

For Windows PowerShell:

cd C:\Users\YOUR_USERNAME\.n8n\custom
npm link n8n-nodes-website-email-phone-finder
npx n8n start

Package

npm package name:

n8n-nodes-website-email-phone-finder

Based on Apify Actor

This node runs an Apify Actor for website email and phone number extraction.

Actor link:

YOUR_APIFY_ACTOR_LINK

License

MIT

Author

YOUR_NAME_OR_COMPANY

Discussion