Cosend vs Dualhook, honestly.
Both do WhatsApp coexistence. The difference is what happens after the webhook arrives. Three claims below, each one you can check in a minute — and the places where they are equal to us or better.
Every figure about Dualhook on this page is from their own published pricing and documentation, checked in August 2026.
At a glance
Six rows, not twenty. A comparison table long enough to need scrolling is a table nobody checked.
| Capability | Cosend | Dualhook |
|---|---|---|
| Coexistence onboarding + webhook routing | Free for one number | $12–$99 / month |
| Shared inbox | Included | — |
| Automations, AI, MCP server, n8n node | Included | — |
| Graph-compatible API | Yes — byte-compatible, so switching is one hostname | Yes |
| No message markup | Yes | Yes |
| EU hosting, DPA, sub-processor list | Yes | Yes |
Three claims, and where to check them
A comparison page is worth nothing if you have to trust it. Each of these names the source, and none of them needs us to be honest for you to find out.
They charge for the thing we give away.
Dualhook prices on connection count: $12 a month for one, $25 for five, $45 for ten, $99 for twenty-five, then $3.50 for each connection after that. Every plan includes a 14-day trial and unlimited webhook deliveries. Cosend does not price on connections at all — one connection is free, with the Runtime API, the webhook routing and override, the 180-day history import and a one-seat inbox, capped at 1,000 routed messages a month.
Check it against: Their pricing page, and ours.
They never receive your message content. That is a real privacy position, and it is also why there is no inbox.
Their product configures Meta’s webhook override so that Meta delivers message payloads straight to your own server. They store configuration metadata and do not persist message bodies. Everything an inbox, an AI reply or a message-based automation needs is content they deliberately never see — so this is not a roadmap gap for them, it is the architecture working as designed.
Check it against: Their own documentation on webhook override, and their privacy pages.
They ask you to press a button to prove your phone is alive. We watch the wire.
A coexistence link ends if the WhatsApp Business app stops being opened — Meta reports it as PRIMARY_INACTIVITY. Dualhook productises this as a heartbeat you confirm. Their own documentation states that Dualhook cannot infer mobile app usage from message traffic. Because Cosend receives inbound messages and the echoes of messages sent from the phone, we infer liveness from traffic and only ask when a number has genuinely gone quiet.
Check it against: Their heartbeat documentation — the sentence is theirs.
Where they are equal to us, or better
The part most comparison pages leave out, which is exactly why most comparison pages do not work on developers.
- Cost and spend reporting
- An earlier draft of our own competitive analysis claimed Dualhook structurally could not show you what Meta is charging you, because they hold no message content. That was wrong, and we corrected it rather than deleting it. Meta’s pricing analytics is an account-level endpoint that needs no message content at all, and their usage view uses it. We match them here. We do not beat them.
- Data minimisation
- Not storing message bodies is a genuine position and it is theirs first. Ours is a setting: switch a connection to direct delivery and Meta’s raw payloads go straight to your endpoint while Cosend keeps metadata only — no bodies, at any point. It is free on every plan. But their default is that posture, and ours is not.
- Documentation, and standing with Meta
- They are an official Meta Tech Partner and their documentation is genuinely good — coexistence, webhook override, error codes and integration guides for Chatwoot, n8n, Make, Zapier, Node.js, Laravel and Shopify. If you are reading their docs to understand coexistence, they are not a bad place to start.
If all you need is coexistence configuration and a webhook, Dualhook does that well. We do it free, and we also give you the inbox.
The same number of connections, priced both ways
Dualhook prices on connection count. We price on automation runs, AI conversations and seats — the things that grow when a customer succeeds — which is why the left-hand column is the wrong axis to compare on and we are showing it anyway.
| Connections | Dualhook | Cosend | And Cosend includes |
|---|---|---|---|
| 1 | $12 | $0 | Inbox, 100 automation runs, 25 AI conversations for the lifetime of the account |
| 5 | $25 | $19 | Inbox, 2,000 runs, 100 AI conversations a month, MCP server |
| 10 | $45 | $19 | As above |
| 25 | $99 | $59 | 20,000 runs, 500 AI conversations a month |
| 50 or more | $99 + $3.50 each | $149 | 100,000 runs, 2,000 AI conversations a month |
Their list also includes a 14-day trial and unlimited webhook deliveries on every plan. Ours has no trial clock on the free tier because there is nothing to expire.
Switching takes an afternoon
Three steps, and the middle one is the only one with a deadline on it.
Disconnect the current partner on the phone
WhatsApp Business app → Settings → Account → Business Platform. This is Meta’s own screen, and the app keeps working throughout — the number is not ported, resold or re-registered at any point.
Reconnect through Cosend
Meta’s Embedded Signup, for a number that already has a WhatsApp Business app account — so the registration step is skipped entirely. Confirm history in the app and up to 180 days of chats import. That import runs once per onboarding and has to finish within 24 hours of it, so do this when you have a few minutes rather than at the end of a day.
Repoint two lines
The hostname and the bearer token. Our Runtime API serves an allowlisted set of Graph paths byte-compatibly and forwards the version segment you sent, so a client pinned to an older version keeps working unchanged.