Is your enhancement request related to a problem? Please describe.
The official mobile app supports connecting to self-hosted Chatwoot installations, but an HTTPS conversation link on a self-hosted domain opens in the browser instead of the app.
Android App Links cannot solve this for the official app because every eligible HTTPS host must be declared statically in the installed APK. A server-side assetlinks.json file cannot add an arbitrary self-hosted domain to that manifest scope.
The app already registers the chatwootapp custom scheme at the native level. However, React Navigation currently accepts only the full chatwootapp://auth/saml callback as a prefix, so a conversation link such as chatwootapp://app/accounts/42/conversations/314 is ignored.
Describe the solution you would like
Register chatwootapp:// as a navigation prefix and reuse the existing conversation route configuration. This provides a domain-independent handoff that any self-hosted web instance can use for an explicit Open in app link.
The change should:
- preserve existing installation-URL web links;
- preserve the SAML callback;
- support conversation links in foreground, background, and cold-start states; and
- continue ignoring custom-scheme paths outside the configured conversation route.
A separate web-side follow-up can add the Open in app affordance. This proposal does not attempt to make arbitrary self-hosted HTTPS URLs verified App Links.
Describe alternatives you have considered
- Enumerating self-hosted domains in the official APK is not possible.
- Claiming all HTTPS hosts would be unsafe and cannot be verified meaningfully.
- A custom mobile build can declare one installation domain, but that does not help users of the official app.
- A web-only intent or custom-scheme link still needs the mobile navigation layer to accept the conversation route.
Additional context
The custom mobile app documentation already describes chatwootapp:// as being used for internal routing. PR #979 previously included a similar prefix among extensive unrelated fork changes and was closed unmerged. The proposed implementation is intentionally isolated to the linking prefix, existing route configuration, and focused regression tests.
Is your enhancement request related to a problem? Please describe.
The official mobile app supports connecting to self-hosted Chatwoot installations, but an HTTPS conversation link on a self-hosted domain opens in the browser instead of the app.
Android App Links cannot solve this for the official app because every eligible HTTPS host must be declared statically in the installed APK. A server-side assetlinks.json file cannot add an arbitrary self-hosted domain to that manifest scope.
The app already registers the chatwootapp custom scheme at the native level. However, React Navigation currently accepts only the full chatwootapp://auth/saml callback as a prefix, so a conversation link such as chatwootapp://app/accounts/42/conversations/314 is ignored.
Describe the solution you would like
Register chatwootapp:// as a navigation prefix and reuse the existing conversation route configuration. This provides a domain-independent handoff that any self-hosted web instance can use for an explicit Open in app link.
The change should:
A separate web-side follow-up can add the Open in app affordance. This proposal does not attempt to make arbitrary self-hosted HTTPS URLs verified App Links.
Describe alternatives you have considered
Additional context
The custom mobile app documentation already describes chatwootapp:// as being used for internal routing. PR #979 previously included a similar prefix among extensive unrelated fork changes and was closed unmerged. The proposed implementation is intentionally isolated to the linking prefix, existing route configuration, and focused regression tests.