How to connect WhatsApp to Copper CRM: direct app vs Zapier
Connect WhatsApp to Copper CRM with the direct TimelinesAI app or Zapier. Follow setup, testing, phone matching, and troubleshooting steps.

Written by the TimelinesAI team.
If you want every new 1:1 WhatsApp message recorded on the right Copper Person, use the direct TimelinesAI app. It logs new inbound and outbound text as Copper Activities, matches People by phone, and creates a Person when no match exists.[1]
Use Zapier when the job starts with a Copper event. For example, a new lead, a lead status change, or an opportunity stage change can trigger a selected WhatsApp message through TimelinesAI.[2]
Do not treat the two routes as interchangeable. The direct app keeps a consistent WhatsApp Activity trail in Copper. Zapier handles event-based automations that you design.
Direct app vs Zapier: decision table
- Log each new 1:1 inbound and outbound WhatsApp message on a Copper Person Direct app: Built in[1]. Zapier: Requires a custom Zap for each event and destination[2].
- Match an existing Person by phone or create one for a new number Direct app: Built in[1]. Zapier: You choose and map Copper search/create actions[2].
- Send after a Copper lead, status, or opportunity-stage event Direct app: No native Copper workflow action[1]. Zapier: Good fit; current Copper and TimelinesAI templates cover these triggers[2].
- Send one text message manually Direct app: From the Copper integration settings page[1][3]. Zapier: Possible through a TimelinesAI send action[2].
- Reply from a button on a Copper Person page Direct app: Not available[3]. Zapier: Zapier does not add a record-level button.
- Work from a shared team inbox Direct app: The inbox stays in TimelinesAI[1]. Zapier: Zapier connects events; it does not create an inbox in Copper.
- Import old chat history or group chats Direct app: Not supported by the direct app[3]. Zapier: Not an automatic backfill; behavior depends on the trigger you build.
If your first requirement is "keep Copper updated with new WhatsApp conversations," start with the direct app.[1] Add Zapier only for the specific CRM events that should send a message or create another record.[2]
What the direct Copper app syncs

The direct app does five things:
- It handles new 1:1 WhatsApp messages after the connection is active.[1][3]
- It writes inbound and outbound text to the matched Copper Person as a user Activity.[1]
- It normalizes the WhatsApp phone number, checks for a matching Copper Person, and creates a Person when no match exists.[1]
- It puts a placeholder in the Activity for a media-only event. The attachment file itself is not copied into Copper.[1]
- It keeps the complete conversation, assignments, internal notes, and multi-agent inbox in TimelinesAI.[1]
Two limits matter during planning. Earlier chat history is not imported, and group chats are not synced.[3]
There is also no built-in third-party send button on a Copper Person page. One-off sending happens on the integration settings page, not inside the Person record.[3]
Before you connect Copper and WhatsApp
You need:
- a TimelinesAI workspace with at least one connected WhatsApp number;[3]
- a Copper account that can add People and log Activities; and[3]
- one existing Copper Person with a correctly saved international phone number for your first match test.[3]
Use international format for test numbers, including the country code.[3] Saving the same number in different local formats can cause the integration to miss the intended Person and create a new record.[1][3]
Decide which route you are setting up before you start. Use the direct app for automatic message logging. Use Zapier for a selected Copper trigger followed by a TimelinesAI action.
Install and connect the direct TimelinesAI app
- Open the Copper WhatsApp integration page and choose the option to connect Copper.[1]
- In the integration settings, select Connect Copper.[3]
- Approve access for the intended Copper company. The app needs to create People and log Activities.[3]
- Sign in to the correct TimelinesAI workspace and approve the connection.[3]
- Return to the settings page and confirm that it shows Connected to Copper. You should also see your connected WhatsApp numbers and the one-off send form.[3]
New messages start syncing after this point. Connecting the app does not import earlier chat history.[3]
If you manage more than one Copper company or TimelinesAI workspace, write down the pair you connected. A successful authorization against the wrong company looks like a sync failure when you inspect the intended Copper account.
Verify the direct app before a full rollout

Run these checks with test contacts before you connect the rest of the team.
1. Test a matched Person
Create or update a Copper Person with the test phone in international format. Send a new 1:1 WhatsApp message to that number, then reply from the connected WhatsApp account.
Pass condition: both new messages appear as Activities on the same Copper Person. The Activity time should match the message time.[1][3]
2. Test an unknown number
Use a second 1:1 chat whose phone number is not on any Copper Person.
Pass condition: Copper gets one new Person with the WhatsApp phone number, and the message appears as an Activity on that Person. If a WhatsApp profile name is available, the integration uses it; otherwise the phone identifies the new record.[1]
3. Test a media-only message
Send an image or another media item without accompanying text.
Pass condition: Copper shows a media or system-message placeholder. The file remains outside Copper. This is expected behavior, not a failed upload.[1]
4. Check the product boundary
Open the conversation in TimelinesAI.
Pass condition: the full thread and team controls are in TimelinesAI, while Copper contains the CRM Activity trail. Do not expect assignments, internal notes, or a multi-agent WhatsApp inbox inside Copper.[1]
5. Confirm excluded content
Check one conversation from before the connection and one WhatsApp group.
Pass condition: neither appears through the direct Copper sync. The app starts with new messages and skips groups.[3]
Send a one-off WhatsApp message

Open the same integration settings page used to connect Copper. Under Send a WhatsApp message:
- choose the connected WhatsApp number to send from;
- enter the recipient in international format;
- type the text; and
- select Send.[3]
The page confirms when the message is sent. This form is useful for an occasional manual send, but it is not a Copper Person-page action.[3]
For day-to-day replies, use the TimelinesAI inbox. It holds the complete thread and the collaboration tools that do not live in Copper.[1]
Connect Copper and TimelinesAI through Zapier
Zapier is the better route when a Copper event should start a specific action. Its current Copper and TimelinesAI page includes templates for:
- sending through TimelinesAI when Copper creates a lead;
- sending when a Copper lead status changes;
- sending when an opportunity stage changes; and
- creating a Copper lead from a new incoming TimelinesAI chat.[2]
To build the Zap:
- Open the Copper and TimelinesAI integration on Zapier.[2]
- Choose the trigger app and event. Start with one business event, such as New Lead or Updated Opportunity Stage.[2]
- Connect the Copper account and test the trigger with a record that contains a usable phone number.
- Add the TimelinesAI action. For a new conversation, choose the action that sends a message to a new chat. For an existing conversation, use the existing-chat action and map the chat identifier returned by an earlier step.[2]
- Map the sender, recipient phone, and message text. Keep the recipient in international format.
- Run a controlled test. Confirm the Zap run succeeded, the WhatsApp message reached the intended test number, and the expected Copper record was updated if the Zap includes a Copper action.
- Publish the Zap, then review its run history after the first live event.
Zapier describes the model as one trigger followed by an action. It does not turn on the direct app's full Activity sync automatically.[2]
Keep each Zap narrow. A workflow for a new lead and a workflow for an opportunity-stage change should be separate unless they genuinely use the same recipient rules and message copy.
Troubleshooting
New messages do not appear in Copper
Check these items in order:
- The settings page still says Connected to Copper.[3]
- The message is new and was sent after the connection.[3]
- The conversation is 1:1, not a group.[3]
- The contact has a valid international phone number.[3]
- The connected Copper account can create People and log Activities.[3]
If Copper access was revoked, disconnect and reconnect from the integration settings.[3]
A duplicate or wrong Person was used
Compare the WhatsApp number with every phone field on the intended Copper Person. Save it with the country code and remove ambiguous local formatting. The integration matches by normalized phone; when it cannot find a valid match, it creates a new Person.[1][3]
A media message shows text instead of a file
That placeholder is intentional. The direct app records that a media-only event happened but does not copy the attachment file into Copper.[1]
There is no WhatsApp button on the Copper Person
That is the current product boundary. Copper does not provide a built-in Person-page button for this app. Use the integration settings for an occasional one-off text, or use the TimelinesAI inbox for normal replies.[3]
The Zap runs but no message arrives
Open the Zap run and check the actual mapped values. Confirm that the trigger supplied a phone number, the TimelinesAI sender is the intended connected WhatsApp account, and the action uses the right new-chat or existing-chat mode. Test with a fixed internal number before turning dynamic fields back on.
The Zap creates the wrong Copper record
Inspect the Copper action rather than the trigger. Zapier exposes separate create, update, search, and search-or-create actions. Choose the action deliberately and map a stable match field instead of relying on a display name.[2]
Choose the right setup
Choose the direct TimelinesAI app when the requirement is simple: log each new 1:1 inbound and outbound WhatsApp message on the correct Copper Person.[1]
Choose Zapier when a specific Copper event should trigger a selected WhatsApp action or when a TimelinesAI event should create or update another Copper record.[2]
Using both keeps the Activity trail consistent while a small number of Zaps handles selected lead or opportunity changes.[1][2] Keep the inbox in TimelinesAI, and treat Copper as the CRM record of the conversation rather than the place where the full chat UI lives.[1]
For product details, see the Copper WhatsApp integration. For related automations, use the TimelinesAI Zapier integration guide and these Copper examples: