HubSpot: Submit details of an inbound call to the CRM
HubSpot callingExtensions.createInboundCall: arguments, response, policy and SDK examples.
← Calling extensions operations · Get started
Operation hubspot.calling_extensions_create_inbound_call
Provider route: POST /crm/extensions/calling/2026-09/inbound-call. Alter supplies the connection’s credentials and routing.
Call through Alter
Section titled “Call through Alter”Install @alter-ai/sdk @alter-ai/hubspot with npm, or alter-sdk-hubspot with pip. Supply your connected customer’s grant ID and the arguments described below.
import { App } from "@alter-ai/sdk";import { HubSpotIntegration } from "@alter-ai/hubspot";
async function execute(input: Parameters<HubSpotIntegration["callingExtensions"]["createInboundCall"]>[0]) { const app = new App({ apiKey: process.env.ALTER_API_KEY! }); try { const provider = new HubSpotIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! }); const call = await provider.callingExtensions.createInboundCall(input); const result = await call.wait(); return result.bodyJson(); } finally { await app.close(); }}import osfrom alter_sdk import Appfrom alter_sdk_hubspot import HubSpotIntegration
async def execute(arguments): async with App(api_key=os.environ["ALTER_API_KEY"]) as app: provider = HubSpotIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]}) call = await provider.calling_extensions.create_inbound_call(arguments) result = await call.wait() return result.body_json()| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Additional keys: not allowed |
body | Model | Required within parent | Expand Submit details of an inbound call to the CRM — request body — body |
Referenced models: Submit details of an inbound call to the CRM — request body — body
Response
Section titled “Response”Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | Model | Root | Expand Submit details of an inbound call to the CRM — response body |
Referenced models: Submit details of an inbound call to the CRM — response body
Schemas
Section titled “Schemas”Submit details of an inbound call to the CRM — request body — body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
callStartedTimestamp | string | Optional | The timestamp indicating when the call started, formatted as a date-time string. Format: date-time |
createEngagement | boolean | Required within parent | Indicates whether an engagement should be created for the call. |
durationSeconds | integer | Optional | The duration of the call in seconds. Format: int32 |
engagementProperties | object | Required within parent | Contains additional properties related to the engagement. Additional keys: see wildcard field |
engagementProperties.* | string | Additional keys | |
externalCallId | string | Required within parent | The unique identifier for the call from an external system. |
finalCallStatus | string | Required within parent | The final status of the call, with accepted values including: BUSY, CALLING_CRM_USER, CANCELED, COMPLETED, CONNECTING, FAILED, HOLD, IN_PROGRESS, MISSED, NO_ANSWER, QUEUED, RINGING, UNKNOWN. One of: BUSY, CALLING_CRM_USER, CANCELED, COMPLETED, CONNECTING, FAILED, HOLD, IN_PROGRESS, MISSED, NO_ANSWER, QUEUED, RINGING, UNKNOWN |
fromNumber | Model | Required within parent | Expand Submit details of an inbound call to the CRM — request body — body to Number |
potentialRecipientUserIds | array | Required within parent | |
potentialRecipientUserIds[] | integer | Each item | Format: int32 |
toNumber | Model | Required within parent | Expand Submit details of an inbound call to the CRM — request body — body to Number |
userId | integer | Optional | The ID of the user associated with the call. Format: int32 |
Referenced models: Submit details of an inbound call to the CRM — request body — body to Number
Submit details of an inbound call to the CRM — response body
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
callerIdMatches | array | Required within parent | |
callerIdMatches[] | JSON | Each item | |
callerIdMatches[] (anyOf 1) | Model | Alternative | Expand Submit details of an inbound call to the CRM. — response body — callerIdMatches / item / callerIdType: CONTACT |
callerIdMatches[] (anyOf 2) | Model | Alternative | Expand Submit details of an inbound call to the CRM. — response body — callerIdMatches / item / callerIdType: COMPANY |
Referenced models: Submit details of an inbound call to the CRM. — response body — callerIdMatches / item / callerIdType: COMPANY, Submit details of an inbound call to the CRM. — response body — callerIdMatches / item / callerIdType: CONTACT
Submit details of an inbound call to the CRM — request body — body to Number
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
e164Number | string | Required within parent | The phone number formatted in E.164 standard. |
extension | string | Optional | The extension number associated with the phone number. |
phoneNumberType | string | Required within parent | The type of phone number, with accepted values including FIXED_LINE, MOBILE, VOIP, and others. One of: FIXED_LINE, FIXED_LINE_OR_MOBILE, MOBILE, PAGER, PERSONAL_NUMBER, PREMIUM_RATE, SHARED_COST, TOLL_FREE, UAN, UNKNOWN, VOICEMAIL, VOIP |
Submit details of an inbound call to the CRM. — response body — callerIdMatches / item / callerIdType: COMPANY
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
callerIdType | string | Required within parent | Specifies the type of caller ID, which is set to 'COMPANY' by default. Known values: COMPANY Default: COMPANY |
name | string | Optional | The name associated with the company caller ID. |
objectCoordinates | Model | Required within parent | Expand Submit details of an inbound call to the CRM. — response body — callerIdMatches / item / callerIdType: COMPANY object Coordinates |
Referenced models: Submit details of an inbound call to the CRM. — response body — callerIdMatches / item / callerIdType: COMPANY object Coordinates
Submit details of an inbound call to the CRM. — response body — callerIdMatches / item / callerIdType: CONTACT
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
callerIdType | string | Required within parent | Specifies the type of caller ID, with the default value being CONTACT. Known values: CONTACT Default: CONTACT |
email | string | Optional | The email address of the contact. |
firstName | string | Optional | The first name of the contact. |
lastName | string | Optional | The last name of the contact. |
objectCoordinates | Model | Required within parent | Expand Submit details of an inbound call to the CRM. — response body — callerIdMatches / item / callerIdType: COMPANY object Coordinates |
Referenced models: Submit details of an inbound call to the CRM. — response body — callerIdMatches / item / callerIdType: COMPANY object Coordinates
Submit details of an inbound call to the CRM. — response body — callerIdMatches / item / callerIdType: COMPANY object Coordinates
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
objectId | JSON | Required within parent | |
objectId (anyOf 1) | integer | Alternative | The unique identifier for the object. Format: int64 |
objectId (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
objectTypeId | string | Required within parent | The type identifier for the object. |
portalId | JSON | Required within parent | |
portalId (anyOf 1) | integer | Alternative | The unique identifier for the portal. Format: int32 |
portalId (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
Policy, approvals and errors
Section titled “Policy, approvals and errors”SDK function policy ID: hubspot.calling_extensions_create_inbound_call. Catalog operation: calling_extensions_create_inbound_call. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.
Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.
Required provider scopes: ["crm.objects.contacts.highly_sensitive.write.v2", "crm.objects.contacts.sensitive.write.v2", "crm.objects.contacts.write", "crm.schemas.contacts.write"]