Article

How HubSpot's Calling Extensions SDK Works

How third-party calling apps appear in HubSpot's calling pane: the Calling Extensions SDK, the OAuth connect, and what a native integration actually does.

5 min read

When you click call on a HubSpot contact and a third-party dialler slides in from the side, that panel is not magic and it is not a browser plugin. It is a small web app that HubSpot loads inside its calling pane, talking to HubSpot through a published SDK. Understanding that handshake makes it much easier to judge which calling tools will feel native and which will feel bolted on.

What the Calling Extensions SDK is

HubSpot publishes a Calling Extensions SDK: a JavaScript library that lets a third-party calling app register itself as a call option on contact and company records. When a rep clicks call, HubSpot opens the app in an iframe inside the calling pane and the two sides exchange messages: HubSpot tells the app which contact is in context and what number to dial, and the app tells HubSpot when the call starts, ends and what the outcome was.

The important idea is that the calling app runs inside HubSpot rather than beside it. There is no second window to babysit and no copy-paste of numbers. That embedded calling surface is exactly the atomic action behind one-click dial from a HubSpot record, and running it continuously down a list is what turns it into a HubSpot power dialler.

Connecting the app: the OAuth step

Before an app can appear in the calling pane, a HubSpot admin has to connect it. That connection is an OAuth flow: you open the app's install link in a top-level browser tab, HubSpot asks you to pick the portal and approve a set of scopes (permission to read contacts, write call engagements, and so on), and on approval HubSpot hands the app a set of tokens it uses to read and write on your behalf.

Two details matter here. First, the connect has to run in a real top-level tab, not inside the iframe, because browsers partition iframe storage and an OAuth popup needs its own context. Second, the tokens are scoped: the app can only touch the objects you granted, and a good integration keeps those tokens server-side rather than in the browser. Once connected, the app shows up as a call option on every record without any per-rep setup.

What a native calling integration actually does

Registering in the pane is only the visible half. A native integration also writes the call back into HubSpot so the record stays complete. Through the SDK and the CRM API, a well-built calling app will:

  • Read the dial context. Pick up the contact, company and phone number from the record the rep is looking at, so nothing is typed twice.
  • Report call state. Tell HubSpot when the call is ringing, connected and ended, so the timeline reflects reality in real time.
  • Write the engagement. Create a call record on the contact timeline with the recording, transcript and notes attached. See automatic call logging in HubSpot.
  • Set the disposition. Record the outcome using HubSpot's own disposition list rather than a made-up status, so reporting stays consistent.
How Ringside plugs in

Ringside installs into the HubSpot calling pane through the Calling Extensions SDK and an OAuth connect, so it appears as a call option on the contact record. The calling pane is control plane only: Ringside rings your own phone and bridges the prospect in, then writes the call, recording, transcript and disposition back to the contact timeline automatically. OAuth tokens are held server-side, never in the browser.

Because the pane is just a control surface and the audio is a normal phone call, the same integration works when you dial on the move. More on that in dialling from your phone with HubSpot.

Add a native calling app to HubSpot with a live coach on every call, logged straight back to the record.

Get started

Frequently asked questions

What is the HubSpot Calling Extensions SDK?

It is a JavaScript library HubSpot publishes so third-party calling apps can register in the calling pane, receive the dial context from a record, and report call state and outcomes back to HubSpot. It is what makes a dialler feel native inside the CRM.

How does a calling app connect to HubSpot?

Through an OAuth flow. An admin opens the app's install link in a top-level tab, chooses the portal and approves the scopes, and HubSpot issues tokens the app uses to read contacts and write call engagements. After that the app appears as a call option on every record.

Does the SDK mean the call runs inside my browser?

Not necessarily. The SDK controls the calling pane and the logging, but the audio path is up to the app. Ringside keeps the pane as control plane only and rings your real phone, bridging the prospect in, so call quality does not depend on the browser.