Apify
Apify is a platform for running web scrapers and automations, called actors, in the cloud. Leadovaro uses your Apify account in two modes:
- Enrichment: Leadovaro runs a contact scraper over each account's website and stores the company's social profiles, published role mailboxes and phone numbers.
- Input: any actor or saved task you run in Apify (job boards, review sites, directory listings, page monitors) sends its results to Leadovaro when a run succeeds, one event per result.
How Leadovaro integrates Apify
You connect Apify once, with your own Apify API token, under Integrations in the Leadovaro dashboard. You find the token in Apify Console under Settings, then API & Integrations. That one connection serves both modes: Leadovaro uses it to start enrichment runs, and to read the results of the runs your Input sources report.
- Your account, your credits. Apify bills compute and actor usage to the account that owns the token, so there is no shared Leadovaro key. Every run Leadovaro starts, and every run you schedule, uses your Apify credits.
- Verified without spending anything. When you connect, Leadovaro checks the token by reading your Apify user profile. That starts no actor and costs nothing. A token Apify rejects is reported straight away.
- A rejected token stops work. If Apify later rejects the token, Leadovaro marks the connection as failed and stops using it until you reconnect.
Enrichment
Leadovaro runs the Apify Store actor Contact Details Scraper over an account's website. It is an account-level lookup: it needs the account's domain, and it never looks up individual people.
What Leadovaro reads. The scraper crawls the homepage and the pages one link away (about, contact, team and similar), up to 10 pages. From what it finds, Leadovaro keeps:
| Fact | What Leadovaro keeps |
|---|---|
| Social profiles | The company's own profile on LinkedIn (a company page), X, Facebook, Instagram and YouTube. Personal profiles and share links are ignored. |
| Email addresses | Up to three role mailboxes such as info@, sales@ or support@, on the account's own domain. Addresses with a person's name in them are never stored. |
| Phone numbers | Up to three numbers the site links as phone links. |
When it runs. Switch Apify on under Configuration, then Enrichment. From then on, each account with a domain gets one Apify pass when Leadovaro enriches it, and at most one every 30 days after that.
What it costs. Each run is capped at 10 pages, a short time limit and a hard spending ceiling, so a typical pass costs a few cents of Apify credit. See the actor's page in the Apify Store for its current pricing. If a slow site hits the time limit, Leadovaro still keeps what the scraper found on the pages it finished. A site that serves nothing in time is not retried until the next pass, so it does not keep costing you runs.
Where results appear. On the account's company view, the values show under Company details as links (a profile, an email or a phone number), marked as coming from Apify. Enrichment sources lists which facts Apify filled.
If your Apify account runs out of credits, Leadovaro retries the pass within the hour. Top up or raise your usage limit in Apify and enrichment resumes on its own.
Input
An Apify Input source turns every succeeded run of one actor or saved task into events in Leadovaro. Apify's run webhook says which run finished but does not carry its results, so Leadovaro reads the results itself with your Apify connection.
What arrives. Each result (each item in the run's dataset) becomes one
item event under the source's name, for example apify.item, with the
result's fields stored exactly as Apify Console shows them. Leadovaro reads up to
100 results per run and skips any single result over 32 KB. Failed, aborted
and timed out runs add nothing.
How it stays safe. Leadovaro only takes the run's ID from the webhook. It then asks Apify for that run, confirms it succeeded and reads that run's own results, so nobody can point Leadovaro at someone else's data. Apify retries a failed delivery for about two days; Leadovaro skips results it has already stored, so a retry never creates duplicates.
How results map to accounts. Every actor returns its own fields, so you
choose which field holds the company's website. A new source matches on a
domain field, which Contact Details Scraper returns. For other actors,
change it under account matching on the source, for example to
companyWebsite on a jobs actor. Matching only finds accounts Leadovaro already
has; it never creates one.
How results become signals. Results arrive straight away but raise
nothing until you map them. Map the source's item event to a signal under
Configuration, optionally with a condition on any field the actor returns.
See signal mapping.
Set up an Apify source
- 1Connect Apify first
Add your API token under Integrations as described above. Without the connection, Leadovaro cannot read run results and the source stores nothing.
- 2Add the source in Leadovaro
Under Integrations, add an Apify input. Use one source per actor or task, so each one's fields can be matched on their own. Leadovaro shows you an endpoint URL and a secret.
- 3Add a webhook in Apify Console
Open the actor or saved task, go to Integrations and add an HTTP webhook. Choose Run succeeded as the event type and paste the endpoint URL into URL.
- 4Add the secret as a header
In Headers template, add the value Leadovaro shows you as JSON:
{"Authorization": "Bearer <your source secret>"}. Copy the full value Leadovaro shows, includingBearer. Apify does not sign its webhooks, so this header is how Leadovaro knows the call is yours. - 5Keep the default payload and save
Leave Payload template as it is. Leadovaro reads the run from Apify's default payload.
- 6Point matching and mapping at the actor's fields
On the source, set account matching to the field holding the company's website, then map
itemevents to a signal.
To run it regularly, use Apify Schedules. A scheduled actor or task calls the source after every run, so there is nothing to schedule in Leadovaro.
You'll know it worked when the next succeeded run's results appear as
item events on the source, attached to the matching accounts. If nothing
arrives, check that the header holds the full value Leadovaro showed you and that
the Apify connection is verified. If events arrive but match no account, the
matching field names something the actor does not return; results stored
before you fix it stay unmatched.
Apify documentation
- API and integrations (API token)
- Console settings
- Actors and saved tasks
- Webhooks and webhook actions and payload template
- Datasets
- Schedules
- Contact Details Scraper
Going further
- Turn events into signals: Signal mapping.
- See how enrichment feeds scoring: ICP and scoring.
- Act on signals: Plays.
- All connectors: Connectors.