Completa una devolución de llamada
curl --request POST \
--url https://api.hubapi.com/automation/v4/actions/callbacks/{callbackId}/complete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"outputFields": {},
"typedOutputs": {},
"failureReasonType": "<string>",
"requestContext": {
"source": "WORKFLOWS",
"workflowId": 123,
"actionId": 123
}
}
'import requests
url = "https://api.hubapi.com/automation/v4/actions/callbacks/{callbackId}/complete"
payload = {
"outputFields": {},
"typedOutputs": {},
"failureReasonType": "<string>",
"requestContext": {
"source": "WORKFLOWS",
"workflowId": 123,
"actionId": 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({
outputFields: {},
typedOutputs: {},
failureReasonType: '<string>',
requestContext: {source: 'WORKFLOWS', workflowId: 123, actionId: 123}
})
};
fetch('https://api.hubapi.com/automation/v4/actions/callbacks/{callbackId}/complete', 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/automation/v4/actions/callbacks/{callbackId}/complete",
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([
'outputFields' => [
],
'typedOutputs' => [
],
'failureReasonType' => '<string>',
'requestContext' => [
'source' => 'WORKFLOWS',
'workflowId' => 123,
'actionId' => 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/automation/v4/actions/callbacks/{callbackId}/complete"
payload := strings.NewReader("{\n \"outputFields\": {},\n \"typedOutputs\": {},\n \"failureReasonType\": \"<string>\",\n \"requestContext\": {\n \"source\": \"WORKFLOWS\",\n \"workflowId\": 123,\n \"actionId\": 123\n }\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/automation/v4/actions/callbacks/{callbackId}/complete")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"outputFields\": {},\n \"typedOutputs\": {},\n \"failureReasonType\": \"<string>\",\n \"requestContext\": {\n \"source\": \"WORKFLOWS\",\n \"workflowId\": 123,\n \"actionId\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/automation/v4/actions/callbacks/{callbackId}/complete")
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 \"outputFields\": {},\n \"typedOutputs\": {},\n \"failureReasonType\": \"<string>\",\n \"requestContext\": {\n \"source\": \"WORKFLOWS\",\n \"workflowId\": 123,\n \"actionId\": 123\n }\n}"
response = http.request(request)
puts response.read_bodyThis response has no body data.{
"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"
}
}Devoluciones de llamada
Complete a callback
Completar la ejecución de una acción bloqueada específica por ID.
POST
/
automation
/
v4
/
actions
/
callbacks
/
{callbackId}
/
complete
Completa una devolución de llamada
curl --request POST \
--url https://api.hubapi.com/automation/v4/actions/callbacks/{callbackId}/complete \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"outputFields": {},
"typedOutputs": {},
"failureReasonType": "<string>",
"requestContext": {
"source": "WORKFLOWS",
"workflowId": 123,
"actionId": 123
}
}
'import requests
url = "https://api.hubapi.com/automation/v4/actions/callbacks/{callbackId}/complete"
payload = {
"outputFields": {},
"typedOutputs": {},
"failureReasonType": "<string>",
"requestContext": {
"source": "WORKFLOWS",
"workflowId": 123,
"actionId": 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({
outputFields: {},
typedOutputs: {},
failureReasonType: '<string>',
requestContext: {source: 'WORKFLOWS', workflowId: 123, actionId: 123}
})
};
fetch('https://api.hubapi.com/automation/v4/actions/callbacks/{callbackId}/complete', 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/automation/v4/actions/callbacks/{callbackId}/complete",
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([
'outputFields' => [
],
'typedOutputs' => [
],
'failureReasonType' => '<string>',
'requestContext' => [
'source' => 'WORKFLOWS',
'workflowId' => 123,
'actionId' => 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/automation/v4/actions/callbacks/{callbackId}/complete"
payload := strings.NewReader("{\n \"outputFields\": {},\n \"typedOutputs\": {},\n \"failureReasonType\": \"<string>\",\n \"requestContext\": {\n \"source\": \"WORKFLOWS\",\n \"workflowId\": 123,\n \"actionId\": 123\n }\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/automation/v4/actions/callbacks/{callbackId}/complete")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"outputFields\": {},\n \"typedOutputs\": {},\n \"failureReasonType\": \"<string>\",\n \"requestContext\": {\n \"source\": \"WORKFLOWS\",\n \"workflowId\": 123,\n \"actionId\": 123\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/automation/v4/actions/callbacks/{callbackId}/complete")
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 \"outputFields\": {},\n \"typedOutputs\": {},\n \"failureReasonType\": \"<string>\",\n \"requestContext\": {\n \"source\": \"WORKFLOWS\",\n \"workflowId\": 123,\n \"actionId\": 123\n }\n}"
response = http.request(request)
puts response.read_bodyThis response has no body data.{
"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.
Parámetros de ruta
El identificador único de la devolución de llamada específica que se debe realizar.
Cuerpo
application/json
Contiene los campos de salida asociados a la devolución de la llamada, donde cada campo se representa como un par clave-valor.
Show child attributes
Show child attributes
Contiene los resultados escritos relacionados con la devolución de la llamada, estructurados como un objeto.
Indica el motivo del fallo al realizar la devolución de una llamada.
Especifica el contexto en el que se hace la solicitud, que puede ser uno de varios contextos predefinidos.
- WORKFLOWS
- AGENTS
- COPILOT
- STANDALONE
- TEST
Show child attributes
Show child attributes
Respuesta
Última modificación el 3 de abril de 2026
⌘I