# handleDeepLink()

A function that handles deep links and triggers paywalls based on configured campaigns.

> **Tip:** Configure deep link campaigns on the Superwall dashboard by adding the `deepLink` event to a campaign trigger.

> **Info:** Deep link events are also tracked via [`SuperwallEvent.deepLink`](/docs/ios/sdk-reference/SuperwallEvent) and sent to your [`SuperwallDelegate`](/docs/ios/sdk-reference/SuperwallDelegate).

## Purpose

Processes a deep link URL and triggers any associated paywall campaigns configured on the Superwall dashboard. Returns whether Superwall will handle the URL so you can fall back to your own routing.

## Signature

```swift
@discardableResult
public static func handleDeepLink(_ url: URL) -> Bool
```

## Parameters

<TypeTable
  type="{
  url: {
    type: &#x22;URL&#x22;,
    description: &#x22;The deep link URL to process for paywall triggers.&#x22;,
    required: true,
  },
}"
/>

## Returns / State

Returns `true` when Superwall will handle the URL. If called before `Superwall.configure(...)` completes, it only returns `true` for known Superwall URL formats or when cached config contains a `deepLink_open` trigger. Use the return value to continue your own deep-link handling when it is `false`.

## Usage

In your SceneDelegate or AppDelegate:

```swift
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
  guard let url = URLContexts.first?.url else { return }
  
  // Handle the deep link with Superwall
  let handled = Superwall.handleDeepLink(url)
  
  // Continue with your app's deep link handling if Superwall won't
  if !handled {
    handleAppDeepLink(url)
  }
}
```

iOS 13+ SceneDelegate:

```swift
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
  // Handle deep link on app launch
  if let url = connectionOptions.urlContexts.first?.url {
    let handled = Superwall.handleDeepLink(url)
    if !handled {
      handleAppDeepLink(url)
    }
  }
}
```

Legacy AppDelegate:

```swift
func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
  // Handle the deep link with Superwall
  let handled = Superwall.handleDeepLink(url)
  
  // Continue with your app's deep link handling
  if handled {
    return true
  }
  return handleAppDeepLink(url)
}
```