Shopify
Update Shopify Automation Settings
Update the connected Shopify store’s browse-abandonment, cart-abandonment, and price-drop settings
PUT
/
api
/
v1
/
shopify
/
automation-settings
Update Shopify Automation Settings
curl --request PUT \
--url https://api.sequenzy.com/api/v1/shopify/automation-settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"browseAbandonment": {},
"cartAbandonment": {},
"priceDrop": {}
}
'import requests
url = "https://api.sequenzy.com/api/v1/shopify/automation-settings"
payload = {
"browseAbandonment": {},
"cartAbandonment": {},
"priceDrop": {}
}
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({browseAbandonment: {}, cartAbandonment: {}, priceDrop: {}})
};
fetch('https://api.sequenzy.com/api/v1/shopify/automation-settings', 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.sequenzy.com/api/v1/shopify/automation-settings",
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([
'browseAbandonment' => [
],
'cartAbandonment' => [
],
'priceDrop' => [
]
]),
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.sequenzy.com/api/v1/shopify/automation-settings"
payload := strings.NewReader("{\n \"browseAbandonment\": {},\n \"cartAbandonment\": {},\n \"priceDrop\": {}\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.sequenzy.com/api/v1/shopify/automation-settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"browseAbandonment\": {},\n \"cartAbandonment\": {},\n \"priceDrop\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/shopify/automation-settings")
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 \"browseAbandonment\": {},\n \"cartAbandonment\": {},\n \"priceDrop\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Shopify automation settings updated.",
"integrationId": "int_123",
"shopDomain": "my-store.myshopify.com",
"browseAbandonment": {
"enabled": false,
"delayHours": 2,
"cooldownHours": 24
},
"cartAbandonment": {
"enabled": true,
"delayHours": 1,
"cooldownHours": 24,
"expireAfterHours": 72
},
"priceDrop": {
"enabled": true,
"minPercent": 10,
"lookbackDays": 30,
"cooldownDays": 7
}
}
{
"success": false,
"error": "Provide browseAbandonment, cartAbandonment, and/or priceDrop settings to update."
}
{
"success": false,
"error": "Unauthorized"
}
{
"type": "validation",
"on": "body",
"property": "/cartAbandonment/delayHours",
"message": "Expected number to be less or equal to 168"
}
{
"success": false,
"error": "Shopify integration not found"
}
Partial update: omitted sections are left untouched, omitted fields within a
section keep their current value, and passing
null for a section resets it
to the platform defaults.
Request
object | null
Browse-abandonment settings:
enabled (boolean), delayHours (hours to wait
after a product view, default 2, max 168), cooldownHours (minimum hours
between events per subscriber, default 24, max 720). Pass null to reset to
the defaults.object | null
Cart-abandonment settings:
enabled (boolean), delayHours (hours of cart
inactivity before the cart counts as abandoned, default 1, max 168),
cooldownHours (minimum hours between events per subscriber, default 24, max
720), expireAfterHours (hours after which an untouched tracked cart is
dropped rather than emailed about, default 72, max 720). Pass null to reset
to the defaults.object | null
Price-drop settings:
enabled (boolean), minPercent (minimum price decrease
percent, default 5, max 95), lookbackDays (viewer audience window, default
30, max 90), cooldownDays (minimum days between events per subscriber and
product, default 7, max 90). Pass null to reset to the defaults.curl -X PUT "https://api.sequenzy.com/api/v1/shopify/automation-settings" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"priceDrop": {"minPercent": 10}, "browseAbandonment": {"enabled": false}}'
Responses
{
"success": true,
"message": "Shopify automation settings updated.",
"integrationId": "int_123",
"shopDomain": "my-store.myshopify.com",
"browseAbandonment": {
"enabled": false,
"delayHours": 2,
"cooldownHours": 24
},
"cartAbandonment": {
"enabled": true,
"delayHours": 1,
"cooldownHours": 24,
"expireAfterHours": 72
},
"priceDrop": {
"enabled": true,
"minPercent": 10,
"lookbackDays": 30,
"cooldownDays": 7
}
}
{
"success": false,
"error": "Provide browseAbandonment, cartAbandonment, and/or priceDrop settings to update."
}
{
"success": false,
"error": "Unauthorized"
}
{
"type": "validation",
"on": "body",
"property": "/cartAbandonment/delayHours",
"message": "Expected number to be less or equal to 168"
}
{
"success": false,
"error": "Shopify integration not found"
}
⌘I
Update Shopify Automation Settings
curl --request PUT \
--url https://api.sequenzy.com/api/v1/shopify/automation-settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"browseAbandonment": {},
"cartAbandonment": {},
"priceDrop": {}
}
'import requests
url = "https://api.sequenzy.com/api/v1/shopify/automation-settings"
payload = {
"browseAbandonment": {},
"cartAbandonment": {},
"priceDrop": {}
}
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({browseAbandonment: {}, cartAbandonment: {}, priceDrop: {}})
};
fetch('https://api.sequenzy.com/api/v1/shopify/automation-settings', 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.sequenzy.com/api/v1/shopify/automation-settings",
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([
'browseAbandonment' => [
],
'cartAbandonment' => [
],
'priceDrop' => [
]
]),
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.sequenzy.com/api/v1/shopify/automation-settings"
payload := strings.NewReader("{\n \"browseAbandonment\": {},\n \"cartAbandonment\": {},\n \"priceDrop\": {}\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.sequenzy.com/api/v1/shopify/automation-settings")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"browseAbandonment\": {},\n \"cartAbandonment\": {},\n \"priceDrop\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sequenzy.com/api/v1/shopify/automation-settings")
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 \"browseAbandonment\": {},\n \"cartAbandonment\": {},\n \"priceDrop\": {}\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "Shopify automation settings updated.",
"integrationId": "int_123",
"shopDomain": "my-store.myshopify.com",
"browseAbandonment": {
"enabled": false,
"delayHours": 2,
"cooldownHours": 24
},
"cartAbandonment": {
"enabled": true,
"delayHours": 1,
"cooldownHours": 24,
"expireAfterHours": 72
},
"priceDrop": {
"enabled": true,
"minPercent": 10,
"lookbackDays": 30,
"cooldownDays": 7
}
}
{
"success": false,
"error": "Provide browseAbandonment, cartAbandonment, and/or priceDrop settings to update."
}
{
"success": false,
"error": "Unauthorized"
}
{
"type": "validation",
"on": "body",
"property": "/cartAbandonment/delayHours",
"message": "Expected number to be less or equal to 168"
}
{
"success": false,
"error": "Shopify integration not found"
}