Skip to content

Create an automation definition

POST
/automation-definitions
curl --request POST \
--url https://api.de.teamgrid.app/v1/automation-definitions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Idempotency-Key: example' \
--data '{ "description": "example", "flow": [ { "actionId": "automationTask", "branches": [ { "flow": [], "key": "example" } ], "config": [ { "key": "example", "value": "example" } ], "input": [ { "key": "example", "value": "example" } ], "output": [ { "key": "example", "value": "example" } ] } ], "name": "example", "trigger": { "data": { "type": "projects" }, "event": "change" } }'
Idempotency-Key
required
string
>= 1 characters <= 128 characters /^[!-~]+$/

Unique request key retained for seven days. Within that window, reuse with different data is rejected.

Media typeapplication/json
object
description
string
<= 5000 characters
flow
required
Array<object>
<= 100 items
object
actionId
required
string
Allowed values: automationTask condition createDate forEach formatDate listCreate listEdit loop loopBreak loopContinue projectCreate projectEdit projectStatementCreate projectStatementEdit serviceCreate serviceEdit setAutomationStatus setVariable stopCurrentAutomation taskCreate taskEdit timeentryCreate timeentryEdit waitFor waitForCustomFieldChange waitForProjectChange waitForTaskChange waitForTaskCompletion waitUntil
branches
Array<object>
<= 10 items
object
flow
required
Array<object> recursive
key
required
string
>= 1 characters <= 128 characters /^[A-Za-z0-9_.:-]+$/
config
Array<object>
<= 50 items
object
key
required
string
>= 1 characters <= 128 characters /^[A-Za-z0-9_.:-]+$/
value
required
string
<= 16384 characters
input
Array<object>
<= 50 items
object
key
required
string
>= 1 characters <= 128 characters /^[A-Za-z0-9_.:-]+$/
value
required
string
<= 16384 characters
output
Array<object>
<= 50 items
object
key
required
string
>= 1 characters <= 128 characters /^[A-Za-z0-9_.:-]+$/
value
required
string
<= 16384 characters
name
required
string
>= 1 characters <= 200 characters
trigger
required
object
data
required
object
type
required
string
Allowed values: projects tasks
event
required
string
Allowed values: change create

A newly created resource.

Media typeapplication/json
object
data
required
object
attributes
required
object
archived
required
boolean
createdAt
string format: date-time
description
required
string
<= 5000 characters
editable
required
boolean
flow
required
Array<object>
<= 100 items
object
actionId
required
string
>= 1 characters <= 128 characters
branches
Array<object>
<= 10 items
object
flow
required
Array<object> recursive
key
required
string
>= 1 characters <= 128 characters /^[A-Za-z0-9_.:-]+$/
config
Array<object>
<= 50 items
object
key
required
string
>= 1 characters <= 128 characters
redacted
boolean
value
string
<= 16384 characters
input
Array<object>
<= 50 items
object
key
required
string
>= 1 characters <= 128 characters
redacted
boolean
value
string
<= 16384 characters
output
Array<object>
<= 50 items
object
key
required
string
>= 1 characters <= 128 characters
redacted
boolean
value
string
<= 16384 characters
restricted
boolean
name
required
string
<= 200 characters
replayed
boolean
revision
required
string
/^aut1-[a-f0-9]{64}$/
trigger
required
object
data
object
type
required
string
Allowed values: projects tasks
event
string
Allowed values: change create
restricted
boolean
updatedAt
string format: date-time
id
required
string
type
required
Allowed value: automationDefinition
meta
required
object
requestId
required
string
Example
{
"data": {
"attributes": {
"flow": [
{
"config": [
{
"redacted": true
}
],
"input": [
{
"redacted": true
}
],
"output": [
{
"redacted": true
}
],
"restricted": true
}
],
"trigger": {
"data": {
"type": "projects"
},
"event": "change",
"restricted": true
}
},
"type": "automationDefinition"
}
}
Idempotency-Replayed
string
Allowed values: false
ETag
required
string
/^"aut1-[a-f0-9]{64}"$/

Strong automation-definition revision.

Cache-Control
required
string
Allowed value: private, no-store, no-transform

Prevents shared caching and representation transformations so the strong revision validator remains byte-for-byte usable for conditional requests.

The request is invalid.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}

The bearer credential is missing, invalid, expired, or revoked.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}

The credential has insufficient scope.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}

The request conflicts with the current resource state.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}

The credential or source exceeded its rate limit.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}
Retry-After
integer
>= 1

Minimum delay in seconds before retrying.

X-RateLimit-Limit
integer

Maximum requests in the current window.

X-RateLimit-Remaining
integer

Requests remaining in the current window.

X-RateLimit-Reset
integer

Unix time in milliseconds when the current window resets.

X-Request-Id
string

Request correlation identifier.

The cell-local application returned an invalid response.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}

A required cell-local dependency is unavailable.

Media typeapplication/json
object
errors
required
Array<object>
object
code
required
string
detail
required
string
source
object
key
additional properties
string
status
required
string
/^[1-5][0-9]{2}$/
title
required
string
meta
required
object
requestId
required
string
Examplegenerated
{
"errors": [
{
"code": "example",
"detail": "example",
"source": {
"additionalProperty": "example"
},
"status": "example",
"title": "example"
}
],
"meta": {
"requestId": "example"
}
}