π±Open External App
Launch other installed apps directly from your app using URL schemes.
What is Open External App?
Open External App lets your app launch other installed applications on the user's device using URL schemes. This is useful for directing users to specific content in another app - opening a location in Google Maps, starting a WhatsApp chat, triggering the phone dialer with a pre-filled number, or any other app that supports deep linking via a URL scheme.
If the target app is not installed on the user's device, the command will be silently ignored by the OS - nothing will happen.
Prerequisites
This feature requires any paid plan. See all plans
Common App Schemes
A URL scheme is a string that identifies an app on the device - similar to how https:// identifies a web URL.
The table below lists URL schemes for popular apps, along with the correct value to enter in your Natively Dashboard and the scheme to use when calling openExternalApp.
App schemes can change between app versions, and Natively does not guarantee their accuracy. If a scheme stops working, check the app's official documentation. For a comprehensive list beyond the table below, refer to community-maintained references such as github.com/bhagyas/app-urls.
On Android, you can open any app using its Bundle ID followed by :// - for example com.whatsapp:// - even if you don't know the app's custom URL scheme.
This does not work on iOS, which requires the app's registered custom URL scheme.
Replace any value in [brackets] with your actual data - remove the brackets themselves. For example, tel:[PHONE_NUMBER] becomes tel:+1234567890.
Phone Dialer
tel
tel:[PHONE_NUMBER]
mailto
mailto:[EMAIL_ADDRESS]
whatsapp
whatsapp://send?phone=[PHONE_NUMBER]
Telegram
tg
tg://
tg://msg?text=[MESSAGE]
tg://resolve?domain=[TELEGRAM_USERNAME]
fb
fb://
fb://profile?id=[FACEBOOK_ID]
fb://page?id=[PAGE_ID]
Twitter / X
twitter
twitter://user?screen_name=[USERNAME]
twitter://post?message=[MESSAGE]
Waze
waze
waze://
waze://?q=[LOCATION]
App Store (iOS only)
itms-apps
itms-apps://itunes.apple.com/app/id[APP_STORE_APP_ID]
Play Store (Android only)
market
market://details?id=[PLAY_STORE_APP_BUNDLE_ID]
Natively Dashboard Setup
Before using openExternalApp, you must whitelist the URL scheme of the target app in your Natively Dashboard.
Open your Natively app dashboard and navigate to Settings > External App Schemes.
Enter the URL scheme of the app you want to open.
Click Add.
Repeat for each app you want to support.
Click Save.
Rebuild your app(s).
You must rebuild your app for these changes to take effect. A new rebuild is required each time you add or modify External App Schemes.
Implementation
Choose your integration method below: Bubble.io Plugin (No-Code), JavaScript SDK (Code), or AI Agents (for AI-powered editors like Lovable, Base44, and Replit).
Initialization
Check Plugin
Before starting, verify if the Natively plugin is already installed in your Bubble project.
Open your Bubble editor and navigate to the Plugins tab in the left sidebar.
Check Installed Plugins: Look through your list of installed plugins for "Natively iOS & Android app builder".
If it IS installed: Check the version number. If an update is available (e.g., you see a button saying "Update"), click it to ensure you have the latest features and bug fixes.

If it is NOT installed: Click the + Add plugins button, search for "Natively", and click Install.

Check SDK
Before writing any logic, ensure the Natively SDK is correctly installed and up-to-date in your codebase.
Open your project's main HTML file (or header settings) and look for the Natively script tag inside the
<head>section.Install/Update: If missing or outdated, add the following code. You can specify the SDK version in the URL (e.g.,
@2.26.0).
To ensure you are using the most up-to-date version, check the Natively GitHub releases page for the latest version number.
Initialize the SDK
AI-powered editors like Lovable, Base44, and Replit use the JavaScript SDK to implement Natively features. Before implementing any feature, the Natively SDK must be initialized in your project.
Copy the line below and paste it into your AI agent to check and set up the Natively SDK in your project.
Setup Logic
AI-powered editors like Lovable, Base44, and Replit use the JavaScript SDK to implement Natively features.
Copy the line below and paste it into your AI agent.
Replace the placeholder at the beginning with a description of what you want to build - for example: "Open WhatsApp with a pre-filled message when the user taps the contact support button".
Replace the placeholder URL schemes to use with those configured in your Natively Dashboard and the required path within the scheme.
How to use
Open a specific chat or contact
The most common use case - opening WhatsApp, Telegram, or Facebook with a pre-filled phone number or username so the user can start a conversation in one tap, without having to find the contact themselves.
Open the phone dialer
Use tel:[PHONE_NUMBER] to pre-fill the dialer with a support number or contact. The user still has to tap call button - nothing is dialed automatically.
Handle the app not being installed
If the target app is not installed, nothing happens - the OS silently ignores the call. Consider showing a message to the user first, or falling back to a web URL using Open External URL.
Troubleshooting
Nothing happens when calling openExternalApp
Make sure the URL scheme is added to Settings > External App Schemes in your Natively Dashboard and that you've rebuilt your app after adding it. Without both steps, openExternalApp will not work.
The wrong app opens
Multiple apps can register the same URL scheme. If an unexpected app opens, the device has a different app set as the default handler for that scheme. This is an OS-level behavior and cannot be controlled from Natively.
Last updated
