Update automation
Delegates to AgentWorkflowService.updateInternal — runs syncJobrunrState to register/update/cancel the recurring job based on the new state.
curl --request PATCH \
--url https://api.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId} \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"description": "Runs every morning and emails the invoice digest.",
"name": "Daily invoice summary",
"prompt": "Summarize the invoices created in the last 24 hours and send the digest.",
"schedule": "@daily",
"timezone": "America/Sao_Paulo",
"triggerConfig": {},
"triggerSlug": "GMAIL_NEW_EMAIL",
"triggerToolkitSlug": "gmail"
}
'import requests
url = "https://api.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId}"
payload = {
"description": "Runs every morning and emails the invoice digest.",
"name": "Daily invoice summary",
"prompt": "Summarize the invoices created in the last 24 hours and send the digest.",
"schedule": "@daily",
"timezone": "America/Sao_Paulo",
"triggerConfig": {},
"triggerSlug": "GMAIL_NEW_EMAIL",
"triggerToolkitSlug": "gmail"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: 'Runs every morning and emails the invoice digest.',
name: 'Daily invoice summary',
prompt: 'Summarize the invoices created in the last 24 hours and send the digest.',
schedule: '@daily',
timezone: 'America/Sao_Paulo',
triggerConfig: {},
triggerSlug: 'GMAIL_NEW_EMAIL',
triggerToolkitSlug: 'gmail'
})
};
fetch('https://api.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId}', 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.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'description' => 'Runs every morning and emails the invoice digest.',
'name' => 'Daily invoice summary',
'prompt' => 'Summarize the invoices created in the last 24 hours and send the digest.',
'schedule' => '@daily',
'timezone' => 'America/Sao_Paulo',
'triggerConfig' => [
],
'triggerSlug' => 'GMAIL_NEW_EMAIL',
'triggerToolkitSlug' => 'gmail'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$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.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId}"
payload := strings.NewReader("{\n \"description\": \"Runs every morning and emails the invoice digest.\",\n \"name\": \"Daily invoice summary\",\n \"prompt\": \"Summarize the invoices created in the last 24 hours and send the digest.\",\n \"schedule\": \"@daily\",\n \"timezone\": \"America/Sao_Paulo\",\n \"triggerConfig\": {},\n \"triggerSlug\": \"GMAIL_NEW_EMAIL\",\n \"triggerToolkitSlug\": \"gmail\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
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.patch("https://api.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId}")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Runs every morning and emails the invoice digest.\",\n \"name\": \"Daily invoice summary\",\n \"prompt\": \"Summarize the invoices created in the last 24 hours and send the digest.\",\n \"schedule\": \"@daily\",\n \"timezone\": \"America/Sao_Paulo\",\n \"triggerConfig\": {},\n \"triggerSlug\": \"GMAIL_NEW_EMAIL\",\n \"triggerToolkitSlug\": \"gmail\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"Runs every morning and emails the invoice digest.\",\n \"name\": \"Daily invoice summary\",\n \"prompt\": \"Summarize the invoices created in the last 24 hours and send the digest.\",\n \"schedule\": \"@daily\",\n \"timezone\": \"America/Sao_Paulo\",\n \"triggerConfig\": {},\n \"triggerSlug\": \"GMAIL_NEW_EMAIL\",\n \"triggerToolkitSlug\": \"gmail\"\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"lastRunStatus": "<string>",
"name": "<string>",
"nextRunAt": "2023-11-07T05:31:56Z",
"prompt": "<string>",
"publicId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"schedule": "<string>",
"timezone": "<string>",
"triggerConfig": {},
"triggerSlug": "<string>",
"triggerToolkitSlug": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"lastRunStatus": "<string>",
"name": "<string>",
"nextRunAt": "2023-11-07T05:31:56Z",
"prompt": "<string>",
"publicId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"schedule": "<string>",
"timezone": "<string>",
"triggerConfig": {},
"triggerSlug": "<string>",
"triggerToolkitSlug": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"lastRunStatus": "<string>",
"name": "<string>",
"nextRunAt": "2023-11-07T05:31:56Z",
"prompt": "<string>",
"publicId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"schedule": "<string>",
"timezone": "<string>",
"triggerConfig": {},
"triggerSlug": "<string>",
"triggerToolkitSlug": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"lastRunStatus": "<string>",
"name": "<string>",
"nextRunAt": "2023-11-07T05:31:56Z",
"prompt": "<string>",
"publicId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"schedule": "<string>",
"timezone": "<string>",
"triggerConfig": {},
"triggerSlug": "<string>",
"triggerToolkitSlug": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"lastRunStatus": "<string>",
"name": "<string>",
"nextRunAt": "2023-11-07T05:31:56Z",
"prompt": "<string>",
"publicId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"schedule": "<string>",
"timezone": "<string>",
"triggerConfig": {},
"triggerSlug": "<string>",
"triggerToolkitSlug": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}Autorizações
Parâmetros de caminho
Corpo
Body for updating an existing automation. All fields are optional; only provided fields are updated.
New short description shown in the automation list.
500"Runs every morning and emails the invoice digest."
New human-in-the-loop approval mode for this automation.
auto_approve, pause_on_approval New display name of the automation.
150"Daily invoice summary"
New prompt executed by the automation when triggered.
10000"Summarize the invoices created in the last 24 hours and send the digest."
New cron expression for scheduled triggerMode.
100"@daily"
New status of the automation (active, paused, etc.).
active, inactive New IANA timezone in which the schedule cron should be interpreted.
50"America/Sao_Paulo"
New trigger-specific configuration object. Shape depends on the triggerSlug.
Show child attributes
Show child attributes
New trigger mode (e.g. schedule, manual, external event).
manual, schedule, webhook, webhook_url New trigger slug within the toolkit.
200"GMAIL_NEW_EMAIL"
New Composio toolkit slug used to source the trigger.
100"gmail"
Resposta
OK
Scheduled / trigger-based agent automation.
auto_approve, pause_on_approval active, inactive Show child attributes
Show child attributes
manual, schedule, webhook, webhook_url Esta página foi útil?
curl --request PATCH \
--url https://api.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId} \
--header 'Content-Type: application/json' \
--header 'X-Api-Key: <api-key>' \
--data '
{
"description": "Runs every morning and emails the invoice digest.",
"name": "Daily invoice summary",
"prompt": "Summarize the invoices created in the last 24 hours and send the digest.",
"schedule": "@daily",
"timezone": "America/Sao_Paulo",
"triggerConfig": {},
"triggerSlug": "GMAIL_NEW_EMAIL",
"triggerToolkitSlug": "gmail"
}
'import requests
url = "https://api.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId}"
payload = {
"description": "Runs every morning and emails the invoice digest.",
"name": "Daily invoice summary",
"prompt": "Summarize the invoices created in the last 24 hours and send the digest.",
"schedule": "@daily",
"timezone": "America/Sao_Paulo",
"triggerConfig": {},
"triggerSlug": "GMAIL_NEW_EMAIL",
"triggerToolkitSlug": "gmail"
}
headers = {
"X-Api-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-Api-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
description: 'Runs every morning and emails the invoice digest.',
name: 'Daily invoice summary',
prompt: 'Summarize the invoices created in the last 24 hours and send the digest.',
schedule: '@daily',
timezone: 'America/Sao_Paulo',
triggerConfig: {},
triggerSlug: 'GMAIL_NEW_EMAIL',
triggerToolkitSlug: 'gmail'
})
};
fetch('https://api.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId}', 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.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'description' => 'Runs every morning and emails the invoice digest.',
'name' => 'Daily invoice summary',
'prompt' => 'Summarize the invoices created in the last 24 hours and send the digest.',
'schedule' => '@daily',
'timezone' => 'America/Sao_Paulo',
'triggerConfig' => [
],
'triggerSlug' => 'GMAIL_NEW_EMAIL',
'triggerToolkitSlug' => 'gmail'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-Api-Key: <api-key>"
],
]);
$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.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId}"
payload := strings.NewReader("{\n \"description\": \"Runs every morning and emails the invoice digest.\",\n \"name\": \"Daily invoice summary\",\n \"prompt\": \"Summarize the invoices created in the last 24 hours and send the digest.\",\n \"schedule\": \"@daily\",\n \"timezone\": \"America/Sao_Paulo\",\n \"triggerConfig\": {},\n \"triggerSlug\": \"GMAIL_NEW_EMAIL\",\n \"triggerToolkitSlug\": \"gmail\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-Api-Key", "<api-key>")
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.patch("https://api.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId}")
.header("X-Api-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"description\": \"Runs every morning and emails the invoice digest.\",\n \"name\": \"Daily invoice summary\",\n \"prompt\": \"Summarize the invoices created in the last 24 hours and send the digest.\",\n \"schedule\": \"@daily\",\n \"timezone\": \"America/Sao_Paulo\",\n \"triggerConfig\": {},\n \"triggerSlug\": \"GMAIL_NEW_EMAIL\",\n \"triggerToolkitSlug\": \"gmail\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gennia.ai/public/api/v1/agents/{agentPublicId}/automations/{automationPublicId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-Api-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"description\": \"Runs every morning and emails the invoice digest.\",\n \"name\": \"Daily invoice summary\",\n \"prompt\": \"Summarize the invoices created in the last 24 hours and send the digest.\",\n \"schedule\": \"@daily\",\n \"timezone\": \"America/Sao_Paulo\",\n \"triggerConfig\": {},\n \"triggerSlug\": \"GMAIL_NEW_EMAIL\",\n \"triggerToolkitSlug\": \"gmail\"\n}"
response = http.request(request)
puts response.read_body{
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"lastRunStatus": "<string>",
"name": "<string>",
"nextRunAt": "2023-11-07T05:31:56Z",
"prompt": "<string>",
"publicId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"schedule": "<string>",
"timezone": "<string>",
"triggerConfig": {},
"triggerSlug": "<string>",
"triggerToolkitSlug": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"lastRunStatus": "<string>",
"name": "<string>",
"nextRunAt": "2023-11-07T05:31:56Z",
"prompt": "<string>",
"publicId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"schedule": "<string>",
"timezone": "<string>",
"triggerConfig": {},
"triggerSlug": "<string>",
"triggerToolkitSlug": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"lastRunStatus": "<string>",
"name": "<string>",
"nextRunAt": "2023-11-07T05:31:56Z",
"prompt": "<string>",
"publicId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"schedule": "<string>",
"timezone": "<string>",
"triggerConfig": {},
"triggerSlug": "<string>",
"triggerToolkitSlug": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"lastRunStatus": "<string>",
"name": "<string>",
"nextRunAt": "2023-11-07T05:31:56Z",
"prompt": "<string>",
"publicId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"schedule": "<string>",
"timezone": "<string>",
"triggerConfig": {},
"triggerSlug": "<string>",
"triggerToolkitSlug": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}{
"createdAt": "2023-11-07T05:31:56Z",
"description": "<string>",
"lastRunAt": "2023-11-07T05:31:56Z",
"lastRunStatus": "<string>",
"name": "<string>",
"nextRunAt": "2023-11-07T05:31:56Z",
"prompt": "<string>",
"publicId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"schedule": "<string>",
"timezone": "<string>",
"triggerConfig": {},
"triggerSlug": "<string>",
"triggerToolkitSlug": "<string>",
"updatedAt": "2023-11-07T05:31:56Z"
}
