How Copper matches WhatsApp contacts and how to prevent duplicate People
See how TimelinesAI matches WhatsApp numbers to Copper People, when a new Person is created, and how to diagnose formatting and duplicate records.

The TimelinesAI Copper connector takes the phone number from a new 1:1 WhatsApp message, normalizes a valid number to E.164, and looks for a matching phone on a Copper Person. It reuses the match or creates a Person when none qualifies, then logs the message text as a Copper Activity.[1]
That rule is simple, but contact data rarely is. Missing country codes, stale numbers, existing duplicates, and a second contact-creation automation can split one customer across several People. This guide explains the matching decision and the cleanup work. For setup, use the Copper connection guide. For current product and plan details, use the Copper WhatsApp integration page.
How does Copper match a WhatsApp contact?
TimelinesAI matches a WhatsApp contact to a Copper Person by phone. The connector normalizes a valid source number to E.164 and compares it with phone values on Copper People. It does not choose a record because the name looks similar. A qualifying phone match is reused; otherwise, the connector creates a Person.[1]
The native flow is:
- Receive a new 1:1 WhatsApp message after the Copper connection is active.
- Read the contact phone and normalize a valid value to E.164.
- Search Copper People by phone and compare candidate phone values.
- Reuse the qualifying Person, or create a Person when no match is found.
- Log the message text as a user Activity on the resolved Person.
Group chats do not enter this flow because they have no single contact to map. A missing or invalid international number cannot be used for the Person match or create step.[1][2]
What is E.164, and how should the phone be stored?
For this connector, E.164 means one international phone value with a leading plus sign, country code, and subscriber number. Store the same customer number consistently on the Copper Person. The TimelinesAI help article says non-standard phone formatting can cause duplicate or mismatched contacts and recommends aligning the number on the existing record.[2]
Use the comparison below as an illustrative formatting check. The number is fictional.
- Before: Copper stores
(415) 555-2671, while the WhatsApp event arrives as+14155552671. - After: Copper stores
+14155552671in the Person's mobile phone field, matching the international value used by WhatsApp.
Do not guess the country code from a local number. Confirm it from a trusted customer record or an active WhatsApp conversation, then update the existing Person. Keep extensions in a separate field because an extension is not part of a WhatsApp destination number.
What happens when no Copper Person matches?
When the connector finds no qualifying phone match, it creates a Copper Person. It uses the WhatsApp profile name when available and stores the normalized number as a mobile phone. The new message text is then logged as an Activity on that Person. The connector does not automatically merge the new Person with a similar existing record.[1]
A new Person is correct when the number genuinely belongs to a new customer. It is a duplicate when the customer already exists under another format, another current number, or an incomplete record that the match could not resolve.
Before launch, test both outcomes:
- Send a 1:1 message from a number already stored on one Copper Person. Confirm the Activity lands on that Person.
- Send from a controlled number that is not in Copper. Confirm one new Person appears and receives the Activity.
- Send a second message from the new number. Confirm it reuses the Person created by the first test.
The current product page recommends testing a matched Person and an unknown number as part of connection verification.[1]
Why are duplicate Copper People created?
Duplicate People usually come from source-data ambiguity rather than a name-matching mistake. Common causes are a phone saved without a usable country code, the same customer using a second WhatsApp number, two People already sharing one phone, or another import or automation creating records alongside the native connector. The native connector itself matches by phone, not by name.[1][2]
Four cases need different decisions:
- Same number, different formatting: standardize the phone on the surviving Person before another test.
- Two legitimate numbers for one customer: keep both current numbers on the same Person when that matches your data policy. Confirm which one is the active WhatsApp number.
- One number on two People: stop production testing and resolve the duplicate. A phone cannot identify one clear Person while two records claim it.
- Native connector plus another create-contact workflow: assign one path to Person creation. If both paths create records, matching in one path cannot prevent duplication in the other.
Copper's general duplicate guidance says People are uniquely identified by email. The TimelinesAI connector uses phone for its WhatsApp Person decision. Those are separate rules, so a clean email alone does not prove the WhatsApp phone will match the intended Person.[1][3]

Which symptom points to which contact problem?
Start with the visible result, then check the smallest likely cause. Do not merge records merely because their names look alike. The safe first check is always the phone, the Person receiving the Activity, and any related Company or Opportunity you need to preserve.
- Symptom: a new Person appears after the first test. Likely cause: the existing phone is missing, stale, or saved in a non-standard format. First check: compare the WhatsApp international number with every phone on the intended Person. Safe action: correct the surviving record, retest, and inspect both People before merging.[2][3]
- Symptom: the Activity appears on the wrong Person. Likely cause: the same phone is attached to more than one Person or the number was reassigned. First check: search Copper for the full number and its final digits. Safe action: stop the test, remove the stale assignment, and retest one controlled message.
- Symptom: no Activity and no new Person appear. Likely cause: the phone is not a valid international number, the chat is a group, or the message predates the connection. First check: confirm a new 1:1 message and a valid international number. Safe action: correct the number or use a supported test chat.[2]
- Symptom: two records appear after an automation goes live. Likely cause: the native connector and another Zap or import both create contacts. First check: list every path allowed to create a Person or Lead. Safe action: give one path creation ownership and make the other update or stop.
- Symptom: old WhatsApp messages are absent after cleanup. Likely cause: the connector does not backfill messages from before connection. First check: compare the message time with the connection time. Safe action: treat older history as inbox context rather than a contact-matching failure.[2]
How do you clean up duplicate People safely?
Copper lets you merge duplicate People, but its help center warns that a merge is final and cannot be undone. Choose the surviving Person only after checking phone values, owner, Company, Opportunities, activity history, notes, and custom fields. Keep the record with the relationships your team still uses, then select the fields to retain.[3][4]
Use this cleanup sequence:
- Pause new contact-creation tests. Avoid producing another record while you inspect the current pair.
- Find every related Person. Search the full international number, useful final digits, customer name, and known email. Phone decides the connector match; the other fields help a person confirm identity.
- Choose the surviving Person. Review owner, Company, Opportunities, activity history, and custom fields. Do not choose solely by creation date.
- Normalize the current phone values. Keep each verified WhatsApp number in consistent international format. Remove stale numbers only after confirming they no longer belong to the customer.
- Merge in Copper. Follow Copper's merge flow and deliberately select which information survives. The action cannot be undone.[3]
- Retest one new 1:1 message. Confirm it logs on the surviving Person and does not create another record.
- Restart only one creation path. Document whether the native connector, an import, or a separate automation owns new records.
Take a source snapshot or export before a large cleanup. For one or two People, a written list of the fields and relationships you intend to retain is usually enough to catch a bad merge choice.
How do you prevent duplicates before connecting Copper?
Audit the phone field before the first production message. Normalize active WhatsApp numbers, remove the same phone from obsolete People, decide how to handle customers with several numbers, and name one system that owns Person creation. Then test a known match, an unknown number, and a repeated message from that new number.[1][2]
A practical prevention checklist:
- Export or review People with blank phone fields.
- Standardize active WhatsApp numbers in international format.
- Search for repeated phone values across Copper People.
- Decide whether personal and business numbers belong on one Person or separate People.
- Review any Zap, form, import, or API process that creates People or Leads.
- Give one path ownership of Person creation for WhatsApp contacts.
- Connect Copper and test one existing Person.
- Test one unknown number twice and confirm that only one Person remains.
- Sample recent Copper Activities during the first week.
This does not guarantee a duplicate-free CRM. It turns duplicate prevention into a repeatable data check instead of relying on names or manual memory.
Does the connector match by name or email?
No. The TimelinesAI Copper connector's WhatsApp path is phone-based. A matching name or email may help a person review records during cleanup, but it is not the contact decision described by the integration. Copper's own duplicate guidance uses email for a separate generic People rule, which should not be confused with WhatsApp phone matching.[1][3]
This distinction prevents a common mistake: renaming a duplicate Person does not repair the phone match. Fix the phone values and the competing creation path first.
Can the connector merge duplicate Copper People automatically?
No. The connector can reuse a qualifying phone match or create a Person when no match exists. It does not decide which existing duplicate should survive or combine their relationships. Copper provides a manual merge workflow, and Copper warns that the result cannot be undone. Review both records, merge deliberately, and then retest the phone match.[1][3]
Automatic merging would be risky when two people share a business number, a number was reassigned, or two records have different active Opportunities. Human review belongs in that decision.
What stays outside contact matching?
Phone matching resolves the Copper Person for a new 1:1 message. It does not import earlier chat history, map group chats, copy attachment files into Copper, or turn Copper into the shared WhatsApp inbox. The complete conversation, assignments, and internal notes remain in TimelinesAI; Copper receives the CRM Activity trail.[1][2]
Use the Copper WhatsApp shared inbox guide for conversation ownership and handoffs. Use the Copper WhatsApp automation guide when a Copper event should trigger an outbound message. Keep this guide's job narrow: one phone, one intended Person, one controlled Activity trail.
Frequently asked questions
How should a Copper phone number be formatted for WhatsApp matching?
Store the verified WhatsApp number in international format, including the leading plus sign and country code, such as the fictional +14155552671. Keep the same current value on the intended Copper Person. If the phone is saved in a non-standard format, align it on the existing record before retesting the integration.[2]
Will changing a Person's name fix a duplicate?
No. Name similarity is not the connector's WhatsApp match rule. Correct the phone on the intended Person, remove stale or competing phone values, and check whether another automation also creates records. Rename a Person only when the label itself is wrong; it does not replace phone cleanup.[1]
What if one customer uses two WhatsApp numbers?
Treat the numbers as two distinct contact routes. If both belong to the same customer and your Copper data policy allows it, keep both verified numbers on the intended Person. Test each number separately. If they belong to different people or business contexts, keep separate records and document the ownership rule.
Can two Copper People share one WhatsApp number?
Copper may already contain records that claim the same phone, but that leaves the connector without a clean business identity to rely on. Review whether the number is shared, stale, or reassigned. Resolve the competing values before testing, and do not merge solely because the phone or name appears similar.
Are old messages moved after People are merged?
Do not expect a merge to backfill WhatsApp history. TimelinesAI starts syncing new messages after the Copper connection, and earlier chat history is not imported.[2] A merge may consolidate Copper data according to the fields you retain, but it does not change the native connector's no-backfill boundary.
Make the phone rule boring
The reliable setup is not clever. Store the verified international number on the intended Copper Person, remove competing values, let one path create new People, and test the same number twice. If a duplicate already exists, inspect the relationships before merging because Copper cannot undo the result.[2][3]
Sources
[1] Copper WhatsApp Integration: Contact Activity Sync | TimelinesAI
[2] TimelinesAI WhatsApp Integration for Copper — setup & usage
[3] Managing duplicates | Copper Help Center
[4] Understand contact records in Copper | Copper Help Center