Automation aktualisieren
curl --request PUT \
--url https://app.famulor.de/api/user/automate/flows/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"enabled": true,
"flow": {},
"sample": {},
"assistant_id": 123,
"confirm_side_effects": true
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
enabled: true,
flow: {},
sample: {},
assistant_id: 123,
confirm_side_effects: true
})
};
fetch('https://app.famulor.de/api/user/automate/flows/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.famulor.de/api/user/automate/flows/{id}"
payload = {
"name": "<string>",
"enabled": True,
"flow": {},
"sample": {},
"assistant_id": 123,
"confirm_side_effects": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.famulor.de/api/user/automate/flows/{id}",
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([
'name' => '<string>',
'enabled' => true,
'flow' => [
],
'sample' => [
],
'assistant_id' => 123,
'confirm_side_effects' => true
]),
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://app.famulor.de/api/user/automate/flows/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"enabled\": true,\n \"flow\": {},\n \"sample\": {},\n \"assistant_id\": 123,\n \"confirm_side_effects\": true\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))
}{
"data": {
"id": "f4EaLhOW2zoEsXXSOJP2r",
"name": "Order lookup v2",
"status": "disabled",
"updated": true
}
}
{
"automation_id": "f4EaLhOW2zoEsXXSOJP2r",
"status": "active",
"test": {
"run_status": "SUCCEEDED",
"steps": []
},
"response": null,
"binding": null
}
{
"message": "Automation not found"
}
Automation aktualisieren
Benenne eine Famulor-Automation um, schalte sie ein/aus oder repariere sie mit einer korrigierten Definition.
PUT
/
api
/
user
/
automate
/
flows
/
{id}
Automation aktualisieren
curl --request PUT \
--url https://app.famulor.de/api/user/automate/flows/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"enabled": true,
"flow": {},
"sample": {},
"assistant_id": 123,
"confirm_side_effects": true
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
enabled: true,
flow: {},
sample: {},
assistant_id: 123,
confirm_side_effects: true
})
};
fetch('https://app.famulor.de/api/user/automate/flows/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.famulor.de/api/user/automate/flows/{id}"
payload = {
"name": "<string>",
"enabled": True,
"flow": {},
"sample": {},
"assistant_id": 123,
"confirm_side_effects": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.famulor.de/api/user/automate/flows/{id}",
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([
'name' => '<string>',
'enabled' => true,
'flow' => [
],
'sample' => [
],
'assistant_id' => 123,
'confirm_side_effects' => true
]),
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://app.famulor.de/api/user/automate/flows/{id}"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"enabled\": true,\n \"flow\": {},\n \"sample\": {},\n \"assistant_id\": 123,\n \"confirm_side_effects\": true\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))
}{
"data": {
"id": "f4EaLhOW2zoEsXXSOJP2r",
"name": "Order lookup v2",
"status": "disabled",
"updated": true
}
}
{
"automation_id": "f4EaLhOW2zoEsXXSOJP2r",
"status": "active",
"test": {
"run_status": "SUCCEEDED",
"steps": []
},
"response": null,
"binding": null
}
{
"message": "Automation not found"
}
Dieser Endpunkt hat zwei Modi:
Ein Request ohne
- Umbenennen / Umschalten — mit
nameund/oderenableddie Automation umbenennen oder ein-/ausschalten. - Reparieren — mit einer korrigierten
flow-Definition wird die Automation an Ort und Stelle neu gebaut, mit einem echten Lauf erneut getestet und nur bei bestandenem Test wieder aktiviert. Nutze das nach der Diagnose mit Automation abrufen und Runs auflisten.
Eine Reparatur-Definition ersetzt die gesamte Automation — sie wird nie gemerged. Lies zuerst die aktuelle Definition und sende die komplette Kette zurück, inklusive aller Steps, die bleiben sollen; weggelassene Steps werden gelöscht. Der Reparatur-Testlauf führt die Automation echt aus — daher ist
confirm_side_effects: true erneut nötig, wenn die korrigierte Definition sendende Steps enthält.Path Parameters
string
erforderlich
Die ID der Automation (aus Automationen auflisten)
Request Body
string
Ein neuer Name für die Automation (max. 255 Zeichen). Im Reparatur-Modus bleibt der aktuelle Name erhalten, wenn weggelassen.
boolean
true zum Einschalten, false zum Ausschaltenobject
Reparatur-Modus: die korrigierte vollständige Definition im gleichen Format wie Automation erstellen (
{"trigger": {...}, "steps": [...]}). Max. 1 MB.object
Sample-Payload für den Reparatur-Testlauf (bei Assistant-Events wird bei Weglassen das kanonische Sample verwendet). Max. 256 KB.
integer
Bei Reparaturen von Assistant-Event-Automationen: der Assistant, an den (erneut) gebunden wird. Meist bereits im Trigger der Definition enthalten.
boolean
Pflicht (
true), wenn die korrigierte Definition Steps enthält, die Nachrichten oder E-Mails senden, Anrufe starten oder Non-GET-HTTP-Requests machenname, enabled oder flow liefert 422 und verlangt mindestens eines davon.
Response — Umbenennen / Umschalten
object
Response — Reparatur
Dieselbe Envelope wie Automation erstellen (automation_id, status, test, response, binding), ohne webhook_url — eine reparierte Automation behält ihre ursprüngliche Webhook-URL. Mit HTTP 200; status ist active, active_untested oder test_failed. Schlägt der Reparatur-Test fehl, bleibt die Automation deaktiviert; eine vor dem Testlauf abgelehnte Reparatur (z. B. no_steps) lässt die bestehende Automation unberührt.
Eine fehlende Automation — oder eine, die nicht zu deinem Account gehört — liefert 404 mit {"message": "Automation not found"}.
{
"data": {
"id": "f4EaLhOW2zoEsXXSOJP2r",
"name": "Order lookup v2",
"status": "disabled",
"updated": true
}
}
{
"automation_id": "f4EaLhOW2zoEsXXSOJP2r",
"status": "active",
"test": {
"run_status": "SUCCEEDED",
"steps": []
},
"response": null,
"binding": null
}
{
"message": "Automation not found"
}
Verwandte Seiten: Automation abrufen, Vorherige Version wiederherstellen und Authentifizierung.
⌘I