Skip to content
Tools

update_automation

Connect in ChatGPT

Change what an automation clips, where and when it posts, or whether it holds clips for approval. Posting fields replace the old ones together (accounts, times and timezone). Only after the user has said yes to exactly this.

Access token · publish · Changes account data

Parameters

automationId string required

The automation's id (from list_automations).

View schema
automationId schema
{
  "description": "The automation's id (from list_automations).",
  "type": "string",
  "format": "uuid",
  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000)$"
}
clip_length string optional

How long each clip runs: auto, 15-30, 30-60 (default), 60-90 or 90-180 seconds (Twitch: up to 30-60).

View schema
clip_length schema
{
  "description": "How long each clip runs: auto, 15-30, 30-60 (default), 60-90 or 90-180 seconds (Twitch: up to 30-60).",
  "type": "string",
  "enum": [
    "auto",
    "15-30",
    "30-60",
    "60-90",
    "90-180"
  ]
}
focus string optional

What to favor: auto (default), high-retention, story, insight, emotional, funny, controversial, quotes or product.

View schema
focus schema
{
  "description": "What to favor: auto (default), high-retention, story, insight, emotional, funny, controversial, quotes or product.",
  "type": "string",
  "enum": [
    "auto",
    "high-retention",
    "story",
    "insight",
    "emotional",
    "funny",
    "controversial",
    "quotes",
    "product"
  ]
}
find string optional

Optional: what to look for in each video, in plain words.

View schema
find schema
{
  "description": "Optional: what to look for in each video, in plain words.",
  "type": "string",
  "maxLength": 500
}
max_clips integer optional

Clips posted per video or stream, best first (default 3).

View schema
max_clips schema
{
  "description": "Clips posted per video or stream, best first (default 3).",
  "type": "integer",
  "minimum": 1,
  "maximum": 10
}
min_score integer optional

Only clips scoring at least this, 0-100 (default 65). YouTube only: a Twitch stream's moments are its viewers' and markers' picks.

View schema
min_score schema
{
  "description": "Only clips scoring at least this, 0-100 (default 65). YouTube only: a Twitch stream's moments are its viewers' and markers' picks.",
  "type": "integer",
  "minimum": 0,
  "maximum": 100
}
replays boolean optional

YouTube only: also clip the replays of the channel's live streams, once YouTube has finished them. A stream is hours long and costs Clips minutes for its length (the first two hours), so leave it off for a channel that streams every day unless that is wanted.

View schema
replays schema
{
  "description": "YouTube only: also clip the replays of the channel's live streams, once YouTube has finished them. A stream is hours long and costs Clips minutes for its length (the first two hours), so leave it off for a channel that streams every day unless that is wanted.",
  "type": "boolean"
}
live boolean optional

Twitch only: also take the streamer's own clips, and viewers' clips that have proved themselves, while the stream is still on, instead of only after it ends. They count toward max_clips. The first stream clipped this way holds every clip for approval.

View schema
live schema
{
  "description": "Twitch only: also take the streamer's own clips, and viewers' clips that have proved themselves, while the stream is still on, instead of only after it ends. They count toward max_clips. The first stream clipped this way holds every clip for approval.",
  "type": "boolean"
}
accounts array optional

Where to post, by network as list_connected_accounts names it ("x", "instagram", "youtube-shorts", "linkedin"...), or "network@accountId" when a network has several accounts. TikTok only with mode "approve".

View schema
accounts schema
{
  "description": "Where to post, by network as list_connected_accounts names it (\"x\", \"instagram\", \"youtube-shorts\", \"linkedin\"...), or \"network@accountId\" when a network has several accounts. TikTok only with mode \"approve\".",
  "minItems": 1,
  "maxItems": 10,
  "type": "array",
  "items": {
    "examples": [
      "x",
      "instagram"
    ],
    "type": "string",
    "minLength": 1,
    "maxLength": 260
  }
}
times array optional

Posting times as 24-hour "HH:MM" in the timezone. One clip goes out at each time, the next free one first.

View schema
times schema
{
  "description": "Posting times as 24-hour \"HH:MM\" in the timezone. One clip goes out at each time, the next free one first.",
  "minItems": 1,
  "maxItems": 12,
  "type": "array",
  "items": {
    "examples": [
      "09:00",
      "18:30"
    ],
    "type": "string",
    "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
  }
}
timezone string optional

An IANA timezone, e.g. "America/Los_Angeles".

View schema
timezone schema
{
  "examples": [
    "America/Los_Angeles"
  ],
  "description": "An IANA timezone, e.g. \"America/Los_Angeles\".",
  "type": "string",
  "minLength": 1,
  "maxLength": 100
}
youtube_made_for_kids boolean optional

Required when posting to YouTube: whether the videos are made for kids.

View schema
youtube_made_for_kids schema
{
  "description": "Required when posting to YouTube: whether the videos are made for kids.",
  "type": "boolean"
}
youtube_visibility string optional

YouTube visibility (default private).

View schema
youtube_visibility schema
{
  "description": "YouTube visibility (default private).",
  "type": "string",
  "enum": [
    "public",
    "unlisted",
    "private"
  ]
}
pinterest_board string optional

Required when posting to Pinterest: the board id.

View schema
pinterest_board schema
{
  "description": "Required when posting to Pinterest: the board id.",
  "type": "string",
  "pattern": "^\\d{1,30}$"
}
mode string optional

"approve" (default) holds each clip until the user approves it in Heavenly; "auto" posts at the next free time.

View schema
mode schema
{
  "description": "\"approve\" (default) holds each clip until the user approves it in Heavenly; \"auto\" posts at the next free time.",
  "type": "string",
  "enum": [
    "auto",
    "approve"
  ]
}
confirm boolean required

Must be true, and only after the user has approved exactly what you show them.

View schema
confirm schema
{
  "description": "Must be true, and only after the user has approved exactly what you show them.",
  "type": "boolean",
  "const": true
}

Request example

Tool request · example
{
  "name": "update_automation",
  "arguments": {
    "automationId": "00000000-0000-4000-8000-000000000001",
    "confirm": true
  }
}

Replace example values with ids and arguments read from your own Heavenly account. This example does not execute a tool.

Returns

The tool result from Heavenly’s workspace, encoded as MCP text content. The connector returns isError when an argument, permission, plan or account check fails.

Account access and permissions are checked by Heavenly. See errors for failure handling.