Restore previous version
curl --request POST \
--url https://app.autocalls.ai/api/user/automate/flows/{id}/restore \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.autocalls.ai/api/user/automate/flows/{id}/restore"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.autocalls.ai/api/user/automate/flows/{id}/restore', 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://app.autocalls.ai/api/user/automate/flows/{id}/restore",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.autocalls.ai/api/user/automate/flows/{id}/restore"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.autocalls.ai/api/user/automate/flows/{id}/restore")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.autocalls.ai/api/user/automate/flows/{id}/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"automation_id": "f4EaLhOW2zoEsXXSOJP2r",
"name": "Order lookup",
"status": "enabled",
"restored_version_id": "8auMJQtqBnE1X8ZP7WVnI",
"note": "Rolled back to the previous published version and re-published it live."
}
{
"message": "There is no earlier version of this automation to roll back to.",
"error": "no_previous_version"
}
{
"message": "Automation not found, or it does not belong to your account.",
"error": "not_found"
}
Automations
Restore previous version
Roll an automation back to its previous published version
POST
/
user
/
automate
/
flows
/
{id}
/
restore
Restore previous version
curl --request POST \
--url https://app.autocalls.ai/api/user/automate/flows/{id}/restore \
--header 'Authorization: Bearer <token>'import requests
url = "https://app.autocalls.ai/api/user/automate/flows/{id}/restore"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://app.autocalls.ai/api/user/automate/flows/{id}/restore', 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://app.autocalls.ai/api/user/automate/flows/{id}/restore",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://app.autocalls.ai/api/user/automate/flows/{id}/restore"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.autocalls.ai/api/user/automate/flows/{id}/restore")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.autocalls.ai/api/user/automate/flows/{id}/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"automation_id": "f4EaLhOW2zoEsXXSOJP2r",
"name": "Order lookup",
"status": "enabled",
"restored_version_id": "8auMJQtqBnE1X8ZP7WVnI",
"note": "Rolled back to the previous published version and re-published it live."
}
{
"message": "There is no earlier version of this automation to roll back to.",
"error": "no_previous_version"
}
{
"message": "Automation not found, or it does not belong to your account.",
"error": "not_found"
}
This endpoint rolls an automation back to the version published immediately before the current one and re-publishes it — the undo for an update that made things worse. Only the previous version is supported. An automation that was turned off stays off after the restore.
This endpoint takes no request body.
A missing automation — or one that does not belong to your account — returns a Error codes (
Path Parameters
string
required
The ID of the automation (from List automations)
Response
string
The automation’s ID
string
The automation’s name after the restore
string
enabled or disabled — the on/off state the automation had going into the restore is preservedstring
The ID of the version that is now live
string
Confirmation that the previous version was restored and re-published
404.
Error codes (422)
error | Meaning |
|---|---|
no_previous_version | There is no earlier version of this automation to roll back to. |
rollback_failed | The previous version could not be restored — nothing changed. |
publish_failed | The previous version was restored as the draft but could not be published, so it is not live yet — publish it in the app or retry. |
{
"automation_id": "f4EaLhOW2zoEsXXSOJP2r",
"name": "Order lookup",
"status": "enabled",
"restored_version_id": "8auMJQtqBnE1X8ZP7WVnI",
"note": "Rolled back to the previous published version and re-published it live."
}
{
"message": "There is no earlier version of this automation to roll back to.",
"error": "no_previous_version"
}
{
"message": "Automation not found, or it does not belong to your account.",
"error": "not_found"
}
⌘I

