Watches for new contacts in Airtable and Notion, deduplicates them, enriches the record, and upserts a clean single entry into the master Airtable contacts list.
Each step shows the tools it's allowed to touch.
Read the raw contact data from the stated source. If source is Notion, pull the full page properties. If source is Airtable, pull the full record.
Search the master Airtable contacts table for existing records matching on the chosen dedupe_field (exact), then run a fuzzy fallback on Full Name + Company.
Evaluate matches: exact match → merge, fuzzy match above threshold → merge with conflict logging, no match → create new.
Normalise all fields (phone to E.164, email lowercase, company title case). Fill requested enrich_fields from available data. Flag anything that cannot be enriched.
Write the final merged and enriched record to the master Airtable table — update if merging, insert if new. Record source provenance.
Return the structured output: action_taken, master_record_id, merged_fields, enriched_fields, conflict_notes, and duplicate_source_refs.
Every number here is platform-tracked, not self-reported.