curl --request POST \
--url https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"createEngagement": true,
"engagementProperties": {},
"externalCallId": "<string>",
"fromNumber": {
"e164Number": "<string>",
"extension": "<string>"
},
"potentialRecipientUserIds": [
123
],
"toNumber": {
"e164Number": "<string>",
"extension": "<string>"
},
"callStartedTimestamp": "2023-11-07T05:31:56Z",
"durationSeconds": 123,
"userId": 123
}
'import requests
url = "https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call"
payload = {
"createEngagement": True,
"engagementProperties": {},
"externalCallId": "<string>",
"fromNumber": {
"e164Number": "<string>",
"extension": "<string>"
},
"potentialRecipientUserIds": [123],
"toNumber": {
"e164Number": "<string>",
"extension": "<string>"
},
"callStartedTimestamp": "2023-11-07T05:31:56Z",
"durationSeconds": 123,
"userId": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
createEngagement: true,
engagementProperties: {},
externalCallId: '<string>',
fromNumber: {e164Number: '<string>', extension: '<string>'},
potentialRecipientUserIds: [123],
toNumber: {e164Number: '<string>', extension: '<string>'},
callStartedTimestamp: '2023-11-07T05:31:56Z',
durationSeconds: 123,
userId: 123
})
};
fetch('https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'createEngagement' => true,
'engagementProperties' => [
],
'externalCallId' => '<string>',
'fromNumber' => [
'e164Number' => '<string>',
'extension' => '<string>'
],
'potentialRecipientUserIds' => [
123
],
'toNumber' => [
'e164Number' => '<string>',
'extension' => '<string>'
],
'callStartedTimestamp' => '2023-11-07T05:31:56Z',
'durationSeconds' => 123,
'userId' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call"
payload := strings.NewReader("{\n \"createEngagement\": true,\n \"engagementProperties\": {},\n \"externalCallId\": \"<string>\",\n \"fromNumber\": {\n \"e164Number\": \"<string>\",\n \"extension\": \"<string>\"\n },\n \"potentialRecipientUserIds\": [\n 123\n ],\n \"toNumber\": {\n \"e164Number\": \"<string>\",\n \"extension\": \"<string>\"\n },\n \"callStartedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"durationSeconds\": 123,\n \"userId\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"createEngagement\": true,\n \"engagementProperties\": {},\n \"externalCallId\": \"<string>\",\n \"fromNumber\": {\n \"e164Number\": \"<string>\",\n \"extension\": \"<string>\"\n },\n \"potentialRecipientUserIds\": [\n 123\n ],\n \"toNumber\": {\n \"e164Number\": \"<string>\",\n \"extension\": \"<string>\"\n },\n \"callStartedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"durationSeconds\": 123,\n \"userId\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"createEngagement\": true,\n \"engagementProperties\": {},\n \"externalCallId\": \"<string>\",\n \"fromNumber\": {\n \"e164Number\": \"<string>\",\n \"extension\": \"<string>\"\n },\n \"potentialRecipientUserIds\": [\n 123\n ],\n \"toNumber\": {\n \"e164Number\": \"<string>\",\n \"extension\": \"<string>\"\n },\n \"callStartedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"durationSeconds\": 123,\n \"userId\": 123\n}"
response = http.request(request)
puts response.read_body{
"callerIdMatches": [
{
"callerIdType": "CONTACT",
"objectCoordinates": {
"objectId": 123,
"objectTypeId": "<string>",
"portalId": 123
},
"email": "<string>",
"firstName": "<string>",
"lastName": "<string>"
}
]
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Create inbound call
Este punto de terminación te permite enviar información sobre una llamada entrante al sistema CRM. La solicitud debe incluir detalles como el ID de la llamada externa, el estado de la llamada y los números de teléfono involucrados. Esta operación ayuda a registrar y gestionar los datos de las llamadas entrantes dentro del CRM.
curl --request POST \
--url https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"createEngagement": true,
"engagementProperties": {},
"externalCallId": "<string>",
"fromNumber": {
"e164Number": "<string>",
"extension": "<string>"
},
"potentialRecipientUserIds": [
123
],
"toNumber": {
"e164Number": "<string>",
"extension": "<string>"
},
"callStartedTimestamp": "2023-11-07T05:31:56Z",
"durationSeconds": 123,
"userId": 123
}
'import requests
url = "https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call"
payload = {
"createEngagement": True,
"engagementProperties": {},
"externalCallId": "<string>",
"fromNumber": {
"e164Number": "<string>",
"extension": "<string>"
},
"potentialRecipientUserIds": [123],
"toNumber": {
"e164Number": "<string>",
"extension": "<string>"
},
"callStartedTimestamp": "2023-11-07T05:31:56Z",
"durationSeconds": 123,
"userId": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
createEngagement: true,
engagementProperties: {},
externalCallId: '<string>',
fromNumber: {e164Number: '<string>', extension: '<string>'},
potentialRecipientUserIds: [123],
toNumber: {e164Number: '<string>', extension: '<string>'},
callStartedTimestamp: '2023-11-07T05:31:56Z',
durationSeconds: 123,
userId: 123
})
};
fetch('https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'createEngagement' => true,
'engagementProperties' => [
],
'externalCallId' => '<string>',
'fromNumber' => [
'e164Number' => '<string>',
'extension' => '<string>'
],
'potentialRecipientUserIds' => [
123
],
'toNumber' => [
'e164Number' => '<string>',
'extension' => '<string>'
],
'callStartedTimestamp' => '2023-11-07T05:31:56Z',
'durationSeconds' => 123,
'userId' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call"
payload := strings.NewReader("{\n \"createEngagement\": true,\n \"engagementProperties\": {},\n \"externalCallId\": \"<string>\",\n \"fromNumber\": {\n \"e164Number\": \"<string>\",\n \"extension\": \"<string>\"\n },\n \"potentialRecipientUserIds\": [\n 123\n ],\n \"toNumber\": {\n \"e164Number\": \"<string>\",\n \"extension\": \"<string>\"\n },\n \"callStartedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"durationSeconds\": 123,\n \"userId\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"createEngagement\": true,\n \"engagementProperties\": {},\n \"externalCallId\": \"<string>\",\n \"fromNumber\": {\n \"e164Number\": \"<string>\",\n \"extension\": \"<string>\"\n },\n \"potentialRecipientUserIds\": [\n 123\n ],\n \"toNumber\": {\n \"e164Number\": \"<string>\",\n \"extension\": \"<string>\"\n },\n \"callStartedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"durationSeconds\": 123,\n \"userId\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/crm/extensions/calling/2026-03/inbound-call")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"createEngagement\": true,\n \"engagementProperties\": {},\n \"externalCallId\": \"<string>\",\n \"fromNumber\": {\n \"e164Number\": \"<string>\",\n \"extension\": \"<string>\"\n },\n \"potentialRecipientUserIds\": [\n 123\n ],\n \"toNumber\": {\n \"e164Number\": \"<string>\",\n \"extension\": \"<string>\"\n },\n \"callStartedTimestamp\": \"2023-11-07T05:31:56Z\",\n \"durationSeconds\": 123,\n \"userId\": 123\n}"
response = http.request(request)
puts response.read_body{
"callerIdMatches": [
{
"callerIdType": "CONTACT",
"objectCoordinates": {
"objectId": 123,
"objectTypeId": "<string>",
"portalId": 123
},
"email": "<string>",
"firstName": "<string>",
"lastName": "<string>"
}
]
}{
"message": "Invalid input (details will vary based on the error)",
"correlationId": "aeb5f871-7f07-4993-9211-075dc63e7cbf",
"category": "VALIDATION_ERROR",
"links": {
"knowledge-base": "https://www.hubspot.com/products/service/knowledge-base"
}
}Supported products
Supported products
Required Scopes
Required Scopes
Autorizaciones
The access token received from the authorization server in the OAuth 2.0 flow.
Cuerpo
Indica si se debe crear una interacción para la llamada.
Contiene propiedades adicionales relacionadas con la interacción.
Show child attributes
Show child attributes
El identificador único de la llamada desde un sistema externo.
El estado final de la llamada, con los siguientes valores aceptados: BUSY, CALLING_CRM_USER, CANCELED, COMPLETED, CONNECTING, FAILED, HOLD, IN_PROGRESS, MISSED, NO_ANSWER, QUEUED, RINGING, UNKNOWN.
BUSY, CALLING_CRM_USER, CANCELED, COMPLETED, CONNECTING, FAILED, HOLD, IN_PROGRESS, MISSED, NO_ANSWER, QUEUED, RINGING, UNKNOWN Show child attributes
Show child attributes
Show child attributes
Show child attributes
La marca de tiempo que indica cuándo comenzó la llamada, con formato de cadena de fecha y hora.
La duración de la llamada en segundos.
El ID del usuario asociado a la llamada.
Respuesta
successful operation
- CONTACT
- COMPANY
Show child attributes
Show child attributes