Cross-selling is how financial institutions grow revenue from existing customers. A checking account holder who receives a deep link to a pre-approved savings account offer is far more likely to convert than one who sees a generic banner ad. The deep link removes friction: one tap opens the right product page, pre-filled with information the app already knows.
This guide covers how to use deep links for cross-selling financial products. For fintech deep linking broadly, see deep linking for fintech and banking apps. For product recommendations, see product recommendation deep links.
Why Deep Links Improve Cross-Sell Conversion
Without deep links, a cross-sell email or notification says "check out our new savings account" and opens the app's home screen. The user then has to navigate to products, find savings accounts, and figure out how to apply. Most do not bother.
With deep links, the same message opens the specific product page, often pre-filled with the user's information and showing a personalized rate. The path from interest to action is one tap.
| Metric | Generic link | Deep link |
|---|---|---|
| Tap-through rate | 3-5% | 8-12% |
| Product page views | 40% of tappers | 95% of tappers |
| Application starts | 15% of viewers | 35% of viewers |
| Conversion (approved) | 2-3% of email recipients | 6-8% of recipients |
Route Patterns
/products → All products
/products/{product-type} → Product category (savings, cards, loans, insurance)
/products/{product-type}/{product-id} → Specific product detail
/products/{product-type}/{product-id}/apply → Start application
/recommendations → Personalized recommendations
/recommendations/{rec-id} → Specific recommendation
Cross-Sell Scenarios
Checking to Savings
A user with a checking account but no savings account:
{
"title": "Earn 4.5% APY on your savings",
"body": "Open a high-yield savings account and start earning on your balance",
"deep_link": "https://links.finapp.com/products/savings/HY-SAVINGS",
"category": "cross_sell"
}
Card Upgrade
A user with a basic card who qualifies for a rewards card:
<p>Based on your spending, you could earn $480/year in cash back
with the Platinum Rewards Card.</p>
<a href="https://links.finapp.com/products/cards/PLATINUM/apply">
See Your Offer
</a>
Loan Offer After Deposit History
A user with consistent direct deposits who may need a personal loan:
{
"title": "Personal loan pre-approved",
"body": "You're pre-approved for up to $25,000 at 8.99% APR",
"deep_link": "https://links.finapp.com/products/loans/PERSONAL-LOAN",
"category": "cross_sell"
}
Insurance After Major Purchase
A user who just made a large purchase (car, electronics) might benefit from insurance:
{
"title": "Protect your purchase",
"body": "Add purchase protection for your recent $1,200 transaction",
"deep_link": "https://links.finapp.com/products/insurance/PURCHASE-PROTECT",
"category": "cross_sell"
}
Timing Cross-Sell Deep Links
The timing of a cross-sell message matters as much as the content. Send recommendations when the user's behavior signals relevance:
| Trigger Event | Product to Cross-Sell | Timing |
|---|---|---|
| First direct deposit received | High-yield savings | 1 week after |
| 3 months of consistent deposits | Personal loan pre-qualification | Same day |
| High dining/travel spending pattern | Travel rewards card | End of billing cycle |
| Large purchase detected | Purchase protection insurance | 24 hours after |
| Tax season (Jan-Apr) | Tax-advantaged savings (IRA) | Early in the season |
| Savings goal reached | Investment account | Day of milestone |
| Mortgage payment detected | Refinance check | Quarterly |
Implementation
Recommendation Engine Integration
The deep link itself is simple. The complexity is in deciding which product to recommend and when:
func handleRecommendationDeepLink(_ url: URL) {
guard authManager.isAuthenticated else {
pendingDeepLink = url
showLogin()
return
}
let segments = url.pathComponents
// /recommendations/{rec-id}
if segments.count >= 3, let recId = segments.last {
let recommendation = recommendationManager.getRecommendation(recId)
guard let rec = recommendation else {
// Recommendation expired or already acted on
showRecommendations()
return
}
showProductDetail(rec.product, context: rec.personalizationContext)
}
// /products/{type}/{product-id}/apply
else if segments.contains("apply") {
let productId = segments[safe: 3]
let product = productManager.getProduct(productId)
guard let product = product else {
showError("This product is no longer available.")
return
}
// Pre-fill application with known user data
let prefill = userManager.getApplicationPrefill()
showApplication(for: product, prefill: prefill)
}
// /products/{type}/{product-id}
else if segments.count >= 4 {
let productId = segments[3]
showProductDetail(productId)
}
// /products/{type}
else if segments.count >= 3 {
let productType = segments[2]
showProductCategory(productType)
}
else {
showRecommendations()
}
}
Pre-Filling Applications
When a cross-sell deep link opens an application, pre-fill everything the app already knows:
func getApplicationPrefill() -> ApplicationPrefill {
let user = currentUser
return ApplicationPrefill(
fullName: user.fullName,
email: user.email,
phone: user.phone,
address: user.address,
dateOfBirth: user.dateOfBirth,
ssn: nil, // Never pre-fill SSN, always re-enter
income: user.reportedIncome,
employmentStatus: user.employmentStatus,
existingProducts: user.activeProducts.map { $0.id }
)
}
Pre-filling reduces application time from 5-10 minutes to 1-2 minutes, which significantly improves conversion.
Cross-Sell Email Campaigns
Lifecycle-Based Cross-Sell
<p>You've been a customer for 6 months, and you've saved over $1,200.
Have you considered investing?</p>
<p>Open an investment account and start building long-term wealth.</p>
<a href="https://links.finapp.com/products/investing/STARTER-INVEST">
Explore Investing
</a>
Spending-Based Cross-Sell
<p>You spent $320 on dining last month. With the Rewards Card, you'd have earned $9.60 in cash back on dining alone.</p>
<p>Over a year, that's $115 in cash back on dining, plus rewards on every other purchase.</p>
<a href="https://links.finapp.com/products/cards/REWARDS/apply">
See Your Offer
</a>
Measuring Cross-Sell Performance
| Metric | Description |
|---|---|
| Recommendation delivery rate | Messages successfully sent |
| Tap-through rate | Users who tapped the deep link |
| Product page view rate | Users who reached the product page |
| Application start rate | Users who began the application |
| Conversion rate | Users who were approved |
| Revenue per recommendation | Average revenue generated per cross-sell message |
| Opt-out rate | Users who disabled cross-sell notifications |
Track each metric per product type and per cross-sell trigger to identify which combinations perform best.
Compliance
Cross-selling financial products is subject to regulatory scrutiny. The CFPB has taken enforcement action against institutions that cross-sold products without clear consent. Every cross-sell deep link should:
- Clearly describe the product being offered.
- Not auto-enroll the user in anything.
- Allow the user to dismiss the recommendation.
- Comply with UDAAP (Unfair, Deceptive, or Abusive Acts or Practices) regulations.
Include a way for users to opt out of cross-sell notifications in the app's settings, linked from the notification itself:
{
"title": "Personal loan pre-approved",
"body": "You're pre-approved for up to $25,000 at 8.99% APR",
"deep_link": "https://links.finapp.com/products/loans/PERSONAL-LOAN",
"category": "cross_sell",
"actions": [
{ "id": "VIEW", "title": "View Offer" },
{ "id": "OPT_OUT", "title": "Stop these notifications" }
]
}
Tolinku for Cross-Selling
Tolinku supports the route patterns cross-selling flows need. Define routes for product pages, recommendations, and applications in the Tolinku dashboard. Deferred deep linking ensures that a cross-sell link shared via referral or email preserves the product context through app install.
For fintech deep linking, see deep linking for fintech and banking apps. For fintech referral programs, see fintech referral programs.
Get deep linking tips in your inbox
One email per week. No spam.