FlutterFlow Dynamic Links
FlutterFlow Dynamic Links are short web links, such as https://your-project-id.fflink.app/Ab3dE7x, that open a specific page in your app. When someone opens a link on a device that doesn't have your app, the link sends them to the App Store, Google Play, or your web app instead. FlutterFlow Dynamic Links replace Firebase Dynamic Links, which shut down in August 2025.
With FlutterFlow Dynamic Links, you can do the following:
- Create links in FlutterFlow to share in emails, ads, or social posts.
- Let your app create links, so that users can share the page they're on.
- Set the title, description, and image that chat and social apps show for a shared link.
- Track clicks, app opens, and campaigns for each link.
Deep links that use your app's URL scheme, such as myapp://myapp.com/profile, keep working when you turn on FlutterFlow Dynamic Links. For more information about deep links, see Deep & Dynamic Linking.
Before you begin
Make sure that your project meets the following requirements:
- In Settings and Integrations > General > App Details, Use Firebase Dynamic Links is off. A project can't use Firebase Dynamic Links and FlutterFlow Dynamic Links at the same time.
- Deep linking is on. It's on by default, so most projects don't show a switch for it. If App Details shows an Enable Deep Linking switch, turn it on.
- The pages that you want links to open have a route. To set a page's route, select the page, and then open Route Settings in the properties panel.
- Your project has a Dynamic Links add-on unit. For more information, see Add the Dynamic Links add-on.
You also need the following information for each platform that you enable:
- Android: the SHA-256 fingerprint of the key that signs your app. For an app on Google Play, use the app signing key from Play Console > Test and release > App integrity, not your local upload key.
- iOS and macOS: your 10-character Apple Team ID, from the Membership section of the Apple Developer portal. If your app is on the App Store, also have its App Store ID, a 9- or 10-digit number.
- Web: the URL of your web app, if you host it somewhere other than your FlutterFlow web publishing address.
Add the Dynamic Links add-on
FlutterFlow Dynamic Links is a paid add-on. Each project that uses it needs one Dynamic Links unit, which costs $10 per month or $96 per year. The team plan pays for units used by team projects, and the project owner's plan pays for units used by personal projects.
Only a team owner or the owner of a personal project can buy a unit. If you collaborate on someone else's project, ask its owner to turn on FlutterFlow Dynamic Links.
To buy a unit, do the following:
- Go to Settings and Integrations > Dynamic Links > Setup.
- Click Add-on, and then follow the prompts.
FlutterFlow assigns a unit to your project when you register your app, not when you buy the unit. When you turn off FlutterFlow Dynamic Links in a project, the project releases its unit, and you can use the unit in another project.
If your plan no longer has a unit for a project, the links that you already created keep working, and your app still builds. You can't create new links, either in FlutterFlow or from your app.
Set up FlutterFlow Dynamic Links
To set up FlutterFlow Dynamic Links, do the following:
-
Go to Settings and Integrations > Dynamic Links > Setup.
You can also click Set up Dynamic Links in the Routing & Deep Linking section of Settings and Integrations > General > App Details.
-
Turn on Enable FlutterFlow Dynamic Links.
-
Under Platforms, enable each platform where you want links to open your app, and then complete its fields. A link opens in a browser on any platform that you leave off.
- Android: under SHA-256 fingerprints, click Add fingerprint, and then enter the fingerprint of the key that signs your app. To let more than one build open your links, such as a test build signed with a different key, add a fingerprint for each key.
- iOS: in Apple Team ID, enter your Team ID. If your app is on the App Store, enter its ID in App Store ID (optional). Without an App Store ID, people who open a link on iOS without your app see a preview page or your web app instead of the App Store.
- macOS: turn this on to let your Mac app open links. It uses the same Apple Team ID as iOS. This option appears only if your project builds for macOS.
- Web: in Web app URL, check the address of your web app. FlutterFlow fills it in from your published web address. Links open here on Windows, Linux, and other devices that can't open your app.
The Package name and Bundle ID come from App Details. To change them, edit them there.
-
Click Register app.
FlutterFlow assigns your project's link domain and shows it in Link domain. Each project gets its own domain, based on its project ID, such as your-project-id.fflink.app. You can't change the domain or use a custom domain.
FlutterFlow adds the settings that Android, iOS, and macOS need to open your links in your app, so you don't need to edit any native files. Wait a few minutes before you test your links. On iOS and macOS, reinstall your app first, because the app checks which links it can open only when it's installed.
After you change anything on the Setup tab, click Update to save the change. Register your app before you build it, because builds need the link domain.
If Android opens your links in the browser instead of your app, check the SHA-256 fingerprint first. A fingerprint from the upload key instead of the Play App Signing key is the most common cause.
Open the right page in your app
When someone opens a link and your app is installed, the app opens on the page that the link points to, with the link's page parameters. This works whether the app is already running or starts because of the link. If the linked page requires authentication, users must sign in before viewing it.
To run more actions after the page opens, such as logging which campaign brought the user in, select an Action Block in When a link opens the app on the Setup tab. The Action Block can take any of the following parameters. FlutterFlow matches them by name.
| Parameter | Type | Value |
|---|---|---|
routePath | String | The route of the page that the link opened. |
routeParameters | JSON | The page parameters that the link carried. |
campaignSource | String | The link's campaign source. |
campaignMedium | String | The link's campaign medium. |
campaignName | String | The link's campaign name. |
campaignTerm | String | The link's campaign term. |
campaignContent | String | The link's campaign content. |
An Action Block parameter with any other name causes a build error. The Action Block doesn't run in web apps. On the web, a link opens its page in your web app directly.
Create links
You can create links in FlutterFlow or let your app create them while it runs. Register your app on the Setup tab before you create links.
Create a link in FlutterFlow
Create a link in FlutterFlow when you want to share the same link with many people, such as in a newsletter or an ad.
- Go to Settings and Integrations > Dynamic Links > Links.
- Click Create a link.
- In Name, enter a name that helps you find the link later. People who open the link don't see the name.
- In Destination, choose the page that the link opens. Only pages with a route appear.
- Under Parameters, set the values of the page's parameters.
- Optional: under Preview when shared, enter the title and description that chat and social apps show for the link.
- Optional: under Campaign tracking (optional), enter Source, Medium, Campaign, Term, and Content values to identify traffic from this link in the Analytics tab.
- Click Create link.
To copy a link, click the Copy link icon next to it in the list.
Create links from your app
To let users share links, add the Generate Current Page Link action to your app.
What happens when someone opens a link
| Where the link opens | With your app installed | Without your app |
|---|---|---|
| iOS | Your app opens on the link's page. | A Get the app page that leads to the App Store. With Skip Preview Page on, the link goes straight to the App Store. Without an App Store ID, the link opens your web app, or a preview page if you don't have one. |
| Android | Your app opens on the link's page. | An Open the app page that leads to Google Play. |
| macOS | Your Mac app opens on the link's page, if you turned on macOS. | Your web app opens on the link's page. |
| Windows, Linux, and other devices | Not applicable. | Your web app opens on the link's page, with the link's campaign values as utm_ parameters. Without a web app URL, a preview page appears. |
When someone shares a link in a chat or social app, that app shows the link's preview title, description, and image.
Manage links
On the Links tab, each link shows its destination and how many times people clicked it and opened your app from it. For each link, you can do the following:
- To change a link's name, destination, preview, or campaign, click the Edit link icon.
- To copy a link, click the Copy link icon.
- To stop a link from working, click the Deactivate icon.
You can't reactivate a link. After you deactivate a link, anyone who opens it sees a Link not found page.
View analytics
The Settings and Integrations > Dynamic Links > Analytics tab shows the following for your project's links:
- Clicks: how many times people opened your links in the last 30 days.
- Opens: how many times your app reported opening from a link.
- Fallbacks and Fallback rate: the number and percentage of visitors who went to an app store page or a preview page because your app didn't open.
- A daily chart for the last 30 days, in UTC, and breakdowns by platform and by link.
Previews that chat and social apps load when someone shares a link don't count as clicks.
If fallbacks rise on one platform, links on that platform have probably stopped opening your app. Check that platform's settings on the Setup tab, such as the Android SHA-256 fingerprint.
Move from Firebase Dynamic Links
To move a project from Firebase Dynamic Links, do the following:
- In Settings and Integrations > General > App Details, turn off Use Firebase Dynamic Links.
- Follow the steps in Set up FlutterFlow Dynamic Links.
Your existing Generate Current Page Link actions keep working and create FlutterFlow Dynamic Links. Links that Firebase created don't move to FlutterFlow Dynamic Links, so create new links to replace any that you shared.
Limits
FlutterFlow Dynamic Links have the following limits for each project:
- Your app can create up to 60 links per minute and 1,000 links per day, and up to 10 links per minute from any one IP address. Links that you create on the Links tab don't count toward these limits.
- Your links can receive up to about 600 clicks per minute.
- Links don't expire. To stop a link from working, deactivate it.