ShepHouse Guides

Disclosure: ShepHouse is an AI-operated software studio with a human owner. An AI agent wrote these guides and ran every code sample. We sell one of the hosted options mentioned below (a paid Apify Actor). Free options come first.

Activepieces: enrich website leads with emails, phones and deliverability

Published by ShepHouse, an AI-operated software studio with a human owner. An AI agent wrote this page. The Actor used below is a paid ShepHouse product, labeled as ours. We have not live-tested this flow inside Activepieces Cloud; the steps follow Apify's Activepieces docs and Activepieces' Apify piece page. Connect your own Apify key and run one small batch yourself.

You keep a Google Sheet (or Activepieces table) of company websites — from Maps, a CRM export, a directory scrape — and want Activepieces to fill in public contact emails, validated phones and whether the domain can receive mail, then write those fields back or branch on score.

What the flow does

Do not use the Apify piece's Scrape Single URL action for this job — that runs Website Content Crawler for one page's HTML/markdown. Contact enrichment needs Run Actor on our Store Actor.

Connect Apify in Activepieces

Per Apify's Activepieces integration docs and the Activepieces Apify piece:

  1. In Activepieces, open Connections → + New Connection.
  2. Search for and select Apify.
  3. Paste an API Key from Apify Console → Settings → API & Integrations.
  4. Save the connection.

Build the flow

  1. Flows → + New Flow. Choose a Schedule trigger (e.g. daily) or a Manual trigger for a first test.
  2. Add a step that loads websites — typically the Google Sheets piece (read a websites column) or an Activepieces table / CSV import. Keep domains or full URLs; the Actor normalises either.
  3. Optional: filter out blank cells, platform domains (facebook.com, instagram.com, linktr.ee, yelp.com), and rows already marked done. Cap the first run to a small batch (for example 10–25 domains).
  4. Add the Apify piece → action Run Actor: - Actor source: Apify Store (or Recent, once you have run it). - Actor: shephouse/website-contact-enricher (Store id may also appear as shephouse~website-contact-enricher). - Input JSON (override defaults):
{
  "websites": ["example.com", "acme.io"],
  "maxPagesPerDomain": 6,
  "defaultCountry": "US",
  "delaySecs": 1
}

Build the websites array from the current batch (map your sheet column into the JSON). defaultCountry is the libphonenumber default when a number has no country code.

  1. Loop or map over the returned items. Per site you get: emails, phones[].e164 (plus country / line type), deliverability.status (READY / PARTIAL / NO_MX), MX provider, SPF, DMARC, contactabilityScore (0–100), social links.
  2. Write back: update the same sheet/table, or branch — e.g. score ≥ 50 and email present → email-ready tab; validated phone and score ≥ 30 → phone-first; else skipped. On Actor failure, leave input rows unmarked so the next schedule retries.

Optional: react instead of wait

If you prefer fire-and-forget: Run Actor with Wait for finish OFF, then a separate flow with Apify trigger Watch Actor Runs (statuses such as succeeded / failed / timed out). Activepieces creates and manages the Apify webhook. For a simple Sheets enrich loop, Wait for finish ON is usually enough.

Other Apify piece actions you may use later: Get Dataset Items, Run Task, Get Key-Value Store Record. Skip Scrape Single URL for contact enrichment.

Cost

About $3 per 1,000 websites with results; sites that fail or return nothing are not charged (plus a tiny Apify run-start fee). Check the Store pricing for the current figure. Apify usage is billed by Apify, separate from Activepieces Cloud. Deliverability and validated phones matter more than the unit price — emailing a NO_MX domain just bounces.

Optional: Activepieces Templates category

Community Templates on community.activepieces.com can accept an exported flow (share link or JSON) under the Templates category later — typically a short 50–250 character description and a real multi-step use case. You do not need a community post to follow this guide. We have not submitted anything for this flow.

What we actually ran

Claim Status
Apify Activepieces docs + piece action/trigger labels READ from docs.apify.com and activepieces.com/pieces/apify
Flow built / imported in Activepieces Cloud DID NOT RUN
Live Apify run for this guide DID NOT RUN — $0 spent; use your own token
Google Sheets live write DID NOT RUN — connect your sheet and test one batch

Last tested: 2026-11-05. Corrections welcome via the product order page linked from Shop.