Patch crmdeals
curl --request PATCH \
--url https://api.example.com/crm/deals/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"value": 123,
"currency": "<string>",
"expectedCloseDate": "<string>",
"notes": "<string>",
"crmCompanyId": "<string>",
"contactId": "<string>",
"stageId": "<string>",
"winProbability": 50,
"ownerId": "<string>",
"customFields": {}
}
'import requests
url = "https://api.example.com/crm/deals/{id}"
payload = {
"name": "<string>",
"value": 123,
"currency": "<string>",
"expectedCloseDate": "<string>",
"notes": "<string>",
"crmCompanyId": "<string>",
"contactId": "<string>",
"stageId": "<string>",
"winProbability": 50,
"ownerId": "<string>",
"customFields": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
value: 123,
currency: '<string>',
expectedCloseDate: '<string>',
notes: '<string>',
crmCompanyId: '<string>',
contactId: '<string>',
stageId: '<string>',
winProbability: 50,
ownerId: '<string>',
customFields: {}
})
};
fetch('https://api.example.com/crm/deals/{id}', 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.example.com/crm/deals/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'value' => 123,
'currency' => '<string>',
'expectedCloseDate' => '<string>',
'notes' => '<string>',
'crmCompanyId' => '<string>',
'contactId' => '<string>',
'stageId' => '<string>',
'winProbability' => 50,
'ownerId' => '<string>',
'customFields' => [
]
]),
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.example.com/crm/deals/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"value\": 123,\n \"currency\": \"<string>\",\n \"expectedCloseDate\": \"<string>\",\n \"notes\": \"<string>\",\n \"crmCompanyId\": \"<string>\",\n \"contactId\": \"<string>\",\n \"stageId\": \"<string>\",\n \"winProbability\": 50,\n \"ownerId\": \"<string>\",\n \"customFields\": {}\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.example.com/crm/deals/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"value\": 123,\n \"currency\": \"<string>\",\n \"expectedCloseDate\": \"<string>\",\n \"notes\": \"<string>\",\n \"crmCompanyId\": \"<string>\",\n \"contactId\": \"<string>\",\n \"stageId\": \"<string>\",\n \"winProbability\": 50,\n \"ownerId\": \"<string>\",\n \"customFields\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/crm/deals/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"value\": 123,\n \"currency\": \"<string>\",\n \"expectedCloseDate\": \"<string>\",\n \"notes\": \"<string>\",\n \"crmCompanyId\": \"<string>\",\n \"contactId\": \"<string>\",\n \"stageId\": \"<string>\",\n \"winProbability\": 50,\n \"ownerId\": \"<string>\",\n \"customFields\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"pipelineId": "<string>",
"stageId": "<string>",
"companyId": "<string>",
"enteredStageAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"winProbability": 123,
"winProbabilityOverride": 123,
"value": 123,
"currency": "<string>",
"expectedCloseDate": "2023-11-07T05:31:56Z",
"notes": "<string>",
"crmCompanyId": "<string>",
"contactId": "<string>",
"ownerId": "<string>",
"lostReason": "<string>",
"lostReasonNote": "<string>",
"wonReason": "<string>",
"wonReasonNote": "<string>",
"wonAt": "2023-11-07T05:31:56Z",
"lostAt": "2023-11-07T05:31:56Z",
"archivedAt": "2023-11-07T05:31:56Z",
"customFields": {},
"crmCompany": {
"id": "<string>",
"name": "<string>",
"domain": "<string>",
"iconUrl": "<string>"
},
"contact": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"phoneNumber": "<string>",
"photoUrl": "<string>",
"additionalData": {}
},
"stage": {
"id": "<string>",
"name": "<string>",
"color": "<string>",
"isWon": true,
"isLost": true,
"winProbability": 123,
"rottingDays": 123
},
"contacts": [
{
"id": "<string>",
"dealId": "<string>",
"contactId": "<string>",
"role": "primary",
"isPrimary": true,
"createdAt": "2023-11-07T05:31:56Z",
"contact": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"phoneNumber": "<string>",
"photoUrl": "<string>",
"additionalData": {}
}
}
],
"owner": {
"id": "<string>",
"email": "<string>",
"givenName": "<string>",
"familyName": "<string>"
},
"isRotting": true,
"signal": {
"healthScore": 123,
"healthBand": {},
"daysInStage": 123,
"daysSinceLastActivity": 123,
"followUpsSinceLastReply": 123,
"hasReplyEver": true,
"inboundCount": 123,
"outboundCount": 123,
"meetingsBooked": 123,
"meetingsHeld": 123,
"openTaskCount": 123,
"overdueTaskCount": 123,
"computedAt": "2023-11-07T05:31:56Z",
"daysSinceLastInbound": 123,
"daysSinceLastOutbound": 123
}
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}Authorizations
Bearer token: a Platform API Key (format: ak_live::) or a Personal Access Token (format: rgo-...). PATs always act as the token owner.
Path Parameters
Body
2551010000Win probability for this deal only, 0-100. null returns the deal to its
stage's value. Sent together with a stage change it applies to the new
stage, since the move itself clears any earlier override.
0 <= x <= 100null clears the account owner, leaving the deal unassigned.
Response
The probability the deal is forecast with: its own override, else the stage's.
The per-deal value when one is set; null means the stage's applies.
Configurable per company, so a key rather than a fixed enum value.
The won-side mirror, configurable in the same way.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Server-computed health signals from crm_deal_signal.
Present once the signal sweep has seen the deal. The board must render
signal.healthBand rather than guessing from timestamps on the client, so
the badge, the workflow rules and Mira all agree on one answer.
Show child attributes
Show child attributes
curl --request PATCH \
--url https://api.example.com/crm/deals/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"value": 123,
"currency": "<string>",
"expectedCloseDate": "<string>",
"notes": "<string>",
"crmCompanyId": "<string>",
"contactId": "<string>",
"stageId": "<string>",
"winProbability": 50,
"ownerId": "<string>",
"customFields": {}
}
'import requests
url = "https://api.example.com/crm/deals/{id}"
payload = {
"name": "<string>",
"value": 123,
"currency": "<string>",
"expectedCloseDate": "<string>",
"notes": "<string>",
"crmCompanyId": "<string>",
"contactId": "<string>",
"stageId": "<string>",
"winProbability": 50,
"ownerId": "<string>",
"customFields": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
value: 123,
currency: '<string>',
expectedCloseDate: '<string>',
notes: '<string>',
crmCompanyId: '<string>',
contactId: '<string>',
stageId: '<string>',
winProbability: 50,
ownerId: '<string>',
customFields: {}
})
};
fetch('https://api.example.com/crm/deals/{id}', 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.example.com/crm/deals/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'value' => 123,
'currency' => '<string>',
'expectedCloseDate' => '<string>',
'notes' => '<string>',
'crmCompanyId' => '<string>',
'contactId' => '<string>',
'stageId' => '<string>',
'winProbability' => 50,
'ownerId' => '<string>',
'customFields' => [
]
]),
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.example.com/crm/deals/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"value\": 123,\n \"currency\": \"<string>\",\n \"expectedCloseDate\": \"<string>\",\n \"notes\": \"<string>\",\n \"crmCompanyId\": \"<string>\",\n \"contactId\": \"<string>\",\n \"stageId\": \"<string>\",\n \"winProbability\": 50,\n \"ownerId\": \"<string>\",\n \"customFields\": {}\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.example.com/crm/deals/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"value\": 123,\n \"currency\": \"<string>\",\n \"expectedCloseDate\": \"<string>\",\n \"notes\": \"<string>\",\n \"crmCompanyId\": \"<string>\",\n \"contactId\": \"<string>\",\n \"stageId\": \"<string>\",\n \"winProbability\": 50,\n \"ownerId\": \"<string>\",\n \"customFields\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/crm/deals/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"value\": 123,\n \"currency\": \"<string>\",\n \"expectedCloseDate\": \"<string>\",\n \"notes\": \"<string>\",\n \"crmCompanyId\": \"<string>\",\n \"contactId\": \"<string>\",\n \"stageId\": \"<string>\",\n \"winProbability\": 50,\n \"ownerId\": \"<string>\",\n \"customFields\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"name": "<string>",
"pipelineId": "<string>",
"stageId": "<string>",
"companyId": "<string>",
"enteredStageAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"winProbability": 123,
"winProbabilityOverride": 123,
"value": 123,
"currency": "<string>",
"expectedCloseDate": "2023-11-07T05:31:56Z",
"notes": "<string>",
"crmCompanyId": "<string>",
"contactId": "<string>",
"ownerId": "<string>",
"lostReason": "<string>",
"lostReasonNote": "<string>",
"wonReason": "<string>",
"wonReasonNote": "<string>",
"wonAt": "2023-11-07T05:31:56Z",
"lostAt": "2023-11-07T05:31:56Z",
"archivedAt": "2023-11-07T05:31:56Z",
"customFields": {},
"crmCompany": {
"id": "<string>",
"name": "<string>",
"domain": "<string>",
"iconUrl": "<string>"
},
"contact": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"phoneNumber": "<string>",
"photoUrl": "<string>",
"additionalData": {}
},
"stage": {
"id": "<string>",
"name": "<string>",
"color": "<string>",
"isWon": true,
"isLost": true,
"winProbability": 123,
"rottingDays": 123
},
"contacts": [
{
"id": "<string>",
"dealId": "<string>",
"contactId": "<string>",
"role": "primary",
"isPrimary": true,
"createdAt": "2023-11-07T05:31:56Z",
"contact": {
"id": "<string>",
"firstName": "<string>",
"lastName": "<string>",
"email": "<string>",
"phoneNumber": "<string>",
"photoUrl": "<string>",
"additionalData": {}
}
}
],
"owner": {
"id": "<string>",
"email": "<string>",
"givenName": "<string>",
"familyName": "<string>"
},
"isRotting": true,
"signal": {
"healthScore": 123,
"healthBand": {},
"daysInStage": 123,
"daysSinceLastActivity": 123,
"followUpsSinceLastReply": 123,
"hasReplyEver": true,
"inboundCount": 123,
"outboundCount": 123,
"meetingsBooked": 123,
"meetingsHeld": 123,
"openTaskCount": 123,
"overdueTaskCount": 123,
"computedAt": "2023-11-07T05:31:56Z",
"daysSinceLastInbound": 123,
"daysSinceLastOutbound": 123
}
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}{
"statusCode": 400,
"message": [
"limit must not be greater than 100"
],
"error": "BadRequestException"
}