Create templates.
ROLES: AUTOMATION_ADMIN USER: true SERVICE ACCOUNT: true
curl --request POST \
--url https://api.revoengine.com/api/v1/automation/template \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Nightly sync",
"componentId": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Nightly sync', componentId: 'bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb'})
};
fetch('https://api.revoengine.com/api/v1/automation/template', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revoengine.com/api/v1/automation/template"
payload = {
"name": "Nightly sync",
"componentId": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)Authorizations
Bearer JWT token or API Key (sk-*).
Body
Globally unique job-template name within the instance. Check for an existing template with this exact name before creation; direct triggers may also resolve the template by name.
"Nightly sync"
Component identifier executed by this job template.
"bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb"
Saved Job execution policy. Omit or clear to inherit instance defaults. A conflicting legacy triggerUser is rejected.
Show child attributes
Show child attributes
{
"mode": "SERVICE_ACCOUNT",
"serviceAccountUserId": "00000000-0000-0000-0000-000000000000"
}
Optional presentation category used to group templates.
"Operations"
Operator-visible job template description.
"Runs the nightly data synchronization pipeline."
Optional resource metadata. Values may use any JSON type. Maximum 16 KiB and 64 top-level keys. Top-level keys starting with "__" are reserved for backend use.
{ "costCenter": "ops" }
Portable exact component revision identity. Omit it to follow the latest active revision.
"v1:sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef"
Job execution timeout in seconds. The effective limit comes from the instance jobTimeout quota, up to 3540 seconds (59 minutes).
1 <= x <= 3540300
Deprecated execution-principal alias. Prefer executionPolicy. Existing bindings remain supported; conflicting values are rejected.
"cccccccc-cccc-4ccc-8ccc-cccccccccccc"
Execution options. Custom low-code template values live under "input".
Show child attributes
Show child attributes
{
"input": { "region": "eu", "mode": "incremental" },
"hideRequest": true,
"memory": 512,
"concurrency": {
"key": "nightly_sync",
"limit": 3,
"ttl": 120
}
}
Deprecated legacy template inputs. Use options.input. Must be a JSON object; null is stored as an empty object.
{ "region": "eu", "mode": "incremental" }
Response
Job scheduled.
curl --request POST \
--url https://api.revoengine.com/api/v1/automation/template \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "Nightly sync",
"componentId": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({name: 'Nightly sync', componentId: 'bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb'})
};
fetch('https://api.revoengine.com/api/v1/automation/template', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.revoengine.com/api/v1/automation/template"
payload = {
"name": "Nightly sync",
"componentId": "bbbbbbbb-bbbb-4bbb-8bbb-bbbbbbbbbbbb"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
