LumenClip Docs
LumenClip Docs
LumenClip engineering documentation
Data dictionaryPersistence and physical recordsWorkspace, collections, and assetsTemplate definitionsGeneration runs and outputsPublishing, calendar, and analyticsOperations and accessBackend architectureRailway runtimeBackend endpoints
Data

Template definitions

Editable slideshow, video, and post template configuration objects.

Template definitions

Templates store reusable authoring configuration and never own a publishing schedule. The current storage adapter can read legacy definition rows while the API and UI expose them as slideshow, video, or post templates. Runtime inputs and outputs are documented separately.

Automation definitions. Optionality and accepted values are included in each field description.

AutomationRecord

FieldTypeExampleDescription
ownerIdstring"record-123"Optional. Injected record owner. Accepted format: Railway user ID.
idstring"record-123"Required. Automation ID. Accepted format: Stable domain ID.
sourceAutomationIdstring"record-123"Optional. Imported automation identity. Accepted format: External ID.
sourceUrlstring"https://example.com/item"Optional. Import source. Accepted format: URL.
namestring"Example"Required. Display name.
statusstring enum"live"Required. Lifecycle state; unknown covers old records. Accepted format: live, paused, unknown.
favoritebooleantrueRequired. UI favorite state. Accepted format: true, false.
themestring"Example"Required. UI theme label.
importedAtISO datetime"2026-08-01T09:00:00.000Z"Optional. Import time. Accepted format: ISO 8601.
updatedAtISO datetime"2026-08-01T09:00:00.000Z"Required. Last update. Accepted format: ISO 8601.
schemaAutomationSchema"Example"Required. Editable/runtime definition. Accepted format: See below.
rawobject{ "key": "value" }Optional. Preserved external source payload. Accepted format: JSON object.

AutomationSchema

FieldTypeExampleDescription
automationKindstring enum"slideshow"Required. Generation family. Accepted format: slideshow, video, ugc.
aspect_ratiostring enum"9:16"Required. Global output aspect ratio. Accepted format: 9:16, 4:5, 3:4, 3:2, 1:1.
fontstring"Example"Required. Global font. Accepted format: Registered/font-family string.
image_fitstring enum"cover"Required. Image fit policy. Accepted format: cover, contain, fit.
languagestring"Example"Required. Generation language. Accepted format: Language label/code.
created_atDate/ISO on serialization"2026-08-01T09:00:00.000Z"Required. Definition creation time. Accepted format: Valid datetime.
social_integrationsPostFastSocialIntegration[][]Required. Publication targets. Accepted format: Array.
prompt_formattingPromptFormatting"Example"Required. Text-generation direction. Accepted format: See below.
hooksAutomationHookItem[][]Required. Canonical hook catalog. Accepted format: Array.
image_collection_idsImageCollectionConfig"Example"Required. Media source selection. Accepted format: See below.
toneAutomationToneSection"Example"Required. Tone selection/custom direction. Accepted format: See below.
formattingAutomationFormatSection[]"hook"Required. Slide/text layout. Accepted format: IDs hook, body, cta.
tiktok_post_settingsobject"TikTokPostSettings"Required. Compatibility publishing policy. Accepted format: See TikTokPostSettings.
social_post_settingsobject{ "key": "value" }Required. Provider-specific PostFast controls. Accepted format: Provider-keyed controls.
social_publish_asobject"slideshow"Required. Per-provider media mode. Accepted format: Provider keys; values slideshow or video.
scheduleAutomationSchedule"Example"Required. Posting schedule. Accepted format: See below.
posting_modestring enum"manual"Optional. Publication workflow. Accepted format: manual, review, auto.
generation_lead_minutesnumber1Optional. Generate before scheduled publication. Accepted format: Non-negative number.
hook_slotsobject{ token: collectionId }Optional. Explicit variable-collection overrides. Accepted format: { token: collectionId }.
hook_no_duplicate_slotsbooleantrueOptional. Avoid duplicate hook slot selections. Accepted format: true, false.
distinct_variable_drawsbooleantrueOptional. Draw different values for repeated variables. Accepted format: true, false.
web_search_enabledbooleantrueOptional. Allow provider web-search generation. Accepted format: true, false.
reuse_policyAutomationReusePolicy"Example"Optional. Recent-content exclusion settings. Accepted format: See below.
content_strategyAutomationContentStrategy"Example"Optional. Route-based content strategy. Accepted format: See below.
video_formatAutomationVideoFormat"Example"Optional. Segment/template configuration. Accepted format: Required by video flows.
ugcAutomationUgcConfig"Example"Optional. UGC actor/voice/caption configuration. Accepted format: Required by UGC flows.

PromptFormatting

FieldTypeExampleDescription
stylestring"Example"Required. Style direction.
narrativestring"Example"Required. Narrative/writing direction.
num_of_slidesnumber1Required. Default slide count. Accepted format: Positive integer.
hook_casestring"lib/hook-casing.ts"Optional. Hook capitalization transform. Accepted format: Hook-case modes registered in lib/hook-casing.ts.

ImageCollectionConfig

FieldTypeExampleDescription
first_slide.collectionstring"Example"Required. First-slide source collection. Accepted format: Collection ID.
first_slide.modestring enum"collection"Required. First-slide selection mode. Accepted format: collection, single_image.
first_slide.single_imagestring or nullnullRequired. Fixed first image. Accepted format: Asset/image ID or null.
all_slidesstring"Example"Required. Body-slide source. Accepted format: Collection ID.
cta_slide.checkbooleantrueRequired. Enable dedicated CTA media. Accepted format: true, false.
cta_slide.cta_collection_idstring"record-123"Required. CTA source collection. Accepted format: Collection ID.
cta_slide.image_idstring or nullnullRequired. Fixed CTA image. Accepted format: Asset/image ID or null.
video_demo_asset_idstring"record-123"Optional. Optional demo video. Accepted format: Asset ID.

AutomationSchedule

FieldTypeExampleDescription
timezonestring"Asia/Singapore"Required. Slot calculation timezone. Accepted format: IANA timezone.
posting_timesobject[][]Required. Schedule entries. Accepted format: Array.
posting_times[].timestring"HH:mm"Required. Posting time. Accepted format: Local HH:mm time.
posting_times[].daysstring[]"Mon"Required. Active weekdays. Accepted format: Mon, Tue, Wed, Thu, Fri, Sat, Sun.
posting_times[].enabledbooleantrueOptional. Entry enablement. Accepted format: true, false; normalized default applies.
pausedbooleantrueOptional. Schedule-level pause. Accepted format: true, false.
jitter_minutesnumber1Optional. Random timing offset ceiling. Accepted format: Non-negative integer.

AutomationHookItem

FieldTypeExampleDescription
idstring"record-123"Required. Hook identity. Accepted format: Stable ID.
textstring"Example"Required. Hook template. Accepted format: Free string with supported variables.
enabledbooleantrueRequired. Selection eligibility. Accepted format: true, false.
bodySlideCountnumber1Optional. Per-hook body slide count. Accepted format: Positive integer.
tonestring"Example"Optional. Per-hook tone override.
createdAtISO datetime"2026-08-01T09:00:00.000Z"Required. Creation time. Accepted format: ISO 8601.
updatedAtISO datetime"2026-08-01T09:00:00.000Z"Optional. Last update. Accepted format: ISO 8601.

AutomationFormatSection

FieldTypeExampleDescription
idstring enum"hook"Required. Section identity. Accepted format: hook, body, cta.
textItemsTextItem[][]Required. Text boxes. Accepted format: Array.
aspect_ratiostring enum"9:16"Required. Section ratio. Accepted format: 9:16, 4:5, 3:4, 3:2, 1:1.
imageGridstring enum"none"Required. Image layout. Accepted format: none, 2x2, 1x2, 1x3, oval-icons.
slideCountnumber1Required. Static/default count. Accepted format: Positive integer.
slideCountModestring enum"static"Optional. Count mode. Accepted format: static, varying.
slideCountMinnumber1Optional. Varying lower bound. Accepted format: Positive integer.
slideCountMaxnumber1Optional. Varying upper bound. Accepted format: Positive integer.
noTextbooleantrueRequired. Disable text rendering. Accepted format: true, false.
overlaybooleantrueRequired. Enable overlay rendering. Accepted format: true, false.
aiImageSelectionbooleantrueOptional. Let the model choose media. Accepted format: true, false.
overlayImageobject{ enabled, collectionId?, padding }Optional. Overlay-image policy. Accepted format: { enabled, collectionId?, padding }.
slideOverridesobject[]{ slideIndex, contentDirection }[]Optional. Per-slide copy direction. Accepted format: { slideIndex, contentDirection }[].
imageOverridesobject[]{ slideIndex, collectionId }[]Optional. Per-slide media source. Accepted format: { slideIndex, collectionId }[].
imageModestring enum"collection"Optional. Image selection mode. Accepted format: collection, single_image.

TextItem

FieldTypeExampleDescription
idstring"record-123"Required. Text-box identity. Accepted format: Stable ID.
textstring"Example"Required. Text/prompt content.
fontSizestring"Example"Required. Font size. Accepted format: CSS-like size string.
textStylestring"Example"Required. Text style. Accepted format: Registered style.
fontstring"Example"Required. Font. Accepted format: Font family.
textPositionstring enum"top"Required. Vertical placement. Accepted format: top, center, bottom.
textItemWidthstring"Example"Required. Text box width. Accepted format: CSS-like width.
wordLengthMinnumber1Required. Minimum generated word count. Accepted format: Non-negative integer.
wordLengthMaxnumber1Required. Maximum generated word count. Accepted format: Integer ≥ minimum.
contentDirectionstring"Example"Required. Generation instruction.
textModestring enum"prompt"Required. Generated vs fixed text. Accepted format: prompt, static.
staticTextstring"Example"Required. Fixed text when static.
textAlignstring enum"left"Required. Horizontal alignment. Accepted format: left, center, right.
textAnchorstring enum"padded"Required. Horizontal safe-area behavior. Accepted format: padded, flush.
textVerticalAnchorstring enum"padded"Optional. Vertical safe-area behavior. Accepted format: padded, flush.

TikTokPostSettings

FieldTypeExampleDescription
captionPostTextSetting"mode"Required. Caption rule. Accepted format: mode: prompt or static; resolution: generated or hook.
descriptionPostTextSetting"Example"Required. Description rule. Accepted format: Same contract as caption.
visibilitystring enum"PUBLIC_TO_EVERYONE"Required. TikTok visibility. Accepted format: PUBLIC_TO_EVERYONE, MUTUAL_FOLLOW_FRIENDS, SELF_ONLY.
auto_musicbooleantrueRequired. Automatic music. Accepted format: true, false.
auto_postbooleantrueRequired. Automatic publication. Accepted format: true, false.
allow_commentsbooleantrueRequired. Comments permission. Accepted format: true, false.
allow_duetbooleantrueRequired. Duet permission. Accepted format: true, false.
allow_stitchbooleantrueRequired. Stitch permission. Accepted format: true, false.
disclose_video_contentbooleantrueRequired. AI/content disclosure. Accepted format: true, false.
disclose_brand_organicbooleantrueRequired. Organic brand disclosure. Accepted format: true, false.
disclose_branded_contentbooleantrueRequired. Branded-content disclosure. Accepted format: true, false.
post_modestring enum"MEDIA_UPLOAD"Required. TikTok posting mode. Accepted format: MEDIA_UPLOAD, DIRECT_POST.
publish_typestring enum"slideshow"Optional. Published media form. Accepted format: slideshow, video.
slideshow_transition_stylestring"Example"Optional. Transition name.
slideshow_slide_durationnumber1Optional. Per-slide duration. Accepted format: Positive seconds.
slideshow_sound_idstring"record-123"Optional. Sound ID. Accepted format: Provider ID.
slideshow_sound_namestring"Example"Optional. Sound name.
slideshow_sound_urlstring"https://example.com/item"Optional. Sound preview/source. Accepted format: URL.

AutomationVideoFormat and AutomationVideoSegment

FieldTypeExampleDescription
templatestring enum"ugc_ad"Required. Video template. Accepted format: ugc_ad, greenscreen_meme, react_reveal, compilation, birdseye_pov, screen_record, screenshot_pictures, aesthetic, story_over_broll, faceless_reel.
hookPlacementstring enum"global"Required. Hook text location. Accepted format: global, first_segment.
globalTextItemsTextItem[][]Required. Global overlays. Accepted format: Array.
segmentsAutomationVideoSegment[][]Required. Ordered segment definitions. Accepted format: Array.
segments[].idstring"record-123"Required. Segment identity. Accepted format: Stable ID.
segments[].labelstring"Example"Required. Display label.
segments[].guidancestring"Example"Required. Generation/edit guidance.
segments[].mediaSourcestring enum"collection"Required. Source family. Accepted format: collection, demo_asset, slideshow_automation.
segments[].mediaKindstring enum"video"Required. Expected media. Accepted format: video, image.
segments[].collectionIdstring"record-123"Required. Collection source. Accepted format: Collection ID or normalized empty value.
segments[].demoAssetIdstring"record-123"Required. Demo source. Accepted format: Asset ID or normalized empty value.
segments[].slideshowAutomationIdstring"record-123"Optional. Slideshow source. Accepted format: Automation ID.
segments[].clipCountnumber1Required. Number of clips. Accepted format: Positive integer.
segments[].clipDurationMsnumber1Required. Target clip duration. Accepted format: Positive integer.
segments[].playFullVideobooleantrueOptional. Bypass clipping. Accepted format: true, false.
segments[].transitionstring enum"cut"Required. Transition into next segment. Accepted format: cut, fade.
segments[].textItemsTextItem[][]Required. Segment overlays. Accepted format: Array.

AutomationUgcConfig

FieldTypeExampleDescription
enabledbooleantrueRequired. Enable UGC flow. Accepted format: true, false.
productUrlstring"https://example.com/item"Optional. Product source. Accepted format: URL.
productBriefstring"Example"Optional. Product direction.
actorSourcestring enum"generate"Required. Actor source. Accepted format: generate, gallery, upload.
actorAssetUrlstring"https://example.com/item"Optional. Selected actor media. Accepted format: URL/path.
actorPromptstring"Example"Optional. Actor generation prompt.
voiceIdstring"record-123"Required. Voice selection. Accepted format: Provider voice ID.
voiceModelstring"Example"Optional. Voice model. Accepted format: Provider model ID.
lipSyncTierstring enum"standard"Required. Lip-sync quality tier. Accepted format: standard, premium.
targetDurationSecondsnumber1Required. Target duration. Accepted format: Positive number.
brollCountnumber1Required. B-roll count. Accepted format: Non-negative integer.
captions.enabledbooleantrueRequired. Caption rendering. Accepted format: true, false.
captions.stylestring"Example"Required. Caption style. Accepted format: Registered/free style.
captions.fallbackstring enum"drawtext"Required. Caption fallback renderer. Accepted format: drawtext, png_frames.
hookOverlay.enabledbooleantrueRequired. Hook overlay. Accepted format: true, false.
hookOverlay.durationMsnumber1Required. Overlay duration. Accepted format: Non-negative integer.
hookOverlay.stylestring"Example"Required. Overlay style. Accepted format: Registered/free style.

XAutomationRecord

FieldTypeExampleDescription
idstring"record-123"Required. Automation ID. Accepted format: Stable domain ID.
ownerIdstring"record-123"Optional. Owner. Accepted format: Railway user ID.
platformstring enum"x"Required. Target platform. Accepted format: x, threads.
namestring"Example"Required. Display name.
statusstring enum"live"Required. Lifecycle. Accepted format: live, paused.
createdAtISO datetime"2026-08-01T09:00:00.000Z"Required. Creation time. Accepted format: ISO 8601.
updatedAtISO datetime"2026-08-01T09:00:00.000Z"Required. Last update. Accepted format: ISO 8601.
niche.labelstring"Example"Required. Niche label.
briefXAutomationBrief or nullnullRequired. Inferred/editorial brief. Accepted format: Object or null.
excludedTopicsstring[][]Required. Prohibited topics. Accepted format: Array.
proofBankProofEntry[]"kind"Required. Approved proof. Accepted format: kind: result, testimonial, stat.
output.contentTypestring enum"single"Required. Output form. Accepted format: single, thread, article.
output.archetypestring enum"Example"Required. Writing structure. Accepted format: See archetypes below.
output.singleLengthstring enum"short"Required. Single-post length. Accepted format: short, standard, long.
output.maxCharactersnumber1Required. Platform character ceiling. Accepted format: Positive integer.
output.threadPostCountrange{ min, max }Required. Thread length. Accepted format: { min, max }.
output.articleWordCountrange{ min, max }Required. Article length. Accepted format: { min, max }.
generation.modelstring"Example"Required. Text model. Accepted format: Registered model ID.
generation.autoInferBriefbooleantrueRequired. Infer brief automatically. Accepted format: true, false.
generation.languagestring"Example"Required. Language. Accepted format: Language label/code.
generation.hookStylesstring[][]Required. Hook directions. Accepted format: Array.
generation.voicePresetstring"Example"Required. Voice preset. Accepted format: Registered/free preset.
generation.voiceOverridestring"Example"Required. Custom voice direction.
media.modestring enum"none"Required. Image generation policy. Accepted format: none, generate.
media.aspectRatiostring enum"1:1"Required. Generated-image ratio. Accepted format: 1:1, 4:5, 16:9.
media.promptstring"Example"Required. Image prompt direction.
discovery.enabledbooleantrueRequired. Trend discovery. Accepted format: true, false.
discovery.sourcesstring[]"x"Required. Discovery networks. Accepted format: x, tiktok, instagram.
discovery.lookbackHoursnumber1Required. Discovery window. Accepted format: Positive number.
discovery.minimumViewsnumber1Required. View threshold. Accepted format: Non-negative number.
discovery.minimumEngagementRatenumber1Required. Engagement threshold. Accepted format: Non-negative percentage.
discovery.reactionModestring enum"none"Required. Reaction behavior. Accepted format: none, repost, quote.
benchmarksXAutomationBenchmark[][]Required. Reference posts. Accepted format: Array.
publishing.integrationsPostFastSocialIntegration[][]Required. Targets. Accepted format: Array.
publishing.autoPostbooleantrueRequired. Auto-publication. Accepted format: true, false.
scheduleAutomationSchedule"Example"Required. Schedule. Accepted format: See earlier table.
usageobject{ "key": "value" }Required. Bounded repetition memory. Accepted format: Recent archetypes/hooks/bodies.
operationsXAutomationOperation[]"kind"Required. Auditable background operations. Accepted format: kind: derive_brief; status succeeded or failed.

Workspace, collections, and assets

Workspace runtime data and reusable media, image, word, product, and asset structures.

Generation runs and outputs

Execution records, plans, results, slideshows, exports, and generated social drafts.

On this page

Template definitions