Clients — matched by primary contact’s phone or email
When you create a client (directly, by saving an estimate for a new client, or by converting a lead), Menaia first looks in your workspace for an existing client whose primary contact already has the same phone or email. If one matches, that client is reused — no new client is created — and your incoming details are merged onto it.Matching rules
- Phone or email match. A client matches if the existing primary contact’s phone or email equals the phone or email you entered. Either one matching is enough.
- Phone is preferred over email. If the phone you enter points at one client and the email points at a different client, Menaia uses the phone match. Phone is treated as the stronger unique identifier.
- Your workspace only. Matching is scoped to your own workspace. A client in another workspace that happens to share a phone or email will never match and will never be overwritten.
- Deleted clients are ignored. A client you’ve deleted won’t block creating a new one and won’t be matched.
- Primary contact only. The find-or-create matcher checks the client’s primary contact. Secondary contacts are not used for this match. (The lead forms warn more broadly — see The “Existing client found” warning below.)
Formatting doesn’t matter
Two clients only collide if their normalized phone or email match, so formatting differences neither create duplicates nor prevent a match:- Email is trimmed and lowercased before comparison.
- Phone is converted to its international form (for example,
(555) 123-4567becomes+15551234567) before comparison. A non-empty but invalid phone is rejected with “Invalid phone number.”
What you must supply
To create a client you must provide:- A first name — otherwise you’ll see “First name is required.”
- A last name — otherwise you’ll see “Last name is required.”
- At least one of email or phone — otherwise you’ll see “Either email or phone is required.”
Merge behavior on a match
When an existing client matches, the new name, email, and phone you entered are merged onto the existing primary contact. You don’t lose the new information, and you don’t get a second client. If nothing you entered actually differs from what’s stored, the client is returned unchanged.Contacts — reused on lead-to-client conversion
Converting a lead into a client does not create a second contact for the same person. The lead’s existing contact is reused, and its type changes from lead to client.Standalone contact rules
When client or project edits add or update contacts:- Editing an existing contact merges your incoming values over the stored ones.
- An edit that would leave a contact with neither email nor phone is rejected with “Either email or phone number is required.”
- You can’t hijack someone else’s contact by guessing an ID. When editing a client’s or project’s contacts, a contact reference is only treated as an edit to an existing contact when that contact belongs to the record’s scope — a client’s own contacts, or, for a project, the project’s contacts plus those of its client (so you can link one of the client’s people to the project without duplicating them). A reference to any other contact is treated as a new contact rather than an edit to an unrelated one, so one user can’t alter arbitrary contacts by guessing IDs.
Properties — matched per client by street address and its city, state, and ZIP
A property is deduplicated per client. When you add a property (directly, or by saving an estimate or converting a lead), Menaia looks for one the client already has at the same street address — and, among those, one whose city, state, and ZIP are compatible with what you entered. If it finds a compatible match, that property is reused and any missing details are filled in; otherwise a new property is created.Matching rules
- Same street address, per client. The street address you enter must match an existing property’s street address exactly, for the same client. The match is exact text — it is not fuzzy and is not normalized.
- City, state, and ZIP must be compatible. Among the client’s properties at that street address, Menaia reuses the one whose city, state, and postal code don’t contradict what you entered — an exact match on all three wins. If every same-street property names a different city, state, or ZIP, none is reused and a new property is created. So “123 Main St, Chicago” and “123 Main St, Springfield” are two separate properties for the same client, even though the street text is identical. City, state, and ZIP are compared ignoring case and surrounding spaces.
- Blank or placeholder details are filled in, not treated as a conflict. If a stored property is missing a city, state, or ZIP — or still holds a placeholder left from an unresolved address — the value you enter fills it in rather than forcing a second property.
- A real, different value is never overwritten. When a property is reused, Menaia only fills in the city, state, or ZIP fields that were blank or placeholder. It never rewrites a city, state, or ZIP that already holds a real, different value — that case creates a new property instead, so an address attached to other work isn’t silently changed.
- Address is required. Creating a property without an address fails with “Address is required when creating a property.”
- Same workspace only. A property can only attach to a client in your own workspace.
- No-op reuse writes nothing. If you re-add a property and nothing changed, the existing property is returned without an update.
Because the street match is exact text, the same physical address typed two different ways (for example, “123 Main St” vs. “123 Main Street”) is treated as two different properties. There is no fuzzy address matching.
Projects — created once per lead and client
When a lead is converted, the project linked to that lead is created only once. Converting the same lead and client again returns the existing project instead of duplicating it. The lookup matches on both the lead and the client.Leads — recent-duplicate suppression on automated intake
Automated lead intake (such as web-form submissions and integrations) skips creating a new lead when a lead with the same primary-contact email or phone already exists in your workspace within the last hour. This stops a repeated form submission from generating duplicate leads.- The suppression window is one hour.
- The match is on primary-contact email or phone, scoped to your workspace, ignoring deleted leads.
- Phone is normalized to its international form before the check, so formatting doesn’t defeat the window.
Manually creating a lead in the app does not hit the one-hour suppression — that window applies only to automated intake. The manual create form instead surfaces a matching client (see below) while still letting you proceed.
The “Existing client found” warning
On the lead forms, Menaia proactively tells you when the phone or email you’re typing already belongs to a client, so you don’t unknowingly create a duplicate relationship.- On the lead detail page, a banner reads “Existing client found:” followed by the client’s name and the phone and/or email that matched.
- In the create-lead form, when you type a phone or email that matches a client, the form auto-fills that client’s contact details and shows “Existing client found, auto-filled details.”
- This warning checks both primary and secondary contacts of the client — broader than the find-or-create matcher, which checks the primary contact only.
- The warning appears only for users who can view clients, and only for clients in your own workspace. Without that access, no banner is shown.
- The form only looks for a match once your input looks complete — a full phone number, or an email containing both
@and a dot. Partial input does not trigger a match. - Known placeholder values left over from old data migrations are excluded from auto-matching, so they don’t falsely match many leads onto one client.
How to force a new record instead of reusing the match
There is no “create duplicate anyway” toggle. Because matching is driven by normalized phone/email (clients, contacts, leads) or exact address per client (properties), you force a new record by making the identifier not match:- New client or contact: use a different phone and a different email than the existing record’s primary contact. Matching succeeds if either the phone or the email matches, so changing only one still matches on the other.
- Clearing a value won’t help: at least one of email or phone is always required, so you can’t create an identifier-less client to dodge the match.
- New property at the “same” location: enter a different city, state, or ZIP — a same-street address with a different city, state, or ZIP becomes a separate property. Varying the street text works too, since the street match is exact.
- Lead intake duplicate skip: either wait out the one-hour window or submit with a different primary-contact email or phone.
- In the create-lead form: clear the auto-matched client to detach from the suggestion and start a fresh contact set.
Quick reference
- Clients / contacts: matched by normalized phone or email, primary contact only, your workspace only, deleted records excluded, phone preferred over email. On a match the record is reused and your details are merged.
- Properties: matched per client by exact street text plus a compatible city, state, and ZIP. A same-street address with a different city, state, or ZIP is a separate property. Blank or placeholder details are filled in; a real, different value is never overwritten.
- Projects: created once per lead and client; a repeat conversion returns the existing project.
- Leads (automated intake): suppressed for one hour on a matching primary-contact phone or email — a skip, not a merge.
- No “create duplicate” override — force a new record by giving it a non-matching identifier.