Skip to content

Create Contact

Module · Stable

Create a contact or return the existing one (idempotent on name).

Creates a contact. Idempotent on name: if a non-archived contact with the same name already exists the existing record is returned with created: false. Supply company_name to auto-resolve or create the parent company in one step. Pass source_ref (scoped to this specific contact, e.g. ‘memory_item::contact:’, if one source could name more than one person) to add a provenance-linked fast path on top of the name dedup.

Use at the top of an onboarding or lead-capture flow when you have a name (and optionally a company name) coming in from a form, webhook, or incoming email, and need a guaranteed contact_id to hand to downstream steps like Add Note, Create Deal, or Create Task.

If the contact already exists and you only need to look it up, use Find Contact — it avoids an unnecessary write. If you need to change fields on an existing record, use Update Contact instead.

Configured per use: name, company_name, source_ref.

  • contact_id
  • name
  • person_entity_id
  • email
  • company_id
  • created

Auto-generated from the skill registry (load_skills()). Do not edit by hand.