Skip to content

Support self-hosted conversation links through the custom URL scheme #1165

Description

@gobeyondpty

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions