Restore previous version
curl --request POST \
--url https://app.famulor.de/api/user/automate/flows/{id}/restoreimport requests
url = "https://app.famulor.de/api/user/automate/flows/{id}/restore"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://app.famulor.de/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.famulor.de/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",
]);
$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.famulor.de/api/user/automate/flows/{id}/restore"
req, _ := http.NewRequest("POST", url, nil)
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.famulor.de/api/user/automate/flows/{id}/restore")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.de/api/user/automate/flows/{id}/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
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 a Famulor automation back to its previous published version.
POST
/
api
/
user
/
automate
/
flows
/
{id}
/
restore
Restore previous version
curl --request POST \
--url https://app.famulor.de/api/user/automate/flows/{id}/restoreimport requests
url = "https://app.famulor.de/api/user/automate/flows/{id}/restore"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://app.famulor.de/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.famulor.de/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",
]);
$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.famulor.de/api/user/automate/flows/{id}/restore"
req, _ := http.NewRequest("POST", url, nil)
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.famulor.de/api/user/automate/flows/{id}/restore")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.famulor.de/api/user/automate/flows/{id}/restore")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
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"
}
Famulor 1.0 API (legacy). This page applies only to Famulor 1.0 (
app.famulor.de) and is retained for legacy compatibility. For the current platform, use the Famulor 2.0 API reference.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 Famulor 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"
}
Related pages: Update automation, Get automation, and Authentication.