Connect WhatsApp to Activepieces on a Coexistence number
Activepieces has a WhatsApp Business piece that connects with an access token and a WhatsApp Business Account id, both of which a Coexistence number exposes. Its New Incoming Message trigger answers Meta's verification itself, so its URL can be the number's webhook destination. Leave the piece's optional app secret empty, and the flow runs on every message while the team keeps the phone.
Actions in Activepieces' WhatsApp Business piece, including text, media, template and interactive messages, with 4 triggers.
The piece's triggers detect this query parameter and return its value as plain text, completing Meta's verification.
The piece's app secret field; when set, deliveries without a matching X-Hub-Signature-256 are ignored.
How do you connect a Coexistence number to Activepieces?
Create the WhatsApp Business connection in Activepieces with two values: the access token and the WhatsApp Business Account id. The EasyCoexistence dashboard shows both for the connection, and get_api_credentials returns them to an assistant. The piece's instructions talk about creating a Meta app and a system user, because they assume you have neither. Here the number is already connected, so skip straight to pasting the values.
Then build a flow that starts with the New Incoming Message trigger, set a verify token of your choice on it, and publish the flow. Copy the trigger's webhook URL into the number's webhook destination in EasyCoexistence with the same verify token. Meta sends its verification request, the trigger answers it, and every message to the number starts a run.
Why must the app secret stay empty?
Because the secret that signs these deliveries is not yours to paste. Meta signs every webhook with the app secret of the app that owns the subscription, and on a number connected through EasyCoexistence that is the EasyCoexistence app, whose secret is never shared.
The piece treats the field as optional. Left empty, its triggers accept deliveries as they come. Filled in with any other app's secret, every delivery fails the X-Hub-Signature-256 check and is silently ignored, which looks exactly like messages never arriving.
The verify token is what keeps strangers out of the handshake. Choose a long random value, and keep the trigger URL private, since it is the address that starts your flow.
What can a flow do once a message arrives?
The trigger hands the flow a flattened message: sender, profile name, message id, type, text, any media id, button and list replies, and the receiving phone number id. From there it is an ordinary Activepieces flow across its other pieces, such as a CRM, a sheet or an AI step.
Replies use the same piece. Send Message sends free text, and it only delivers within 24 hours of the customer's last message. Send Template Message sends an approved template, which is the only thing that delivers after that window. Interactive buttons, lists, media, location and reactions are actions of their own.
Activepieces' own instructions note that Meta takes one callback URL per app. With per-number destinations the limit is one URL per number, so a flow that must handle several event types should branch inside one flow.
Do replies typed on the phone reach the flow?
They reach the webhook, but not this trigger. On a Coexistence number Meta sends an echo of each reply typed in the WhatsApp Business app to the same destination, under the smb_message_echoes field. The piece's New Incoming Message trigger reads only the messages field and drops everything else.
If you need the phone's replies in the flow, start it with Activepieces' generic Webhook piece instead, which accepts any HTTP method, and answer the verification GET with a Return Response step on its synchronous URL. You then parse the raw payload yourself, both fields included.
For most flows the piece's trigger is the simpler choice: it reacts to customers, and the team's replies stay visible in the app on the phone.
Common mistakes
- Pasting an app secret into the WhatsApp connection. Deliveries are signed with the EasyCoexistence app's secret, so every one is ignored.
- Setting the destination before publishing the flow. Meta verifies at once and an unpublished flow cannot answer.
- Expecting the New Incoming Message trigger to see replies typed on the phone. It reads the messages field only, not smb_message_echoes.
Connect the number at easycoexistence.com, paste its token and WABA id into Activepieces, and set the webhook destination to the trigger URL. From US$ 9 per number per month, falling to US$ 1 as you add numbers, with the first 3 days free.
Frequently asked questions
Does this work on self-hosted Activepieces?
Yes. The piece is open source and runs on Activepieces' cloud or self-hosted, as long as the instance is reachable over HTTPS from the internet.
Which phone number does a flow send from?
The one you pick in the action's phone number field, which lists the numbers on the WhatsApp Business Account the connection points at.
Can I still use n8n or Make on the same number?
Not at the same time. Meta routes a number's webhooks to one destination, so pick one tool to receive, or forward from it to the other.
Does EasyCoexistence store the messages?
No. Meta delivers each webhook straight to the Activepieces trigger, and EasyCoexistence never stores conversation content.
Keep reading
Ready to get started?
Set up WhatsApp Coexistence in minutes, not months. The app keeps working on the phone.
Start Free TrialVerified on