Skip to main content
Use node config overrides when a trigger needs to change the same settings a user can configure in the workflow builder. This is the most precise way to customize a run without editing the saved workflow template.
This page documents frontend workflow-configurable fields only. Backend-only runtime fields are intentionally omitted.

Where Overrides Go

Add one of these fields to POST /trigger-template:
  • nodeConfigs
  • nodeConfigOverrides
  • actionConfigs
They all behave the same way. Most integrations should use nodeConfigs.
You can also send overrides as a list:

How Overrides Apply

  • Overrides are keyed by workflow node type, such as add_broll or add_subtitles.
  • The public API resolves each node type to the matching node in the selected workflow.
  • If the workflow does not contain that node type, the override is skipped and the workflow still runs.
  • If the workflow contains the node but the config has invalid field names, invalid types, or invalid enum values, the request returns INVALID_NODE_CONFIG.
  • Structured overrides win over legacy flat fields when both set the same nested value.
For example, if you send both broll: true and nodeConfigs.add_broll.enabled: false, the structured nodeConfigs value wins for add_broll.enabled.

Quick Example

This example changes clip length, b-roll, subtitles, and vertical reframe behavior for one trigger:

Supported Node Types

add_subtitles, add_title_overlay, add_watermark, and add_outro are deprecated but supported. Use style_video for new workflows. Existing workflows and their standalone node overrides continue to work.

Per-Node Examples

find_clips

Controls the clip discovery step.
Fields:

convert_to_vertical

Controls the Reframe / Convert to Vertical node.
Fields:

add_broll

Controls B-roll generation and sourcing.
Fields:

add_subtitles

Controls subtitle placement and styling.
Fields:
For most subtitle overrides, set style fields inside subtitle_config.speakerStyles[0]. For example, subtitle_config.speakerStyles[0].subtitleY sets the default subtitle Y position, and that value is inherited by subtitles when no more specific speaker style is present.
speakerStyles array entry fields:

style_video

Controls the complete visual treatment from the Style Video node. All styling elements are optional; an empty layers array is a valid no-op.
Top-level fields: Layer fields: Style Video supports multiple title, watermark, and media-overlay layers. It supports at most one subtitle layer and one lower-third layer. Watermark layers require config.url; media overlays require config.mediaUrl. Color grading fields:

add_music

Controls background music.
Fields: Music option fields:

add_watermark

Controls watermark rendering config.
Fields:

apply_branding

Controls the Apply Branding node.
Fields:

add_title_overlay

Controls the Title Overlay node.
Common title_config fields: By default this node generates a title for each clip with AI and ignores text. To use your own fixed title instead, set generateTitle to false and provide text:
The same title is applied to every clip in the run. For different per-clip titles, edit each clip after generation with Update Clip.

Styled title templates

Set titlePresetId to render one of the built-in styled title templates — the same templates available in the workflow editor’s Text panel — instead of the flat title styling. The AI-generated title fills the template’s primary line, and the template’s design (fonts, colors, backplate, animation) is preserved. Supplying titlePresetId selects that template from a clean preset state for the run. Any palette, presetOverrides, presetTextOverrides, or presetGenerationBlocks stored on the workflow’s previously selected template are cleared first. The API seeds the template’s editor sample text and semantic generation blocks, then applies the fields in your request. This matches selecting a different template in the workflow editor and prevents customizations from the old template leaking into the new one. Available titlePresetId values: Optional customizations layered on the chosen template:
  • titlePaletteId — a palette id for templates that define palettes. cyan-block-title and cyan-divider-title: breaking-news, national-news, politics, world-news, local-news, weather, entertainment. tiktok-3d: tiktok, grape-lime, sunset. instagram-wrap: clean, midnight, peach.
  • presetOverrides — an object of style/position tweaks applied on top of the template. Supported keys include fontColor, fontFamily, fontWeight, fontStyle ("italic" / "normal"), textAlign, textTransform, lineHeight, letterSpacing, wrapWidth, maxLines, backgroundColor, backgroundStyle, padding, borderRadius, textShadow, boxShadow, and geometry (xPosition, yPosition, scale, width, height, rotation). Positions are 01 fractions of the frame.
  • presetTextOverrides — fixed text for a template’s secondary line(s), keyed by element id (e.g. { "text-secondary": "Episode #4" } for the Daily Vlog subtitle). The primary line is always replaced by the AI-generated title (or your text when generateTitle is false).
Example — a Breaking News headline template, recolored and nudged higher:
When titlePresetId is set, the flat typography/background fields (fontFamily, backgroundColor, etc.) are ignored — adjust the template with presetOverrides instead.

add_lower_thirds

Adds a speaker-name lower-third card when each speaker first talks. Add the Add Lower Thirds node to your workflow in the portal and style it there (preset, colours, position). Then name the people in each video on the trigger call with speaker_names — the names change every run, the styling does not.
speaker_names is positional, ordered by who speaks first. The first entry names the first person heard in the video, the second entry the second, and so on — the same “Speaker 1 / Speaker 2” model used in the studio editor. title is optional; omit it for a name-only card. To leave one speaker unnamed while naming a later one, pass null (or {}) in their position so the remaining names stay aligned:
Cards are timed from the transcript: each appears 1 second after that speaker’s first word and runs for the preset’s duration. A speaker who is never named, or who never speaks, simply gets no card. When two speakers talk at nearly the same moment, their cards play back to back rather than overlapping.
speaker_names is available through the API only — there is no field for it in the workflow builder, because who appears in a video changes with every run.

Overriding the styling

lower_thirds_config overrides the styling set in the builder. It merges, so send only what you want to change and everything else is kept:
Changing titlePresetId resets that preset’s colours and palette to their defaults (a colour chosen for one template does not carry to another), but keeps your position. To change template and colours in one call, send both in the same request.
If you send speaker_names to a workflow that has no Add Lower Thirds node, the request is rejected — add the node in the builder first. Everything else about the run is unchanged.

filler_words

Controls filler word, stutter, and silence cleanup.
Fields:

smart_zoom

Controls Smart Zoom.
Fields:

add_outro

Controls end card and outro music.
Fields:

add_audiogram

Controls audiogram display.
Fields:

remove_watermark

Controls watermark removal.
Fields:

add_brainrot

Controls Brainrot split-screen style.
Fields:

media_overlay

Controls media overlays.
Fields:

remove_curse_words

Controls curse word handling.
Fields:

Legacy Flat Fields

These flat trigger fields still work and are converted into node configs internally:

Trigger Template

Use node config overrides when triggering a workflow template