CRM & Notion Field Filler — Enrich Records You Already Have avatar

CRM & Notion Field Filler — Enrich Records You Already Have

Under maintenance

Pricing

from $3.50 / 1,000 field filled on an existing records

Go to Apify Store
CRM & Notion Field Filler — Enrich Records You Already Have

CRM & Notion Field Filler — Enrich Records You Already Have

Under maintenance

Find records in Notion, HubSpot, Supabase or any MCP-connected app that are missing phone, website, owner or any other field — and fill only the blanks from an Apify dataset. Never overwrites what a human typed.

Pricing

from $3.50 / 1,000 field filled on an existing records

Rating

0.0

(0)

Developer

K O

K O

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

5 days ago

Last modified

Share

Your CRM is full of half-finished records. A company name and nothing else. A contact with no phone. A lead with no website.

This Actor finds those gaps and fills them — only the blanks, never the values a person typed in by hand.

Point it at the app your records live in (Notion, HubSpot, Supabase, Airtable, any MCP connector), point it at an Apify dataset that has the missing values, tell it which field joins the two, and it patches the difference.

What makes it safe to run on a live CRM

  • Blank-only by default. A field holding a value is left alone. overwrite exists, and is off.
  • Minimal patches. It sends only the fields it actually filled, not the whole record.
  • No LLM. Deterministic joins on a key you choose. Nothing is inferred, guessed, or hallucinated into your database.
  • dryRun reports every record and field it would touch, for free, before anything is written.
  • One rejected record never aborts the rest of the run.

How it works

  1. Connect your app under Integrations in Apify Console.
  2. Run in list-tools mode to see the connector's tool names.
  3. Run in fill mode.
{
"destination": "<your connector>",
"mode": "fill",
"readTool": "query_database",
"readToolArgs": { "database_id": "abc123" },
"updateTool": "update_page",
"idField": "id",
"idArgName": "page_id",
"datasetId": "<dataset with the missing values>",
"matchKey": "email",
"fillFields": ["phone", "website", "owner"]
}

Credentials never reach this Actor. It talks to your app through Apify's MCP proxy, which holds the real tokens.

Examples

Fill missing phone numbers on CRM contactsmatchKey: "email", fillFields: ["phone"], source dataset from any contact-enrichment Actor.

Add owner names to a contractor listmatchKey: "licenseNumber", fillFields: ["owner", "phone"], source from a licence-registry Actor.

Backfill company websites in NotionmatchKey: "domain", fillFields: ["website", "industry"].

Input

FieldRequiredDescription
destinationyesMCP connector holding your records
modefill (default) or list-tools
readToolfor fillTool that lists your existing records
readToolArgsJSON args for the read tool
updateToolfor fillTool that patches one record
updateToolExtraArgsConstant args merged into every update
idFieldWhere the record ID lives in the read result. Default id
idArgNameWhat the update tool calls that ID. Default id
datasetIdfor fillApify dataset supplying the values
matchKeyfor fillField joining both sides. Case/space insensitive
sourceMatchKeyOnly if the source names the join field differently
fillFieldsfor fillDestination fields to complete
fieldMapOnly if a source field is named differently or nested
overwriteAlso replace non-blank values. Default off
maxItemsCap on records updated per run. Default 1000
dryRunPlan only, write nothing

Output

One row per record handled:

{ "updated": true, "key": "a@example.com", "id": "page_123",
"filled": ["phone"], "patch": { "phone": "480-555-0100" } }

Failures are recorded rather than dropped:

{ "updated": false, "key": "b@example.com", "id": "page_124", "error": "Tool \"update_page\" returned an error: ..." }

What counts as blank

null, missing, "", whitespace, and []. Note that 0 and false are real values and are not treated as gaps.

Pricing

$5 per 1,000 records updated. Records that were already complete, records with no match in the source, and dry runs are all free. You pay when a record actually gained data.

FAQ

Does this see my Notion/HubSpot token? No. Apify's MCP proxy holds credentials and attaches them to outbound calls.

Will it overwrite my data? Not unless you set overwrite: true. By default it only writes into empty fields.

What if a record has no match in the source? It's skipped and counted as unmatched. Nothing is written.

Can an AI agent call this? Yes — it's exposed through the Apify MCP server, and list-tools then fill is a natural two-step.