twitch / action / schema v1
Twitch Action
Perform any Twitch action: send chat, moderate, update stream, create clips
Prerequisites
- Add the twitch plugin inside this workflow.
- Connect and authorize a twitch account before running this node.
Parameters
| Parameter | Type | Description |
|---|---|---|
Action TypeactionType | select Required | What this node does on your Twitch channel. The fields below adapt to your choice. Start with "Send Chat Message" if you are unsure. Options: Send Chat Message (send_chat), Send Announcement (send_announcement), Timeout User (timeout_user), Ban User (ban_user), Unban User (unban_user), Clear Chat (clear_chat), Update Stream Info (update_title), Create Clip (create_clip), Send Shoutout (send_shoutout), Update Redemption Status (update_redemption_status), Update Chat Settings (update_chat_settings), Get Chat Settings (get_chat_settings), Get Stream Info (get_stream_info), Get Followers (get_followers), Get Chatters (get_chatters), Start Raid (start_raid), Cancel Raid (cancel_raid), Create Poll (create_poll), End Poll (end_poll), Create Prediction (create_prediction), End Prediction (end_prediction), Create Channel Point Reward (create_reward), Update Channel Point Reward (update_reward), Delete Channel Point Reward (delete_reward), List Channel Point Rewards (list_rewards), List Reward Redemptions (list_redemptions), Get Channel Info (get_channel_info), Start Commercial (start_commercial), Get Ad Schedule (get_ad_schedule), Snooze Next Ad (snooze_next_ad) |
Channelchannel | twitch_self Required | Uses your connected Twitch account. Get Channel Info can read another channel when you choose a target below. |
Messagemessage | textarea Conditionally required Default: | The text posted in your Twitch chat. Variables work: e.g. {{username}} for who triggered the workflow.Field conditions{
"visible": {
"key": "actionType",
"values": [
"send_chat",
"send_announcement"
]
},
"required": {
"key": "actionType",
"values": [
"send_chat",
"send_announcement"
]
}
} |
Reply-to Message IDreplyTo | text Optional | Optional. Post as a threaded reply to a specific chat message, usually {{message_id}} from a Chat Message trigger. Empty = a normal chat message.Field conditions{
"visible": {
"key": "actionType",
"values": [
"send_chat"
]
}
} |
Announcement Colorcolor | select Optional | Options: Primary (Blue) (primary), Blue (blue), Green (green), Orange (orange), Purple (purple) Field conditions{
"visible": {
"key": "actionType",
"values": [
"send_announcement"
]
}
} |
User IDuserId | text Conditionally required | Choose the viewer this action should affect. For Get Followers, leave empty to list followers or choose a viewer to check whether they follow. A missing target never falls back to the event author.Field conditions{
"visible": {
"key": "actionType",
"values": [
"timeout_user",
"ban_user",
"unban_user",
"get_followers"
]
},
"required": {
"key": "actionType",
"values": [
"timeout_user",
"ban_user",
"unban_user"
]
}
} |
Duration (seconds)durationSeconds | text Optional | How long the timeout lasts, in seconds (e.g. 600 = 10 minutes). Max is 1,209,600 (2 weeks). For a permanent removal, use Ban User instead.Field conditions{
"visible": {
"key": "actionType",
"values": [
"timeout_user"
]
}
} |
Reasonreason | text Optional | Optional note shown to other moderators in the mod logs. The viewer does not see it.Field conditions{
"visible": {
"key": "actionType",
"values": [
"timeout_user",
"ban_user"
]
}
} |
New Titletitle | text Optional | The stream title shown on your channel. Leave empty to keep the current one. Variables work: handy for automating a title when you go live or change games.Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_title"
]
}
} |
Category / gamegameName | text Optional | The category shown on your channel. Type the name exactly as Twitch spells it ("Just Chatting", "Elden Ring"). A numeric category id works too. Leave empty to keep the current category.Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_title"
]
}
} |
Tagstags | tags Optional | Search tags for your stream. Setting this REPLACES the existing tags rather than adding to them; leave it empty to keep them as they are.Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_title"
]
}
} |
Stream languagelanguage | text Optional | A two-letter language code, e.g. "en" or "fr".Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_title"
]
}
} |
Stream delay (seconds)delaySeconds | text Optional | Partner-only. 0 to 900 seconds.Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_title"
]
}
} |
Target Channel (User ID)targetBroadcasterId | text Optional | Choose the channel to shout out, raid, or look up. Insert {{from_broadcaster_id}} to target the broadcaster from a Raid trigger. For Get Channel Info only, leave empty to read your connected channel.Field conditions{
"visible": {
"key": "actionType",
"values": [
"send_shoutout",
"start_raid",
"get_channel_info"
]
}
} |
Emote-only modeemoteMode | select Optional | Only emotes are allowed in chat. Options: Leave unchanged (), On (on), Off (off) Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_chat_settings"
]
}
} |
Followers-only modefollowerMode | select Optional | Only followers can chat. The usual first move against a hate raid. Options: Leave unchanged (), On (on), Off (off) Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_chat_settings"
]
}
} |
Must have followed for (minutes)followerModeDuration | text Optional | Only applies when followers-only is switched On. 0 = any follower.Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_chat_settings"
]
}
} |
Slow modeslowMode | select Optional | Viewers must wait between messages. Options: Leave unchanged (), On (on), Off (off) Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_chat_settings"
]
}
} |
Wait between messages (seconds)slowModeWaitTime | text Optional | Only applies when slow mode is switched On. 3 to 120 seconds.Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_chat_settings"
]
}
} |
Subscribers-only modesubscriberMode | select Optional | Options: Leave unchanged (), On (on), Off (off) Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_chat_settings"
]
}
} |
Unique chat (no repeats)uniqueChatMode | select Optional | Blocks repeated identical messages. Twitch calls this "unique chat". Options: Leave unchanged (), On (on), Off (off) Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_chat_settings"
]
}
} |
How many followersfollowerLimit | text Optional | Twitch returns at most 100 per read. Ignored when you check a single viewer below.Field conditions{
"visible": {
"key": "actionType",
"values": [
"get_followers"
]
}
} |
How many chatterschatterLimit | text Optional | Twitch returns at most 1000 per read.Field conditions{
"visible": {
"key": "actionType",
"values": [
"get_chatters"
]
}
} |
Poll questionpollTitle | text Conditionally required | Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_poll"
]
},
"required": {
"key": "actionType",
"values": [
"create_poll"
]
}
} |
ChoicespollChoices | tags Conditionally required | 2 to 5 choices, one per entry.Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_poll"
]
},
"required": {
"key": "actionType",
"values": [
"create_poll"
]
}
} |
Voting time (seconds)pollDurationSeconds | text Optional | 15 to 1800 seconds. Empty = 120.Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_poll"
]
}
} |
Allow extra votes with channel pointspollPointsVoting | boolean Optional | Viewers can spend channel points to cast additional votes. Leave off for a one-person-one-vote poll.Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_poll"
]
}
} |
Points per extra votepollPointsPerVote | text Optional | Only applies when channel-point voting is on.Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_poll"
]
}
} |
Poll IDpollId | text Conditionally required | The poll to end. Wire {{poll_id}} from the Create Poll action that started it.Field conditions{
"visible": {
"key": "actionType",
"values": [
"end_poll"
]
},
"required": {
"key": "actionType",
"values": [
"end_poll"
]
}
} |
When it endspollEndStatus | select Optional Default: | Options: Close voting and show the result (TERMINATED), Close voting and hide it from viewers (ARCHIVED) Field conditions{
"visible": {
"key": "actionType",
"values": [
"end_poll"
]
}
} |
Prediction questionpredictionTitle | text Conditionally required | Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_prediction"
]
},
"required": {
"key": "actionType",
"values": [
"create_prediction"
]
}
} |
OutcomespredictionOutcomes | tags Conditionally required | 2 to 10 outcomes, one per entry.Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_prediction"
]
},
"required": {
"key": "actionType",
"values": [
"create_prediction"
]
}
} |
Betting time (seconds)predictionWindowSeconds | text Optional | 30 to 1800 seconds. Empty = 120.Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_prediction"
]
}
} |
Prediction IDpredictionId | text Conditionally required | The prediction to end. Wire {{prediction_id}} from the Create Prediction action that started it.Field conditions{
"visible": {
"key": "actionType",
"values": [
"end_prediction"
]
},
"required": {
"key": "actionType",
"values": [
"end_prediction"
]
}
} |
How it endspredictionEndStatus | select Optional Default: | Resolving pays channel points out and cannot be undone. Cancel refunds every viewer who bet. Options: Resolve: pay out the winning outcome (RESOLVED), Lock. Stop new bets, decide later (LOCKED), Cancel: refund everyone (CANCELED) Field conditions{
"visible": {
"key": "actionType",
"values": [
"end_prediction"
]
}
} |
Winning outcome IDwinningOutcomeId | text Optional | Required when resolving: which outcome won. The Create Prediction action returns the outcome ids in {{outcomes}}.Field conditions{
"visible": {
"key": "actionType",
"values": [
"end_prediction"
]
}
} |
Reward namerewardTitle | text Conditionally required | Shown on the channel points menu. Noria can only manage rewards it created itself. Rewards you made in the Twitch dashboard cannot be edited from here.Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_reward",
"update_reward"
]
},
"required": {
"key": "actionType",
"values": [
"create_reward"
]
}
} |
Cost (channel points)rewardCost | text Conditionally required | Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_reward",
"update_reward"
]
},
"required": {
"key": "actionType",
"values": [
"create_reward"
]
}
} |
DescriptionrewardPrompt | textarea Optional | Shown under the reward. To require an answer from the viewer, also enable "Ask the viewer to type something" when creating the reward.Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_reward",
"update_reward"
]
}
} |
Ask the viewer to type somethingrewardUserInputRequired | boolean Optional | The redemption opens a text box on Twitch; what the viewer types arrives as the redemption input in your workflow.Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_reward"
]
}
} |
ColourrewardBackgroundColor | text Optional | Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_reward"
]
}
} |
Cooldown (seconds)rewardCooldownSeconds | text Optional | 0 = no cooldown.Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_reward",
"update_reward"
]
}
} |
Max per streamrewardMaxPerStream | text Optional | Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_reward"
]
}
} |
Max per viewer per streamrewardMaxPerUserPerStream | text Optional | Field conditions{
"visible": {
"key": "actionType",
"values": [
"create_reward"
]
}
} |
Visible on the channelrewardEnabled | select Optional | Hiding a reward removes it from the channel points menu. This is the "switch my rewards off when I go offline" lever. Options: Leave unchanged (), Yes: viewers can see it (yes), No: hide it (no) Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_reward"
]
}
} |
PausedrewardPaused | select Optional | Pausing keeps the reward visible but stops new redemptions. Gentler than hiding it. Options: Leave unchanged (), Yes: visible but not redeemable (yes), No: redeemable (no) Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_reward"
]
}
} |
Reward IDrewardId | text Conditionally required | Which reward to act on. Wire {{reward_id}} from a Channel Point Redemption trigger, or from List Channel Point Rewards.Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_reward",
"delete_reward",
"list_redemptions",
"update_redemption_status"
]
},
"required": {
"key": "actionType",
"values": [
"update_reward",
"delete_reward",
"list_redemptions",
"update_redemption_status"
]
}
} |
Which redemptionsredemptionStatus | select Optional Default: | Options: Waiting in the queue (UNFULFILLED), Already fulfilled (FULFILLED), Refunded / cancelled (CANCELED) Field conditions{
"visible": {
"key": "actionType",
"values": [
"list_redemptions"
]
}
} |
How many redemptionsredemptionLimit | text Optional | Twitch returns at most 50 per read.Field conditions{
"visible": {
"key": "actionType",
"values": [
"list_redemptions"
]
}
} |
Ad length (seconds)commercialLength | select Optional Default: | Starts an ad break immediately. Affiliates and partners only, and it cannot be called back once it starts. Options: 30 seconds (30), 1 minute (60), 90 seconds (90), 2 minutes (120), 3 minutes (180) Field conditions{
"visible": {
"key": "actionType",
"values": [
"start_commercial"
]
}
} |
Redemption IDredemptionId | text Conditionally required | The specific redemption to update, usually {{redemption_id}} from a Channel Point Redemption trigger.Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_redemption_status"
]
},
"required": {
"key": "actionType",
"values": [
"update_redemption_status"
]
}
} |
Statusstatus | select Optional Default: | Fulfilled marks the reward as delivered. Canceled marks it as not delivered and refunds the viewer's points. Options: Fulfilled (FULFILLED), Canceled (refund points) (CANCELED) Field conditions{
"visible": {
"key": "actionType",
"values": [
"update_redemption_status"
]
}
} |
Inputs and outputs
Inputs
execute- Execute (input)
Outputs
done- Done (output)error- Error (output)channel- Channel (output)message- Message (output)sent- Sent (output)clip_id- Clip ID (output)clip_url- Clip URL (output)reply_to- Replied To (message ID) (output)userId- User ID (target) (output)durationSeconds- Timeout Duration (sec) (output)title- Title (output)targetBroadcasterId- Shoutout Target (User ID) (output)rewardId- Reward ID (output)redemptionId- Redemption ID (output)status- Status (output)
Output data schema
[
{
"key": "is_live",
"type": "boolean",
"optional": true,
"operations": [
"get_stream_info"
],
"description": "Get Stream Info: whether the channel is streaming right now."
},
{
"key": "viewer_count",
"type": "number",
"optional": true,
"operations": [
"get_stream_info"
],
"description": "Get Stream Info: current viewers, 0 when offline."
},
{
"key": "game_name",
"type": "string",
"optional": true,
"operations": [
"get_stream_info",
"get_channel_info",
"update_title"
],
"description": "The category the channel is set to."
},
{
"key": "game_id",
"type": "string",
"optional": true,
"operations": [
"get_stream_info",
"get_channel_info",
"update_title"
],
"description": "Twitch's id for that category."
},
{
"key": "started_at",
"type": "timestamp",
"optional": true,
"operations": [
"get_stream_info"
],
"description": "Get Stream Info: when the stream went live."
},
{
"key": "stream_id",
"type": "string",
"optional": true,
"operations": [
"get_stream_info"
],
"description": "Get Stream Info: id of the current broadcast."
},
{
"key": "thumbnail_url",
"type": "url",
"optional": true,
"operations": [
"get_stream_info"
],
"description": "Get Stream Info: preview image of the live stream."
},
{
"key": "language",
"type": "string",
"optional": true,
"operations": [
"get_stream_info",
"get_channel_info"
],
"description": "The stream's language code."
},
{
"key": "is_follower",
"type": "boolean",
"optional": true,
"operations": [
"get_followers"
],
"description": "Get Followers: whether the viewer you asked about follows. The usual \"followers only\" gate."
},
{
"key": "followed_at",
"type": "timestamp",
"optional": true,
"operations": [
"get_followers"
],
"description": "Get Followers: when that viewer followed, empty when they don't."
},
{
"key": "total",
"type": "number",
"optional": true,
"operations": [
"get_followers",
"get_chatters"
],
"description": "The channel's total followers, or the number of people in chat."
},
{
"key": "followers",
"type": "array",
"optional": true,
"operations": [
"get_followers"
],
"description": "Get Followers: one page of followers, newest first.",
"items": {
"key": "follower",
"type": "object",
"fields": [
{
"key": "user_id",
"type": "string"
},
{
"key": "user_login",
"type": "string"
},
{
"key": "user_name",
"type": "string"
},
{
"key": "followed_at",
"type": "timestamp"
}
]
}
},
{
"key": "chatters",
"type": "array",
"optional": true,
"operations": [
"get_chatters"
],
"description": "Get Chatters: who is in chat right now. The pool to draw a giveaway winner from.",
"items": {
"key": "chatter",
"type": "object",
"fields": [
{
"key": "user_id",
"type": "string"
},
{
"key": "user_login",
"type": "string"
},
{
"key": "user_name",
"type": "string"
}
]
}
},
{
"key": "follower_mode",
"type": "boolean",
"optional": true,
"operations": [
"get_chat_settings",
"update_chat_settings"
],
"description": "Whether followers-only chat is on."
},
{
"key": "slow_mode",
"type": "boolean",
"optional": true,
"operations": [
"get_chat_settings",
"update_chat_settings"
],
"description": "Whether slow mode is on."
},
{
"key": "emote_mode",
"type": "boolean",
"optional": true,
"operations": [
"get_chat_settings",
"update_chat_settings"
],
"description": "Whether emote-only chat is on."
},
{
"key": "subscriber_mode",
"type": "boolean",
"optional": true,
"operations": [
"get_chat_settings",
"update_chat_settings"
],
"description": "Whether subscribers-only chat is on."
},
{
"key": "unique_chat_mode",
"type": "boolean",
"optional": true,
"operations": [
"get_chat_settings",
"update_chat_settings"
],
"description": "Whether unique chat (no repeated messages) is on."
},
{
"key": "poll_id",
"type": "string",
"optional": true,
"operations": [
"create_poll"
],
"description": "The poll: wire it into End Poll to close this exact poll.",
"bindingRole": "created_resource"
},
{
"key": "poll_id",
"type": "string",
"optional": true,
"operations": [
"end_poll"
],
"description": "The poll: wire it into End Poll to close this exact poll.",
"bindingRole": "selected_target"
},
{
"key": "choices",
"type": "array",
"optional": true,
"operations": [
"create_poll"
],
"description": "Create Poll: the choices, with the ids Twitch assigned them.",
"items": {
"key": "choice",
"type": "object",
"fields": [
{
"key": "id",
"type": "string"
},
{
"key": "title",
"type": "string"
}
]
}
},
{
"key": "prediction_id",
"type": "string",
"optional": true,
"operations": [
"create_prediction"
],
"description": "The prediction: wire it into End Prediction to resolve this exact one.",
"bindingRole": "created_resource"
},
{
"key": "prediction_id",
"type": "string",
"optional": true,
"operations": [
"end_prediction"
],
"description": "The prediction: wire it into End Prediction to resolve this exact one.",
"bindingRole": "selected_target"
},
{
"key": "outcomes",
"type": "array",
"optional": true,
"operations": [
"create_prediction"
],
"description": "Create Prediction: the outcomes and their ids. Resolving needs the winning id from here.",
"items": {
"key": "outcome",
"type": "object",
"fields": [
{
"key": "id",
"type": "string"
},
{
"key": "title",
"type": "string"
}
]
}
},
{
"key": "to_broadcaster_id",
"type": "string",
"optional": true,
"operations": [
"start_raid"
],
"description": "Start Raid: the channel the audience is being sent to.",
"bindingRole": "selected_target"
},
{
"key": "created_at",
"type": "timestamp",
"optional": true,
"operations": [
"start_raid"
],
"description": "Start Raid: when the raid countdown began."
},
{
"key": "is_mature",
"type": "boolean",
"optional": true,
"operations": [
"start_raid"
],
"description": "Start Raid: whether the target channel is flagged mature."
},
{
"key": "reward_id",
"type": "string",
"optional": true,
"operations": [
"create_reward"
],
"description": "The reward: wire it into Update or Delete to act on this exact one.",
"bindingRole": "created_resource"
},
{
"key": "reward_id",
"type": "string",
"optional": true,
"operations": [
"update_reward"
],
"description": "The reward: wire it into Update or Delete to act on this exact one.",
"bindingRole": "selected_target"
},
{
"key": "cost",
"type": "number",
"optional": true,
"operations": [
"create_reward"
],
"description": "Create Channel Point Reward: what it costs viewers."
},
{
"key": "is_enabled",
"type": "boolean",
"optional": true,
"operations": [
"create_reward",
"update_reward"
],
"description": "Whether the reward is visible on the channel."
},
{
"key": "is_paused",
"type": "boolean",
"optional": true,
"operations": [
"update_reward"
],
"description": "Update Channel Point Reward: whether redemptions are paused."
},
{
"key": "rewards",
"type": "array",
"optional": true,
"operations": [
"list_rewards"
],
"description": "List Channel Point Rewards: the rewards Noria manages on this channel.",
"items": {
"key": "reward",
"type": "object",
"fields": [
{
"key": "id",
"type": "string"
},
{
"key": "title",
"type": "string"
},
{
"key": "cost",
"type": "number"
},
{
"key": "prompt",
"type": "string"
},
{
"key": "is_enabled",
"type": "boolean"
},
{
"key": "is_paused",
"type": "boolean"
}
]
}
},
{
"key": "redemptions",
"type": "array",
"optional": true,
"operations": [
"list_redemptions"
],
"description": "List Reward Redemptions: who redeemed, and what they typed.",
"items": {
"key": "redemption",
"type": "object",
"fields": [
{
"key": "id",
"type": "string"
},
{
"key": "user_id",
"type": "string"
},
{
"key": "user_name",
"type": "string"
},
{
"key": "user_input",
"type": "string"
},
{
"key": "status",
"type": "string"
},
{
"key": "redeemed_at",
"type": "timestamp"
}
]
}
},
{
"key": "redemption_count",
"type": "number",
"optional": true,
"operations": [
"list_redemptions"
],
"description": "List Reward Redemptions: how many came back."
},
{
"key": "broadcaster_id",
"type": "string",
"optional": true,
"operations": [
"get_channel_info"
],
"description": "Get Channel Info: the channel this describes.",
"bindingRole": "selected_target"
},
{
"key": "broadcaster_name",
"type": "string",
"optional": true,
"operations": [
"get_channel_info"
],
"description": "Get Channel Info: the channel's display name."
},
{
"key": "tags",
"type": "array",
"optional": true,
"operations": [
"get_channel_info"
],
"description": "Get Channel Info: the channel's search tags.",
"items": {
"key": "tag",
"type": "string"
}
},
{
"key": "delay",
"type": "number",
"optional": true,
"operations": [
"get_channel_info"
],
"description": "Get Channel Info: the stream delay, in seconds."
},
{
"key": "next_ad_at",
"type": "timestamp",
"optional": true,
"operations": [
"get_ad_schedule",
"snooze_next_ad"
],
"description": "When the next ad break is due."
},
{
"key": "last_ad_at",
"type": "timestamp",
"optional": true,
"operations": [
"get_ad_schedule"
],
"description": "Get Ad Schedule: when the last ad ran."
},
{
"key": "duration",
"type": "number",
"optional": true,
"operations": [
"get_ad_schedule"
],
"description": "Get Ad Schedule: the ad break duration in seconds."
},
{
"key": "preroll_free_time",
"type": "number",
"optional": true,
"operations": [
"get_ad_schedule"
],
"description": "Get Ad Schedule: seconds of pre-roll-free time remaining."
},
{
"key": "snooze_count",
"type": "number",
"optional": true,
"operations": [
"get_ad_schedule",
"snooze_next_ad"
],
"description": "How many snoozes are left."
},
{
"key": "snooze_refresh_at",
"type": "timestamp",
"optional": true,
"operations": [
"get_ad_schedule",
"snooze_next_ad"
],
"description": "When another snooze becomes available."
},
{
"key": "length",
"type": "number",
"optional": true,
"operations": [
"start_commercial"
],
"description": "Start Commercial: how long the ad break actually ran."
},
{
"key": "retry_after",
"type": "number",
"optional": true,
"operations": [
"start_commercial"
],
"description": "Start Commercial: seconds to wait before another ad is allowed."
}
]Examples and troubleshooting have not yet been reviewed for this contract.
Version and compatibility
This reference follows the current authoring contract. Existing workflows retain their saved node revisions.
Contract identifier
5836b02bb9eb0c131d1a69124a1b68e999ff1a01f6f4fa379b6cbbc0d629366c