ManyChat
Put a Zippy link inside your ManyChat comment-to-DM flow so the tap opens the real app instead of dying in Instagram's in-app browser — paste one link, or generate links per-subscriber with one External Request block.
ManyChat + Zippy
ManyChat gets the DM opened. That's the hard part, and it's genuinely good at it.
Then the link in that DM opens in Instagram's in-app browser — a webview where nobody is logged in, Apple Pay doesn't exist, and your pixel is blind. Your checkout, your shop, your track: all opened in the worst possible browser.
ManyChat can't fix that, because ManyChat isn't a link tool. A Zippy link in the same message detects the webview and springs the real app.
Why do my ManyChat links open in the wrong browser?
Because Instagram never hands the tap to your phone's browser in the first place. It opens the URL in its own webview, inside the Instagram app — and that decision belongs to Instagram, not to ManyChat. ManyChat's job ends when the message is delivered.
That webview is a browser where your visitor is logged into nothing, Apple Pay doesn't exist, and cookies are sandboxed away from the pixel you're paying for. Same tap, worse browser, and it's costing you checkouts you already earned. The Deep Link Debugger shows you exactly what your link does in there, side by side with a real browser.
How do I stop my ManyChat DM links from opening in the in-app browser?
Swap the raw URL in your flow for a Zippy link. There is no app to install and no ManyChat plan requirement — a Zippy link is just a URL.
- Paste your destination at app.zipthe.link and copy the short link you get back.
- In ManyChat, open your comment-to-DM flow and find the message or button holding your link.
- Replace the URL with the Zippy one. Publish.
That's the whole integration. When the tap comes from inside Instagram, Zippy escapes the webview into the native app. Wrong platform, desktop, or an app that isn't installed? It degrades to a normal redirect — see the rich fallback page. A link never stops working.
Use one link per flow
Give each ManyChat flow its own Zippy link rather than reusing one everywhere. The stats
below are per-link, so a dedicated link is what makes "did my DM traffic open the app?" a
question with an answer. Tags and folders keep them sorted —
tag them manychat and you can pull the set later.
How do I generate a different Zippy link for each subscriber or campaign?
Use ManyChat's External Request action against the Zippy API. This is a Legend feature — see the API docs for keys and limits.
In your flow, add an External Request step:
| Field | Value |
|---|---|
| Method | POST |
| URL | https://api.zipthe.link/v1/links |
| Header | Authorization: Bearer zip_… |
| Header | Content-Type: application/json |
| Body | {"url": "https://your-destination.com", "tags": ["manychat"]} |
Then map the response into a ManyChat custom field:
| Response field | Maps to |
|---|---|
$.shortUrl | a text custom field, e.g. zippy_link |
Use {{zippy_link}} in the next message of the flow.
shortUrl is the complete, ready-to-paste URL. ManyChat binds one JSONPath per custom
field and can't join strings, so bind that field — not slug and hostname separately.
You can interpolate ManyChat fields into the body to make the link campaign-specific:
The UTM builder covers what those parameters do downstream.
Don't create a link on every message
An External Request runs each time the flow hits that step, so a link per subscriber means a link per subscriber against your plan's cap and the API's rate limit (120 calls/minute per key). If everyone in a campaign gets the same destination, create one link and paste it — only branch to per-subscriber links when the destination genuinely differs.
How do I tell whether my DM links actually opened the app?
This is the number a click counter can't give you, and it's already in your dashboard — nothing extra to set up.
Open the link's stats in Zippy (or GET /v1/links/:id/stats) and read appOpenRate
alongside the outcome split:
- opened — the tap reached the real native app. This is the one that matters.
- browser — it opened a browser instead. Usually the in-app webview winning.
- broken — the tap went nowhere useful.
A healthy comment-to-DM flow shows a high opened share on mobile. If browser is climbing, the destination platform is the thing to look at — check it in the Deep Link Debugger, which shows exactly what a link does from inside Instagram's webview versus a real browser.
App-open rates are a sampled estimate, and Zippy shows them as such. A brand-new link with no measured taps reports no rate at all rather than a misleading 0%.
To watch the outcomes live instead of checking the dashboard, point
webhooks at your automation — app.opened and app.broken fire per tap,
so ManyChat's own External Request isn't the only direction data can flow.
Notes
- Any ManyChat plan works for pasting a link — it's a URL in a message. Only the External Request recipe needs ManyChat Pro (their side) and Zippy Legend (ours).
- Zippy doesn't read your ManyChat account. There's no OAuth connection and no permissions to grant; the integration is the link itself, plus an optional outbound HTTP call that you configure.
- Links outlive subscriptions. If you downgrade, your links keep redirecting — they go read-only, never dead. A DM you sent last year still works.
Related
- The Zippy API — keys, rate limits, and every endpoint the External Request block can reach.
- Deep Link Debugger — see what your link does inside an in-app browser before you paste it into a flow.
- Webhooks — get pinged the moment a DM tap opens the app.
- n8n — when the flow needs more than one step: the same API and the same app-open events, on an automation canvas.
- MCP server — mint a flow's link by asking your AI assistant.
- Instagram DM automations — the same comment-to-DM job, native to Zippy, with the link attached structurally so it can't be sent unmeasured. Built and switched off until Meta approves us — the honest status. This page is the version that works today.
- A/B split testing — race two destinations behind one DM link and compare them on app opens, not clicks.
- Tags and folders and the UTM builder — keep per-campaign links straight.
- Blog: ManyChat links dying in the in-app browser?
- Changelog: ManyChat recipe