curl --request PUT \
--url https://api.hubapi.com/crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"governanceValidationRules": {
"noBackwardsMovementRule": {
"enabledForAllStages": true,
"pipelineStageIds": [
"<string>"
]
},
"noSkippingStagesRule": {
"enabledForAllStages": true,
"pipelineStageIds": [
"<string>"
]
},
"objectCreationRule": {
"pipelineStageIds": [
"<string>"
]
}
}
}
'import requests
url = "https://api.hubapi.com/crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}"
payload = { "governanceValidationRules": {
"noBackwardsMovementRule": {
"enabledForAllStages": True,
"pipelineStageIds": ["<string>"]
},
"noSkippingStagesRule": {
"enabledForAllStages": True,
"pipelineStageIds": ["<string>"]
},
"objectCreationRule": { "pipelineStageIds": ["<string>"] }
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
governanceValidationRules: {
noBackwardsMovementRule: {enabledForAllStages: true, pipelineStageIds: ['<string>']},
noSkippingStagesRule: {enabledForAllStages: true, pipelineStageIds: ['<string>']},
objectCreationRule: {pipelineStageIds: ['<string>']}
}
})
};
fetch('https://api.hubapi.com/crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}', 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/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'governanceValidationRules' => [
'noBackwardsMovementRule' => [
'enabledForAllStages' => true,
'pipelineStageIds' => [
'<string>'
]
],
'noSkippingStagesRule' => [
'enabledForAllStages' => true,
'pipelineStageIds' => [
'<string>'
]
],
'objectCreationRule' => [
'pipelineStageIds' => [
'<string>'
]
]
]
]),
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/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}"
payload := strings.NewReader("{\n \"governanceValidationRules\": {\n \"noBackwardsMovementRule\": {\n \"enabledForAllStages\": true,\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n },\n \"noSkippingStagesRule\": {\n \"enabledForAllStages\": true,\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n },\n \"objectCreationRule\": {\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n }\n }\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.hubapi.com/crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"governanceValidationRules\": {\n \"noBackwardsMovementRule\": {\n \"enabledForAllStages\": true,\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n },\n \"noSkippingStagesRule\": {\n \"enabledForAllStages\": true,\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n },\n \"objectCreationRule\": {\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"governanceValidationRules\": {\n \"noBackwardsMovementRule\": {\n \"enabledForAllStages\": true,\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n },\n \"noSkippingStagesRule\": {\n \"enabledForAllStages\": true,\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n },\n \"objectCreationRule\": {\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"governanceValidationRules": {
"noBackwardsMovementRule": {
"enabledForAllStages": true,
"pipelineStageIds": [
"<string>"
]
},
"noSkippingStagesRule": {
"enabledForAllStages": true,
"pipelineStageIds": [
"<string>"
]
},
"objectCreationRule": {
"pipelineStageIds": [
"<string>"
]
}
},
"id": "<string>",
"objectTypeId": "<string>",
"pipelineId": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"approvalStage": {
"approvalMode": "ALL",
"approverUserIds": [
"<string>"
],
"pipelineStageId": "<string>",
"approvalComment": "<string>",
"conditionalApprovalFilterBranch": {
"filterBranchOperator": "<string>",
"filterBranchType": "OR",
"filterBranches": [
{
"filterBranchOperator": "<string>",
"filterBranchType": "AND",
"filterBranches": [
{
"filterBranchOperator": "<string>",
"filterBranchType": "NOT_ALL",
"filterBranches": [
{
"filterBranchOperator": "<string>",
"filterBranchType": "NOT_ANY",
"filterBranches": [
"<unknown>"
],
"filters": [
"<unknown>"
]
}
],
"filters": [
{
"filterType": "PROPERTY",
"operation": "<unknown>",
"property": "<string>"
}
]
}
],
"filters": [
{
"filterType": "PROPERTY",
"operation": {
"includeObjectsWithNoValueSet": true,
"operationType": "BOOL",
"operator": "<string>",
"value": true
},
"property": "<string>"
}
]
}
],
"filters": [
{
"filterType": "PROPERTY",
"operation": {
"includeObjectsWithNoValueSet": true,
"operationType": "BOOL",
"operator": "<string>",
"value": true
},
"property": "<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"
}
}Update rules (Replace)
Actualiza las reglas de un pipeline específico en tu cuenta de HubSpot. Este punto de conexión te permite modificar las reglas de validación de gobernanza y las etapas de aprobación asociadas a un pipeline. Requiere especificar el tipo de objeto y los identificadores del pipeline.
curl --request PUT \
--url https://api.hubapi.com/crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"governanceValidationRules": {
"noBackwardsMovementRule": {
"enabledForAllStages": true,
"pipelineStageIds": [
"<string>"
]
},
"noSkippingStagesRule": {
"enabledForAllStages": true,
"pipelineStageIds": [
"<string>"
]
},
"objectCreationRule": {
"pipelineStageIds": [
"<string>"
]
}
}
}
'import requests
url = "https://api.hubapi.com/crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}"
payload = { "governanceValidationRules": {
"noBackwardsMovementRule": {
"enabledForAllStages": True,
"pipelineStageIds": ["<string>"]
},
"noSkippingStagesRule": {
"enabledForAllStages": True,
"pipelineStageIds": ["<string>"]
},
"objectCreationRule": { "pipelineStageIds": ["<string>"] }
} }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
governanceValidationRules: {
noBackwardsMovementRule: {enabledForAllStages: true, pipelineStageIds: ['<string>']},
noSkippingStagesRule: {enabledForAllStages: true, pipelineStageIds: ['<string>']},
objectCreationRule: {pipelineStageIds: ['<string>']}
}
})
};
fetch('https://api.hubapi.com/crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}', 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/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'governanceValidationRules' => [
'noBackwardsMovementRule' => [
'enabledForAllStages' => true,
'pipelineStageIds' => [
'<string>'
]
],
'noSkippingStagesRule' => [
'enabledForAllStages' => true,
'pipelineStageIds' => [
'<string>'
]
],
'objectCreationRule' => [
'pipelineStageIds' => [
'<string>'
]
]
]
]),
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/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}"
payload := strings.NewReader("{\n \"governanceValidationRules\": {\n \"noBackwardsMovementRule\": {\n \"enabledForAllStages\": true,\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n },\n \"noSkippingStagesRule\": {\n \"enabledForAllStages\": true,\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n },\n \"objectCreationRule\": {\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n }\n }\n}")
req, _ := http.NewRequest("PUT", 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.put("https://api.hubapi.com/crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"governanceValidationRules\": {\n \"noBackwardsMovementRule\": {\n \"enabledForAllStages\": true,\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n },\n \"noSkippingStagesRule\": {\n \"enabledForAllStages\": true,\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n },\n \"objectCreationRule\": {\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.hubapi.com/crm/pipelines-rules/2026-09/{objectTypeId}/{pipelineId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"governanceValidationRules\": {\n \"noBackwardsMovementRule\": {\n \"enabledForAllStages\": true,\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n },\n \"noSkippingStagesRule\": {\n \"enabledForAllStages\": true,\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n },\n \"objectCreationRule\": {\n \"pipelineStageIds\": [\n \"<string>\"\n ]\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"governanceValidationRules": {
"noBackwardsMovementRule": {
"enabledForAllStages": true,
"pipelineStageIds": [
"<string>"
]
},
"noSkippingStagesRule": {
"enabledForAllStages": true,
"pipelineStageIds": [
"<string>"
]
},
"objectCreationRule": {
"pipelineStageIds": [
"<string>"
]
}
},
"id": "<string>",
"objectTypeId": "<string>",
"pipelineId": "<string>",
"updatedAt": "2023-11-07T05:31:56Z",
"approvalStage": {
"approvalMode": "ALL",
"approverUserIds": [
"<string>"
],
"pipelineStageId": "<string>",
"approvalComment": "<string>",
"conditionalApprovalFilterBranch": {
"filterBranchOperator": "<string>",
"filterBranchType": "OR",
"filterBranches": [
{
"filterBranchOperator": "<string>",
"filterBranchType": "AND",
"filterBranches": [
{
"filterBranchOperator": "<string>",
"filterBranchType": "NOT_ALL",
"filterBranches": [
{
"filterBranchOperator": "<string>",
"filterBranchType": "NOT_ANY",
"filterBranches": [
"<unknown>"
],
"filters": [
"<unknown>"
]
}
],
"filters": [
{
"filterType": "PROPERTY",
"operation": "<unknown>",
"property": "<string>"
}
]
}
],
"filters": [
{
"filterType": "PROPERTY",
"operation": {
"includeObjectsWithNoValueSet": true,
"operationType": "BOOL",
"operator": "<string>",
"value": true
},
"property": "<string>"
}
]
}
],
"filters": [
{
"filterType": "PROPERTY",
"operation": {
"includeObjectsWithNoValueSet": true,
"operationType": "BOOL",
"operator": "<string>",
"value": true
},
"property": "<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.
- Authorization URL
- https://app.hubspot.com/oauth/authorize
- Token URL
- https://api.hubapi.com/oauth/v1/token
Parámetros de ruta
El identificador único del tipo de objeto para el que se actualizan las reglas del pipeline.
El identificador único del pipeline cuyas reglas se están actualizando.
Cuerpo
Respuesta
successful operation
La fecha y hora en que se creó la regla de pipeline.
Show child attributes
Show child attributes
El identificador único de la regla del pipeline.
El identificador del tipo de objeto al que está asociada la regla de pipeline.
El identificador único del pipeline al que se aplica la regla.
La fecha y hora de la última actualización de la regla de pipeline.
Show child attributes
Show child attributes