Docs
API reference

Workflows

Download spec

List workflows

GET
/workflows

Authorization

apiKey
headerAuthorizationBearer <token>

An API key from Settings → Developers → API keys.

Response Body

Success. Writes without read permission return an ID and revision only.

application/json
  1. response
workflows*array<>
webhooks*array<>

Where the workflows' Send webhook actions send, by webhookId.

Example Request
curl -X GET 'https://app.italic.com/api/v2/workflows'
Example Response
{
  "workflows": [
    {
      "id": "string",
      "name": "string",
      "enabled": true,
      "trigger": {
        "type": "recording",
        "phrases": [
          "string"
        ],
        "match": "anywhere",
        "input": "hold",
        "kind": "clip"
      },
      "actions": [
        {
          "id": "string",
          "type": "ai",
          "approval": "ask"
        }
      ],
      "createdAt": 0,
      "updatedAt": 0
    }
  ],
  "webhooks": [
    {
      "id": "string",
      "url": "string"
    }
  ]
}

Create a workflow

POST
/workflows

Authorization

apiKey
headerAuthorizationBearer <token>

An API key from Settings → Developers → API keys.

Header Parameters

Idempotency-Key*string

Reuse the same key and body when retrying; the retry returns the first result with replayed: true. Keys are kept for 24 hours.

Length1 <= length <= 128

Request Body

application/json
  1. body
name*string
Length1 <= length <= 60
enabled?boolean

Defaults to true.

trigger*

Which new recordings start the workflow. Every condition given must match.

actions*array<>
Items1 <= items <= 8

Response Body

Success. Writes without read permission return an ID and revision only.

application/json
  1. response
workflow*
secrets?array<>

Signing secrets of webhooks this request added, shown once.

replayed?boolean
Example Request
curl -X POST 'https://app.italic.com/api/v2/workflows' \
  -H 'Idempotency-Key: string' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "trigger": {
    "type": "recording"
  },
  "actions": [
    {
      "id": "string",
      "type": "ai"
    }
  ]
}'
Example Response
{
  "workflow": {
    "id": "string",
    "name": "string",
    "enabled": true,
    "trigger": {
      "type": "recording",
      "phrases": [
        "string"
      ],
      "match": "anywhere",
      "input": "hold",
      "kind": "clip"
    },
    "actions": [
      {
        "id": "string",
        "type": "ai",
        "approval": "ask"
      }
    ],
    "createdAt": 0,
    "updatedAt": 0
  },
  "secrets": [
    {
      "actionIndex": 0,
      "url": "string",
      "secret": "string"
    }
  ],
  "replayed": true
}

Get a workflow

GET
/workflows/{id}

Authorization

apiKey
headerAuthorizationBearer <token>

An API key from Settings → Developers → API keys.

Path Parameters

id*string
Match^[A-Za-z0-9][A-Za-z0-9._:-]*$
Length1 <= length <= 256

Response Body

Success. Writes without read permission return an ID and revision only.

application/json
  1. response
workflow*
secrets?array<>

Signing secrets of webhooks this request added, shown once.

replayed?boolean
Example Request
curl -X GET 'https://app.italic.com/api/v2/workflows/string'
Example Response
{
  "workflow": {
    "id": "string",
    "name": "string",
    "enabled": true,
    "trigger": {
      "type": "recording",
      "phrases": [
        "string"
      ],
      "match": "anywhere",
      "input": "hold",
      "kind": "clip"
    },
    "actions": [
      {
        "id": "string",
        "type": "ai",
        "approval": "ask"
      }
    ],
    "createdAt": 0,
    "updatedAt": 0
  },
  "secrets": [
    {
      "actionIndex": 0,
      "url": "string",
      "secret": "string"
    }
  ],
  "replayed": true
}
PATCH
/workflows/{id}

Authorization

apiKey
headerAuthorizationBearer <token>

An API key from Settings → Developers → API keys.

Path Parameters

id*string
Match^[A-Za-z0-9][A-Za-z0-9._:-]*$
Length1 <= length <= 256

Request Body

application/json
  1. body
enabled*boolean

Response Body

Success. Writes without read permission return an ID and revision only.

application/json
  1. response
workflow*
secrets?array<>

Signing secrets of webhooks this request added, shown once.

replayed?boolean
Example Request
curl -X PATCH 'https://app.italic.com/api/v2/workflows/string' \
  -H 'Content-Type: application/json' \
  -d '{
  "enabled": true
}'
Example Response
{
  "workflow": {
    "id": "string",
    "name": "string",
    "enabled": true,
    "trigger": {
      "type": "recording",
      "phrases": [
        "string"
      ],
      "match": "anywhere",
      "input": "hold",
      "kind": "clip"
    },
    "actions": [
      {
        "id": "string",
        "type": "ai",
        "approval": "ask"
      }
    ],
    "createdAt": 0,
    "updatedAt": 0
  },
  "secrets": [
    {
      "actionIndex": 0,
      "url": "string",
      "secret": "string"
    }
  ],
  "replayed": true
}

Delete a workflow

DELETE
/workflows/{id}

Authorization

apiKey
headerAuthorizationBearer <token>

An API key from Settings → Developers → API keys.

Path Parameters

id*string
Match^[A-Za-z0-9][A-Za-z0-9._:-]*$
Length1 <= length <= 256

Response Body

Success. Writes without read permission return an ID and revision only.

application/json
  1. response
id*string
Match^[A-Za-z0-9][A-Za-z0-9._:-]*$
Length1 <= length <= 256
deleted*boolean
Example Request
curl -X DELETE 'https://app.italic.com/api/v2/workflows/string'
Example Response
{
  "id": "string",
  "deleted": true
}

Replace a workflow

PUT
/workflows/{id}

Authorization

apiKey
headerAuthorizationBearer <token>

An API key from Settings → Developers → API keys.

Path Parameters

id*string
Match^[A-Za-z0-9][A-Za-z0-9._:-]*$
Length1 <= length <= 256

Request Body

application/json
  1. body
name*string
Length1 <= length <= 60
enabled?boolean

Defaults to true.

trigger*

Which new recordings start the workflow. Every condition given must match.

actions*array<>
Items1 <= items <= 8

Response Body

Success. Writes without read permission return an ID and revision only.

application/json
  1. response
workflow*
secrets?array<>

Signing secrets of webhooks this request added, shown once.

replayed?boolean
Example Request
curl -X PUT 'https://app.italic.com/api/v2/workflows/string' \
  -H 'Content-Type: application/json' \
  -d '{
  "name": "string",
  "trigger": {
    "type": "recording"
  },
  "actions": [
    {
      "id": "string",
      "type": "ai"
    }
  ]
}'
Example Response
{
  "workflow": {
    "id": "string",
    "name": "string",
    "enabled": true,
    "trigger": {
      "type": "recording",
      "phrases": [
        "string"
      ],
      "match": "anywhere",
      "input": "hold",
      "kind": "clip"
    },
    "actions": [
      {
        "id": "string",
        "type": "ai",
        "approval": "ask"
      }
    ],
    "createdAt": 0,
    "updatedAt": 0
  },
  "secrets": [
    {
      "actionIndex": 0,
      "url": "string",
      "secret": "string"
    }
  ],
  "replayed": true
}