curl --request POST \
--url 'https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'nonce=<string>' \
--data dealId=123 \
--data 'customerName=<string>' \
--data councilId=123 \
--data 'contactFirstName=<string>' \
--data 'contactLastName=<string>' \
--data 'contactTitle=<string>' \
--data contactEmail=jsmith@example.com \
--data 'contactPhone=<string>' \
--data 'customerUrl=<string>' \
--data 'customerIndustry=<string>' \
--data 'companySize=<string>' \
--data 'companyRevenue=<string>' \
--data 'customerAddress=<string>' \
--data 'customerAddress2=<string>' \
--data 'customerCity=<string>' \
--data 'customerState=<string>' \
--data 'customerZip=<string>' \
--data 'customerCountry=<string>' \
--data numSages=123 \
--data 'creditInputMode=<string>' \
--data numCredits=123 \
--data screensPerRole=123 \
--data extraCredits=123 \
--data creditsFloor=123 \
--data creditsCeiling=123 \
--data tierLite=123 \
--data tierCore=123 \
--data tierAdvanced=123 \
--data whiteGlovePrice=123 \
--data addonCustomBranding=true \
--data addonCustomUrl=true \
--data addonPrioritySupport=true \
--data 'compliance=<string>' \
--data 'integrations=<string>' \
--data pricePerCredit=123 \
--data pricePerSage=123 \
--data growthRate=123 \
--data priceIncreaseRate=123 \
--data discountPercent=123 \
--data discountDollar=123 \
--data hasReferral=true \
--data expenseMonthly=123 \
--data expenseAnnual=123 \
--data expenseOnetime=123 \
--data 'customerNotes=<string>' \
--data quoteExpirationDays=123import requests
url = "https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote"
payload = {
"nonce": "<string>",
"dealId": "123",
"customerName": "<string>",
"councilId": "123",
"contactFirstName": "<string>",
"contactLastName": "<string>",
"contactTitle": "<string>",
"contactEmail": "jsmith@example.com",
"contactPhone": "<string>",
"customerUrl": "<string>",
"customerIndustry": "<string>",
"companySize": "<string>",
"companyRevenue": "<string>",
"customerAddress": "<string>",
"customerAddress2": "<string>",
"customerCity": "<string>",
"customerState": "<string>",
"customerZip": "<string>",
"customerCountry": "<string>",
"numSages": "123",
"creditInputMode": "<string>",
"numCredits": "123",
"screensPerRole": "123",
"extraCredits": "123",
"creditsFloor": "123",
"creditsCeiling": "123",
"tierLite": "123",
"tierCore": "123",
"tierAdvanced": "123",
"whiteGlovePrice": "123",
"addonCustomBranding": "true",
"addonCustomUrl": "true",
"addonPrioritySupport": "true",
"compliance": "<string>",
"integrations": "<string>",
"pricePerCredit": "123",
"pricePerSage": "123",
"growthRate": "123",
"priceIncreaseRate": "123",
"discountPercent": "123",
"discountDollar": "123",
"hasReferral": "true",
"expenseMonthly": "123",
"expenseAnnual": "123",
"expenseOnetime": "123",
"customerNotes": "<string>",
"quoteExpirationDays": "123"
}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: new URLSearchParams({
nonce: '<string>',
dealId: '123',
customerName: '<string>',
councilId: '123',
contactFirstName: '<string>',
contactLastName: '<string>',
contactTitle: '<string>',
contactEmail: 'jsmith@example.com',
contactPhone: '<string>',
customerUrl: '<string>',
customerIndustry: '<string>',
companySize: '<string>',
companyRevenue: '<string>',
customerAddress: '<string>',
customerAddress2: '<string>',
customerCity: '<string>',
customerState: '<string>',
customerZip: '<string>',
customerCountry: '<string>',
numSages: '123',
creditInputMode: '<string>',
numCredits: '123',
screensPerRole: '123',
extraCredits: '123',
creditsFloor: '123',
creditsCeiling: '123',
tierLite: '123',
tierCore: '123',
tierAdvanced: '123',
whiteGlovePrice: '123',
addonCustomBranding: 'true',
addonCustomUrl: 'true',
addonPrioritySupport: 'true',
compliance: '<string>',
integrations: '<string>',
pricePerCredit: '123',
pricePerSage: '123',
growthRate: '123',
priceIncreaseRate: '123',
discountPercent: '123',
discountDollar: '123',
hasReferral: 'true',
expenseMonthly: '123',
expenseAnnual: '123',
expenseOnetime: '123',
customerNotes: '<string>',
quoteExpirationDays: '123'
})
};
fetch('https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote', 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://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "nonce=%3Cstring%3E&dealId=123&customerName=%3Cstring%3E&councilId=123&contactFirstName=%3Cstring%3E&contactLastName=%3Cstring%3E&contactTitle=%3Cstring%3E&contactEmail=jsmith%40example.com&contactPhone=%3Cstring%3E&customerUrl=%3Cstring%3E&customerIndustry=%3Cstring%3E&companySize=%3Cstring%3E&companyRevenue=%3Cstring%3E&customerAddress=%3Cstring%3E&customerAddress2=%3Cstring%3E&customerCity=%3Cstring%3E&customerState=%3Cstring%3E&customerZip=%3Cstring%3E&customerCountry=%3Cstring%3E&numSages=123&creditInputMode=%3Cstring%3E&numCredits=123&screensPerRole=123&extraCredits=123&creditsFloor=123&creditsCeiling=123&tierLite=123&tierCore=123&tierAdvanced=123&whiteGlovePrice=123&addonCustomBranding=true&addonCustomUrl=true&addonPrioritySupport=true&compliance=%3Cstring%3E&integrations=%3Cstring%3E&pricePerCredit=123&pricePerSage=123&growthRate=123&priceIncreaseRate=123&discountPercent=123&discountDollar=123&hasReferral=true&expenseMonthly=123&expenseAnnual=123&expenseOnetime=123&customerNotes=%3Cstring%3E"eExpirationDays=123",
CURLOPT_HTTPHEADER => [
"Content-Type: application/x-www-form-urlencoded"
],
]);
$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://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote"
payload := strings.NewReader("nonce=%3Cstring%3E&dealId=123&customerName=%3Cstring%3E&councilId=123&contactFirstName=%3Cstring%3E&contactLastName=%3Cstring%3E&contactTitle=%3Cstring%3E&contactEmail=jsmith%40example.com&contactPhone=%3Cstring%3E&customerUrl=%3Cstring%3E&customerIndustry=%3Cstring%3E&companySize=%3Cstring%3E&companyRevenue=%3Cstring%3E&customerAddress=%3Cstring%3E&customerAddress2=%3Cstring%3E&customerCity=%3Cstring%3E&customerState=%3Cstring%3E&customerZip=%3Cstring%3E&customerCountry=%3Cstring%3E&numSages=123&creditInputMode=%3Cstring%3E&numCredits=123&screensPerRole=123&extraCredits=123&creditsFloor=123&creditsCeiling=123&tierLite=123&tierCore=123&tierAdvanced=123&whiteGlovePrice=123&addonCustomBranding=true&addonCustomUrl=true&addonPrioritySupport=true&compliance=%3Cstring%3E&integrations=%3Cstring%3E&pricePerCredit=123&pricePerSage=123&growthRate=123&priceIncreaseRate=123&discountPercent=123&discountDollar=123&hasReferral=true&expenseMonthly=123&expenseAnnual=123&expenseOnetime=123&customerNotes=%3Cstring%3E"eExpirationDays=123")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote")
.header("Content-Type", "application/x-www-form-urlencoded")
.body("nonce=%3Cstring%3E&dealId=123&customerName=%3Cstring%3E&councilId=123&contactFirstName=%3Cstring%3E&contactLastName=%3Cstring%3E&contactTitle=%3Cstring%3E&contactEmail=jsmith%40example.com&contactPhone=%3Cstring%3E&customerUrl=%3Cstring%3E&customerIndustry=%3Cstring%3E&companySize=%3Cstring%3E&companyRevenue=%3Cstring%3E&customerAddress=%3Cstring%3E&customerAddress2=%3Cstring%3E&customerCity=%3Cstring%3E&customerState=%3Cstring%3E&customerZip=%3Cstring%3E&customerCountry=%3Cstring%3E&numSages=123&creditInputMode=%3Cstring%3E&numCredits=123&screensPerRole=123&extraCredits=123&creditsFloor=123&creditsCeiling=123&tierLite=123&tierCore=123&tierAdvanced=123&whiteGlovePrice=123&addonCustomBranding=true&addonCustomUrl=true&addonPrioritySupport=true&compliance=%3Cstring%3E&integrations=%3Cstring%3E&pricePerCredit=123&pricePerSage=123&growthRate=123&priceIncreaseRate=123&discountPercent=123&discountDollar=123&hasReferral=true&expenseMonthly=123&expenseAnnual=123&expenseOnetime=123&customerNotes=%3Cstring%3E"eExpirationDays=123")
.asString();require 'uri'
require 'net/http'
url = URI("https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.body = "nonce=%3Cstring%3E&dealId=123&customerName=%3Cstring%3E&councilId=123&contactFirstName=%3Cstring%3E&contactLastName=%3Cstring%3E&contactTitle=%3Cstring%3E&contactEmail=jsmith%40example.com&contactPhone=%3Cstring%3E&customerUrl=%3Cstring%3E&customerIndustry=%3Cstring%3E&companySize=%3Cstring%3E&companyRevenue=%3Cstring%3E&customerAddress=%3Cstring%3E&customerAddress2=%3Cstring%3E&customerCity=%3Cstring%3E&customerState=%3Cstring%3E&customerZip=%3Cstring%3E&customerCountry=%3Cstring%3E&numSages=123&creditInputMode=%3Cstring%3E&numCredits=123&screensPerRole=123&extraCredits=123&creditsFloor=123&creditsCeiling=123&tierLite=123&tierCore=123&tierAdvanced=123&whiteGlovePrice=123&addonCustomBranding=true&addonCustomUrl=true&addonPrioritySupport=true&compliance=%3Cstring%3E&integrations=%3Cstring%3E&pricePerCredit=123&pricePerSage=123&growthRate=123&priceIncreaseRate=123&discountPercent=123&discountDollar=123&hasReferral=true&expenseMonthly=123&expenseAnnual=123&expenseOnetime=123&customerNotes=%3Cstring%3E"eExpirationDays=123"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"message": "Deal submitted for approval",
"deal_id": 1042
}
}{
"success": false,
"data": {
"message": "Invalid deal ID"
}
}{
"success": false,
"data": {
"message": "You do not have permission to perform this action"
}
}Save and submit deal for approval
Saves all deal form fields (same as sagescreen_save_deal) then
immediately transitions the deal to ss_pending_approval. Fires the
quote_submitted webhook and sends approval notification emails to
all ss_admin_all users.
Nonce: sagescreen_sales_calc
Capability: ss_sales or ss_sales_admin or ss_admin_all
curl --request POST \
--url 'https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'nonce=<string>' \
--data dealId=123 \
--data 'customerName=<string>' \
--data councilId=123 \
--data 'contactFirstName=<string>' \
--data 'contactLastName=<string>' \
--data 'contactTitle=<string>' \
--data contactEmail=jsmith@example.com \
--data 'contactPhone=<string>' \
--data 'customerUrl=<string>' \
--data 'customerIndustry=<string>' \
--data 'companySize=<string>' \
--data 'companyRevenue=<string>' \
--data 'customerAddress=<string>' \
--data 'customerAddress2=<string>' \
--data 'customerCity=<string>' \
--data 'customerState=<string>' \
--data 'customerZip=<string>' \
--data 'customerCountry=<string>' \
--data numSages=123 \
--data 'creditInputMode=<string>' \
--data numCredits=123 \
--data screensPerRole=123 \
--data extraCredits=123 \
--data creditsFloor=123 \
--data creditsCeiling=123 \
--data tierLite=123 \
--data tierCore=123 \
--data tierAdvanced=123 \
--data whiteGlovePrice=123 \
--data addonCustomBranding=true \
--data addonCustomUrl=true \
--data addonPrioritySupport=true \
--data 'compliance=<string>' \
--data 'integrations=<string>' \
--data pricePerCredit=123 \
--data pricePerSage=123 \
--data growthRate=123 \
--data priceIncreaseRate=123 \
--data discountPercent=123 \
--data discountDollar=123 \
--data hasReferral=true \
--data expenseMonthly=123 \
--data expenseAnnual=123 \
--data expenseOnetime=123 \
--data 'customerNotes=<string>' \
--data quoteExpirationDays=123import requests
url = "https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote"
payload = {
"nonce": "<string>",
"dealId": "123",
"customerName": "<string>",
"councilId": "123",
"contactFirstName": "<string>",
"contactLastName": "<string>",
"contactTitle": "<string>",
"contactEmail": "jsmith@example.com",
"contactPhone": "<string>",
"customerUrl": "<string>",
"customerIndustry": "<string>",
"companySize": "<string>",
"companyRevenue": "<string>",
"customerAddress": "<string>",
"customerAddress2": "<string>",
"customerCity": "<string>",
"customerState": "<string>",
"customerZip": "<string>",
"customerCountry": "<string>",
"numSages": "123",
"creditInputMode": "<string>",
"numCredits": "123",
"screensPerRole": "123",
"extraCredits": "123",
"creditsFloor": "123",
"creditsCeiling": "123",
"tierLite": "123",
"tierCore": "123",
"tierAdvanced": "123",
"whiteGlovePrice": "123",
"addonCustomBranding": "true",
"addonCustomUrl": "true",
"addonPrioritySupport": "true",
"compliance": "<string>",
"integrations": "<string>",
"pricePerCredit": "123",
"pricePerSage": "123",
"growthRate": "123",
"priceIncreaseRate": "123",
"discountPercent": "123",
"discountDollar": "123",
"hasReferral": "true",
"expenseMonthly": "123",
"expenseAnnual": "123",
"expenseOnetime": "123",
"customerNotes": "<string>",
"quoteExpirationDays": "123"
}
headers = {"Content-Type": "application/x-www-form-urlencoded"}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/x-www-form-urlencoded'},
body: new URLSearchParams({
nonce: '<string>',
dealId: '123',
customerName: '<string>',
councilId: '123',
contactFirstName: '<string>',
contactLastName: '<string>',
contactTitle: '<string>',
contactEmail: 'jsmith@example.com',
contactPhone: '<string>',
customerUrl: '<string>',
customerIndustry: '<string>',
companySize: '<string>',
companyRevenue: '<string>',
customerAddress: '<string>',
customerAddress2: '<string>',
customerCity: '<string>',
customerState: '<string>',
customerZip: '<string>',
customerCountry: '<string>',
numSages: '123',
creditInputMode: '<string>',
numCredits: '123',
screensPerRole: '123',
extraCredits: '123',
creditsFloor: '123',
creditsCeiling: '123',
tierLite: '123',
tierCore: '123',
tierAdvanced: '123',
whiteGlovePrice: '123',
addonCustomBranding: 'true',
addonCustomUrl: 'true',
addonPrioritySupport: 'true',
compliance: '<string>',
integrations: '<string>',
pricePerCredit: '123',
pricePerSage: '123',
growthRate: '123',
priceIncreaseRate: '123',
discountPercent: '123',
discountDollar: '123',
hasReferral: 'true',
expenseMonthly: '123',
expenseAnnual: '123',
expenseOnetime: '123',
customerNotes: '<string>',
quoteExpirationDays: '123'
})
};
fetch('https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote', 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://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "nonce=%3Cstring%3E&dealId=123&customerName=%3Cstring%3E&councilId=123&contactFirstName=%3Cstring%3E&contactLastName=%3Cstring%3E&contactTitle=%3Cstring%3E&contactEmail=jsmith%40example.com&contactPhone=%3Cstring%3E&customerUrl=%3Cstring%3E&customerIndustry=%3Cstring%3E&companySize=%3Cstring%3E&companyRevenue=%3Cstring%3E&customerAddress=%3Cstring%3E&customerAddress2=%3Cstring%3E&customerCity=%3Cstring%3E&customerState=%3Cstring%3E&customerZip=%3Cstring%3E&customerCountry=%3Cstring%3E&numSages=123&creditInputMode=%3Cstring%3E&numCredits=123&screensPerRole=123&extraCredits=123&creditsFloor=123&creditsCeiling=123&tierLite=123&tierCore=123&tierAdvanced=123&whiteGlovePrice=123&addonCustomBranding=true&addonCustomUrl=true&addonPrioritySupport=true&compliance=%3Cstring%3E&integrations=%3Cstring%3E&pricePerCredit=123&pricePerSage=123&growthRate=123&priceIncreaseRate=123&discountPercent=123&discountDollar=123&hasReferral=true&expenseMonthly=123&expenseAnnual=123&expenseOnetime=123&customerNotes=%3Cstring%3E"eExpirationDays=123",
CURLOPT_HTTPHEADER => [
"Content-Type: application/x-www-form-urlencoded"
],
]);
$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://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote"
payload := strings.NewReader("nonce=%3Cstring%3E&dealId=123&customerName=%3Cstring%3E&councilId=123&contactFirstName=%3Cstring%3E&contactLastName=%3Cstring%3E&contactTitle=%3Cstring%3E&contactEmail=jsmith%40example.com&contactPhone=%3Cstring%3E&customerUrl=%3Cstring%3E&customerIndustry=%3Cstring%3E&companySize=%3Cstring%3E&companyRevenue=%3Cstring%3E&customerAddress=%3Cstring%3E&customerAddress2=%3Cstring%3E&customerCity=%3Cstring%3E&customerState=%3Cstring%3E&customerZip=%3Cstring%3E&customerCountry=%3Cstring%3E&numSages=123&creditInputMode=%3Cstring%3E&numCredits=123&screensPerRole=123&extraCredits=123&creditsFloor=123&creditsCeiling=123&tierLite=123&tierCore=123&tierAdvanced=123&whiteGlovePrice=123&addonCustomBranding=true&addonCustomUrl=true&addonPrioritySupport=true&compliance=%3Cstring%3E&integrations=%3Cstring%3E&pricePerCredit=123&pricePerSage=123&growthRate=123&priceIncreaseRate=123&discountPercent=123&discountDollar=123&hasReferral=true&expenseMonthly=123&expenseAnnual=123&expenseOnetime=123&customerNotes=%3Cstring%3E"eExpirationDays=123")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/x-www-form-urlencoded")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote")
.header("Content-Type", "application/x-www-form-urlencoded")
.body("nonce=%3Cstring%3E&dealId=123&customerName=%3Cstring%3E&councilId=123&contactFirstName=%3Cstring%3E&contactLastName=%3Cstring%3E&contactTitle=%3Cstring%3E&contactEmail=jsmith%40example.com&contactPhone=%3Cstring%3E&customerUrl=%3Cstring%3E&customerIndustry=%3Cstring%3E&companySize=%3Cstring%3E&companyRevenue=%3Cstring%3E&customerAddress=%3Cstring%3E&customerAddress2=%3Cstring%3E&customerCity=%3Cstring%3E&customerState=%3Cstring%3E&customerZip=%3Cstring%3E&customerCountry=%3Cstring%3E&numSages=123&creditInputMode=%3Cstring%3E&numCredits=123&screensPerRole=123&extraCredits=123&creditsFloor=123&creditsCeiling=123&tierLite=123&tierCore=123&tierAdvanced=123&whiteGlovePrice=123&addonCustomBranding=true&addonCustomUrl=true&addonPrioritySupport=true&compliance=%3Cstring%3E&integrations=%3Cstring%3E&pricePerCredit=123&pricePerSage=123&growthRate=123&priceIncreaseRate=123&discountPercent=123&discountDollar=123&hasReferral=true&expenseMonthly=123&expenseAnnual=123&expenseOnetime=123&customerNotes=%3Cstring%3E"eExpirationDays=123")
.asString();require 'uri'
require 'net/http'
url = URI("https://{domain}/wp-json/sagescreen/v1/wp-admin/admin-ajax.php?nonce=&action=sagescreen_create_quote")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/x-www-form-urlencoded'
request.body = "nonce=%3Cstring%3E&dealId=123&customerName=%3Cstring%3E&councilId=123&contactFirstName=%3Cstring%3E&contactLastName=%3Cstring%3E&contactTitle=%3Cstring%3E&contactEmail=jsmith%40example.com&contactPhone=%3Cstring%3E&customerUrl=%3Cstring%3E&customerIndustry=%3Cstring%3E&companySize=%3Cstring%3E&companyRevenue=%3Cstring%3E&customerAddress=%3Cstring%3E&customerAddress2=%3Cstring%3E&customerCity=%3Cstring%3E&customerState=%3Cstring%3E&customerZip=%3Cstring%3E&customerCountry=%3Cstring%3E&numSages=123&creditInputMode=%3Cstring%3E&numCredits=123&screensPerRole=123&extraCredits=123&creditsFloor=123&creditsCeiling=123&tierLite=123&tierCore=123&tierAdvanced=123&whiteGlovePrice=123&addonCustomBranding=true&addonCustomUrl=true&addonPrioritySupport=true&compliance=%3Cstring%3E&integrations=%3Cstring%3E&pricePerCredit=123&pricePerSage=123&growthRate=123&priceIncreaseRate=123&discountPercent=123&discountDollar=123&hasReferral=true&expenseMonthly=123&expenseAnnual=123&expenseOnetime=123&customerNotes=%3Cstring%3E"eExpirationDays=123"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"message": "Deal submitted for approval",
"deal_id": 1042
}
}{
"success": false,
"data": {
"message": "Invalid deal ID"
}
}{
"success": false,
"data": {
"message": "You do not have permission to perform this action"
}
}Authorizations
WordPress AJAX nonce — either sagescreen_frontend_nonce or
sagescreen_sales_calc depending on the endpoint (see each endpoint
description). Sent as a form field in the POST body.
Body
All deal form fields. Accepts both snake_case and camelCase keys
(e.g. customer_name or customerName). Only nonce and action
are strictly required; all other fields are optional on save.
"abc123def456"
sagescreen_save_deal, sagescreen_create_quote Existing deal post ID (omit for new deal)
1042
"Greenville City Council"
Linked council post ID (for existing customers)
312
"Bob"
"Johnson"
"IT Director"
"bob@greenville.gov"
"+1-555-123-4567"
"https://greenville.gov"
"Government"
"51-200"
"$1M-$10M"
"100 Main Street"
"Suite 200"
"Greenville"
"SC"
"29601"
"US"
5
"direct"
500
100
0
100
1000
Percentage (0-100)
20
60
20
Onboarding tier selection
self_serve, white_glove 5000
true
false
true
JSON-encoded array of compliance tags
"[\"hipaa\",\"soc2\"]"
JSON-encoded array of integration tags
"[\"salesforce\",\"workday\"]"
2.5
125
Annual growth percentage
15
Annual price increase percentage
3
How the discount is expressed
percent, dollar, 10
0
false
0
0
0
"Includes complimentary onboarding session."
5