Overview

Deep linking allows your mobile app users to call and text through OpenPhone without leaving your app. Create seamless communication experiences by integrating OpenPhone’s URL schemes into your mobile application.
Deep linking is available for mobile apps only. Web and desktop applications are not supported.

Use cases

Deep linking is ideal for:
  • Customer service apps with call functionality
  • Business apps requiring direct communication
  • CRM mobile applications
  • Field service and delivery apps
  • Any mobile app with communication features

Dialing phone numbers

URL scheme format

openphone://dial?number=<number>&from=<from>&action=call

Parameters

Required:
  • number: URL-encoded phone number string
Optional:
  • from: URL-encoded OpenPhone number to use as caller ID
  • action: Set to call for automatic dialing
If from is not specified, the currently selected OpenPhone number is used. For automatic calling with multiple numbers, specify from to avoid number selection prompts.

Examples

Basic dialing:
openphone://dial?number=4107934326
openphone://dial?number=%2B14107934326
Automatic calling:
openphone://dial?number=4107934326&from=3239991234&action=call

Drafting messages

URL scheme format

openphone://message?number=<number>&from=<from>&text=<text>&attachments=<url1>,<url2>

Parameters

All parameters are optional:
  • number: URL-encoded phone number string
  • from: URL-encoded OpenPhone number to send from
  • selectedAsFallback: Use current number when from not set (default: false)
  • text: URL-encoded message body
  • attachments: Comma-separated URLs to files with proper extensions (.jpg, .pdf, etc.)

Examples

Simple message:
openphone://message?text=Hello,%20buddy
Message with attachments:
openphone://message?number=4107934326&text=Hello,%20buddy&attachments=https%3A%2F%2Fexample.com%2Ffile.pdf,https%3A%2F%2Fexample.com%2Fimage.png

Group communications

Multiple recipients

Both dialing and messaging support multiple recipients by providing comma-separated phone numbers: Group messaging:
openphone://message?number=4107934326,9801235640&text=Hello
Group calling:
openphone://dial?number=4107934326,9801235640&action=call

Limitations and requirements

Group size limits:
  • Maximum 9 phone numbers per group (user is the 10th participant)
  • For group dialing, action=call parameter is required
Direct numbers:
  • User direct numbers start with @ symbol
  • Must be URL-encoded: @9997934326 becomes %409997934326
Group dialing requires the action=call parameter when multiple numbers are provided.

User experience

App behavior

When users tap deep links:
  • App installed: OpenPhone launches with pre-filled dialer or message composer
  • App not installed: Redirects to App Store (iOS) or Google Play Store (Android)
  • Multiple numbers available: User may be prompted to select calling number

Implementation tips

Best practices:
  • Always URL-encode phone numbers and message content
  • Test deep links on both iOS and Android devices
  • Handle fallback scenarios when OpenPhone isn’t installed
  • Consider user experience for number selection prompts
URL encoding examples:
  • Space: %20
  • Plus sign: %2B
  • At symbol: %40
  • Comma: %2C