Tech and industry (Manufacturing and industry), Lead time 1.0.0
| Template | Tech and industry (Manufacturing and industry), tpl_1c972308e957 |
|---|---|
| Variant | Lead time |
| Version | 1.0.0, the newest: what a channel following this variant draws |
| Shapes | 9x16, 4x5, 1x1, 16x9, 2x3 |
| Length | 12 seconds |
Example video
The 1x1 cut of this version, drawn from its own worked example. Open the video on its own.
What it accepts
A lead time now against before, as a drawing: the figure now with its change on a tag in your positive or negative colour by what is good news, both lead times drawn as dimensions on a time scale, the day it applies from, up to four product lines. The title block and the footnote stay throughout. Seven seconds, and a little over a second more per line. metaData is never drawn.
| Field | Type | Required | Limit | What it is |
|---|---|---|---|---|
clipData | group | yes | Clip data: Everything drawn in the clip: the section, the kicker, the headline and the line under it, the date it applies from, the lead time now and before with its change, the product lines, the column captions, the title block, the call to action and the footnote. | |
clipData.section | text | up to 24 characters | Section: What the post is, on the type plate at the end of the header, such as Lead times or Delivery. | |
clipData.kicker | text | up to 32 characters | Kicker: A few words above the headline, such as Delivery update. | |
clipData.headline | text | yes | up to 56 characters | Headline: What has changed, in a sentence. |
clipData.subline | text | up to 110 characters | Line under it: One sentence on why, such as a new machine or a second shift. | |
clipData.validFrom | datetime | yes | Applies from: The day the new lead times apply from. Only the date is read, as it is written here, and it is spelled out in the channel's language beside a calendar mark under the headline. | |
clipData.validFromLabel | text | up to 28 characters | Before the date: The words set before the date, such as For orders from or Valid from. | |
clipData.leadTime | group | yes | Lead time: The lead time now and before, as numbers in one unit. The figure now is set large; both are drawn as dimensions on a time scale, and the change is worked out from them exactly. | |
clipData.leadTime.now | number | yes | 2 decimals | Now: The lead time now, shown exactly as sent with the decimals it was sent with, in the channel's language. |
clipData.leadTime.before | number | 2 decimals | Before: The lead time before, in the same unit. Left out, no change and no drawing are shown. | |
clipData.leadTime.unit | text | yes | up to 16 characters | Unit: The unit of both, such as days, working days, weeks or hours. |
clipData.leadTime.nowLabel | text | up to 20 characters | Caption of now: The caption over the figure now and of its dimension, such as Now or Lead time now. | |
clipData.leadTime.beforeLabel | text | up to 20 characters | Caption of before: The caption of the dimension before, such as Before or Until October. | |
clipData.leadTime.good | enum | down, up | Good news is: Which way the change is good news, so the tag and the hatched stretch take your positive colour for good news and your negative colour otherwise. For a lead time a fall is good news. | |
clipData.leadTime.changeText | text | up to 24 characters | Change, as written: The change in your own words, shown on the tag instead of the worked-out difference, such as 7 days faster. Left out, the tag says the difference and its share of before. | |
clipData.lines | list | at least 0, up to 4 | Product lines: Up to four product lines, each with its own lead time now and before, listed under the drawing and selected one after another. Leave the list empty for the lead time alone. | |
clipData.lines[] | group | Product line | ||
clipData.lines[].name | text | yes | up to 32 characters | Product line: Such as Flange couplings or Custom parts to drawing. |
clipData.lines[].now | number | yes | 2 decimals | Now: Its lead time now, exactly as sent. |
clipData.lines[].before | number | 2 decimals | Before: Its lead time before. Left out, its change is not shown. | |
clipData.lines[].unit | text | up to 16 characters | Unit: Its unit, only where it is not the lead time's own, such as weeks, set beside its figures. Left out, its figures are in the lead time's unit and stand bare, as in a parts list. | |
clipData.columns | group | Column captions: The captions over the product lines' columns, in your language. A caption left out is not drawn. | ||
clipData.columns.line | text | up to 20 characters | Over the lines: Such as Product line. | |
clipData.columns.before | text | up to 16 characters | Over before: Such as Before. | |
clipData.columns.now | text | up to 16 characters | Over now: Such as Now. | |
clipData.columns.change | text | up to 16 characters | Over the change: Such as Change. | |
clipData.drawing | group | Title block: The drawing's title block at the foot of the stage, on every frame: its number, its revision and its date, exactly as written. A field left out is not drawn; with none, there is no title block. | ||
clipData.drawing.number | text | up to 16 characters | Sheet number: The sheet's or the notice's number. | |
clipData.drawing.revision | text | up to 4 characters | Revision: The revision, such as B or 03. | |
clipData.drawing.date | text | up to 16 characters | Date: The date of issue, written as it should be shown, such as 2026-10-15. | |
clipData.drawingLabels | group | Title block captions: The small caption over each field of the title block, in your language. A caption left out is not drawn; the field still is. | ||
clipData.drawingLabels.number | text | up to 16 characters | Over the number: Such as Sheet no. | |
clipData.drawingLabels.revision | text | up to 12 characters | Over the revision: Such as Rev. | |
clipData.drawingLabels.date | text | up to 12 characters | Over the date: Such as Date. | |
clipData.cta | group | Call to action: The button at the end and the line under it, such as a web address, a handle or a phone number. | ||
clipData.cta.label | text | yes | up to 28 characters | Button: What the button says. |
clipData.cta.detail | text | up to 48 characters | Line under it: An address, a handle, an app, a phone number. | |
clipData.footnote | text | up to 300 characters | Footnote: Who stands behind the post and how the lead times are counted, such as your legal entity and from which day to which. Shown above your footer line from the first frame to the last; a long one is set smaller, never cut. | |
clipData.look | group | Look: How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, square corners, text at the start. | ||
clipData.look.theme | enum | brand, light, dark, bold | Theme: Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page. | |
clipData.look.pace | enum | calm, standard, punchy | Pace: How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts. | |
clipData.look.corners | enum | square, soft, round | Corners: The shape of cards, pictures and buttons. | |
clipData.look.align | enum | start, centre | Text alignment: Where the text lines up. | |
clipData.look.logo | enum | auto, free | Logo: The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose. | |
clipData.look.logoSize | enum | auto, small, large | Logo size: Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none. | |
metaData | group | Meta data: Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data. | ||
metaData.title | text | up to 100 characters | Title: Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes. | |
metaData.captionTiny | text | up to 200 characters | Tiny description (Pinterest, Threads, X): Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionShort | text | up to 500 characters | Short description (Telegram, Threema, WeChat, WhatsApp): Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionMedium | text | up to 1500 characters | Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok): Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.captionLong | text | up to 4000 characters | Long description (Facebook Feed, YouTube): Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit. | |
metaData.hashtags | list | up to 15 | Hashtags: Written without the #. Up to 15, which every platform takes. | |
metaData.hashtags[] | text | up to 60 characters | Hashtag |
locales carries other languages: under each language code, the parts of clipData and metaData that differ, laid over the default, so a language with no copy still renders.
A picture is always a file from your media library: media:// followed by its id or its name.
Anything the table does not list is refused, and so is anything over its limit, with a 400
schema_validation error that names the field.
The JSON Schema
{
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"section": {
"type": "string",
"maxLength": 24,
"title": "Section",
"description": "What the post is, on the type plate at the end of the header, such as Lead times or Delivery."
},
"kicker": {
"type": "string",
"maxLength": 32,
"title": "Kicker",
"description": "A few words above the headline, such as Delivery update."
},
"headline": {
"type": "string",
"maxLength": 56,
"title": "Headline",
"description": "What has changed, in a sentence."
},
"subline": {
"type": "string",
"maxLength": 110,
"title": "Line under it",
"description": "One sentence on why, such as a new machine or a second shift."
},
"validFrom": {
"type": "string",
"format": "date-time",
"title": "Applies from",
"description": "The day the new lead times apply from. Only the date is read, as it is written here, and it is spelled out in the channel's language beside a calendar mark under the headline."
},
"validFromLabel": {
"type": "string",
"maxLength": 28,
"title": "Before the date",
"description": "The words set before the date, such as For orders from or Valid from."
},
"leadTime": {
"type": "object",
"properties": {
"now": {
"type": "number",
"title": "Now",
"description": "The lead time now, shown exactly as sent with the decimals it was sent with, in the channel's language."
},
"before": {
"type": "number",
"title": "Before",
"description": "The lead time before, in the same unit. Left out, no change and no drawing are shown."
},
"unit": {
"type": "string",
"maxLength": 16,
"title": "Unit",
"description": "The unit of both, such as days, working days, weeks or hours."
},
"nowLabel": {
"type": "string",
"maxLength": 20,
"title": "Caption of now",
"description": "The caption over the figure now and of its dimension, such as Now or Lead time now."
},
"beforeLabel": {
"type": "string",
"maxLength": 20,
"title": "Caption of before",
"description": "The caption of the dimension before, such as Before or Until October."
},
"good": {
"type": "string",
"enum": [
"down",
"up"
],
"title": "Good news is",
"description": "Which way the change is good news, so the tag and the hatched stretch take your positive colour for good news and your negative colour otherwise. For a lead time a fall is good news.",
"enumNames": [
"A fall, as for a lead time",
"A rise"
]
},
"changeText": {
"type": "string",
"maxLength": 24,
"title": "Change, as written",
"description": "The change in your own words, shown on the tag instead of the worked-out difference, such as 7 days faster. Left out, the tag says the difference and its share of before."
}
},
"required": [
"now",
"unit"
],
"additionalProperties": false,
"title": "Lead time",
"description": "The lead time now and before, as numbers in one unit. The figure now is set large; both are drawn as dimensions on a time scale, and the change is worked out from them exactly."
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 32,
"title": "Product line",
"description": "Such as Flange couplings or Custom parts to drawing."
},
"now": {
"type": "number",
"title": "Now",
"description": "Its lead time now, exactly as sent."
},
"before": {
"type": "number",
"title": "Before",
"description": "Its lead time before. Left out, its change is not shown."
},
"unit": {
"type": "string",
"maxLength": 16,
"title": "Unit",
"description": "Its unit, only where it is not the lead time's own, such as weeks, set beside its figures. Left out, its figures are in the lead time's unit and stand bare, as in a parts list."
}
},
"required": [
"name",
"now"
],
"additionalProperties": false,
"title": "Product line"
},
"minItems": 0,
"maxItems": 4,
"title": "Product lines",
"description": "Up to four product lines, each with its own lead time now and before, listed under the drawing and selected one after another. Leave the list empty for the lead time alone."
},
"columns": {
"type": "object",
"properties": {
"line": {
"type": "string",
"maxLength": 20,
"title": "Over the lines",
"description": "Such as Product line."
},
"before": {
"type": "string",
"maxLength": 16,
"title": "Over before",
"description": "Such as Before."
},
"now": {
"type": "string",
"maxLength": 16,
"title": "Over now",
"description": "Such as Now."
},
"change": {
"type": "string",
"maxLength": 16,
"title": "Over the change",
"description": "Such as Change."
}
},
"additionalProperties": false,
"title": "Column captions",
"description": "The captions over the product lines' columns, in your language. A caption left out is not drawn."
},
"drawing": {
"type": "object",
"properties": {
"number": {
"type": "string",
"maxLength": 16,
"title": "Sheet number",
"description": "The sheet's or the notice's number."
},
"revision": {
"type": "string",
"maxLength": 4,
"title": "Revision",
"description": "The revision, such as B or 03."
},
"date": {
"type": "string",
"maxLength": 16,
"title": "Date",
"description": "The date of issue, written as it should be shown, such as 2026-10-15."
}
},
"additionalProperties": false,
"title": "Title block",
"description": "The drawing's title block at the foot of the stage, on every frame: its number, its revision and its date, exactly as written. A field left out is not drawn; with none, there is no title block."
},
"drawingLabels": {
"type": "object",
"properties": {
"number": {
"type": "string",
"maxLength": 16,
"title": "Over the number",
"description": "Such as Sheet no."
},
"revision": {
"type": "string",
"maxLength": 12,
"title": "Over the revision",
"description": "Such as Rev."
},
"date": {
"type": "string",
"maxLength": 12,
"title": "Over the date",
"description": "Such as Date."
}
},
"additionalProperties": false,
"title": "Title block captions",
"description": "The small caption over each field of the title block, in your language. A caption left out is not drawn; the field still is."
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "Button",
"description": "What the button says."
},
"detail": {
"type": "string",
"maxLength": 48,
"title": "Line under it",
"description": "An address, a handle, an app, a phone number."
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address, a handle or a phone number."
},
"footnote": {
"type": "string",
"maxLength": 300,
"title": "Footnote",
"description": "Who stands behind the post and how the lead times are counted, such as your legal entity and from which day to which. Shown above your footer line from the first frame to the last; a long one is set smaller, never cut."
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.",
"enumNames": [
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.",
"enumNames": [
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, pictures and buttons.",
"enumNames": [
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.",
"enumNames": [
"The style's own",
"As it is, no plate or crop"
]
},
"logoSize": {
"type": "string",
"enum": [
"auto",
"small",
"large"
],
"title": "Logo size",
"description": "Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.",
"enumNames": [
"Standard",
"Small",
"Large"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, square corners, text at the start."
}
},
"required": [
"headline",
"validFrom",
"leadTime"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the kicker, the headline and the line under it, the date it applies from, the lead time now and before with its change, the product lines, the column captions, the title block, the call to action and the footnote."
},
"metaData": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 100,
"title": "Title",
"description": "Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes."
},
"captionTiny": {
"type": "string",
"maxLength": 200,
"title": "Tiny description (Pinterest, Threads, X)",
"description": "Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionShort": {
"type": "string",
"maxLength": 500,
"title": "Short description (Telegram, Threema, WeChat, WhatsApp)",
"description": "Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionMedium": {
"type": "string",
"maxLength": 1500,
"title": "Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok)",
"description": "Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionLong": {
"type": "string",
"maxLength": 4000,
"title": "Long description (Facebook Feed, YouTube)",
"description": "Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"title": "Hashtag"
},
"maxItems": 15,
"title": "Hashtags",
"description": "Written without the #. Up to 15, which every platform takes."
}
},
"additionalProperties": false,
"title": "Meta data",
"description": "Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data."
},
"locales": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"clipData": {
"type": "object",
"properties": {
"section": {
"type": "string",
"maxLength": 24,
"title": "Section",
"description": "What the post is, on the type plate at the end of the header, such as Lead times or Delivery."
},
"kicker": {
"type": "string",
"maxLength": 32,
"title": "Kicker",
"description": "A few words above the headline, such as Delivery update."
},
"headline": {
"type": "string",
"maxLength": 56,
"title": "Headline",
"description": "What has changed, in a sentence."
},
"subline": {
"type": "string",
"maxLength": 110,
"title": "Line under it",
"description": "One sentence on why, such as a new machine or a second shift."
},
"validFrom": {
"type": "string",
"format": "date-time",
"title": "Applies from",
"description": "The day the new lead times apply from. Only the date is read, as it is written here, and it is spelled out in the channel's language beside a calendar mark under the headline."
},
"validFromLabel": {
"type": "string",
"maxLength": 28,
"title": "Before the date",
"description": "The words set before the date, such as For orders from or Valid from."
},
"leadTime": {
"type": "object",
"properties": {
"now": {
"type": "number",
"title": "Now",
"description": "The lead time now, shown exactly as sent with the decimals it was sent with, in the channel's language."
},
"before": {
"type": "number",
"title": "Before",
"description": "The lead time before, in the same unit. Left out, no change and no drawing are shown."
},
"unit": {
"type": "string",
"maxLength": 16,
"title": "Unit",
"description": "The unit of both, such as days, working days, weeks or hours."
},
"nowLabel": {
"type": "string",
"maxLength": 20,
"title": "Caption of now",
"description": "The caption over the figure now and of its dimension, such as Now or Lead time now."
},
"beforeLabel": {
"type": "string",
"maxLength": 20,
"title": "Caption of before",
"description": "The caption of the dimension before, such as Before or Until October."
},
"good": {
"type": "string",
"enum": [
"down",
"up"
],
"title": "Good news is",
"description": "Which way the change is good news, so the tag and the hatched stretch take your positive colour for good news and your negative colour otherwise. For a lead time a fall is good news.",
"enumNames": [
"A fall, as for a lead time",
"A rise"
]
},
"changeText": {
"type": "string",
"maxLength": 24,
"title": "Change, as written",
"description": "The change in your own words, shown on the tag instead of the worked-out difference, such as 7 days faster. Left out, the tag says the difference and its share of before."
}
},
"additionalProperties": false,
"title": "Lead time",
"description": "The lead time now and before, as numbers in one unit. The figure now is set large; both are drawn as dimensions on a time scale, and the change is worked out from them exactly."
},
"lines": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 32,
"title": "Product line",
"description": "Such as Flange couplings or Custom parts to drawing."
},
"now": {
"type": "number",
"title": "Now",
"description": "Its lead time now, exactly as sent."
},
"before": {
"type": "number",
"title": "Before",
"description": "Its lead time before. Left out, its change is not shown."
},
"unit": {
"type": "string",
"maxLength": 16,
"title": "Unit",
"description": "Its unit, only where it is not the lead time's own, such as weeks, set beside its figures. Left out, its figures are in the lead time's unit and stand bare, as in a parts list."
}
},
"required": [
"name",
"now"
],
"additionalProperties": false,
"title": "Product line"
},
"minItems": 0,
"maxItems": 4,
"title": "Product lines",
"description": "Up to four product lines, each with its own lead time now and before, listed under the drawing and selected one after another. Leave the list empty for the lead time alone."
},
"columns": {
"type": "object",
"properties": {
"line": {
"type": "string",
"maxLength": 20,
"title": "Over the lines",
"description": "Such as Product line."
},
"before": {
"type": "string",
"maxLength": 16,
"title": "Over before",
"description": "Such as Before."
},
"now": {
"type": "string",
"maxLength": 16,
"title": "Over now",
"description": "Such as Now."
},
"change": {
"type": "string",
"maxLength": 16,
"title": "Over the change",
"description": "Such as Change."
}
},
"additionalProperties": false,
"title": "Column captions",
"description": "The captions over the product lines' columns, in your language. A caption left out is not drawn."
},
"drawing": {
"type": "object",
"properties": {
"number": {
"type": "string",
"maxLength": 16,
"title": "Sheet number",
"description": "The sheet's or the notice's number."
},
"revision": {
"type": "string",
"maxLength": 4,
"title": "Revision",
"description": "The revision, such as B or 03."
},
"date": {
"type": "string",
"maxLength": 16,
"title": "Date",
"description": "The date of issue, written as it should be shown, such as 2026-10-15."
}
},
"additionalProperties": false,
"title": "Title block",
"description": "The drawing's title block at the foot of the stage, on every frame: its number, its revision and its date, exactly as written. A field left out is not drawn; with none, there is no title block."
},
"drawingLabels": {
"type": "object",
"properties": {
"number": {
"type": "string",
"maxLength": 16,
"title": "Over the number",
"description": "Such as Sheet no."
},
"revision": {
"type": "string",
"maxLength": 12,
"title": "Over the revision",
"description": "Such as Rev."
},
"date": {
"type": "string",
"maxLength": 12,
"title": "Over the date",
"description": "Such as Date."
}
},
"additionalProperties": false,
"title": "Title block captions",
"description": "The small caption over each field of the title block, in your language. A caption left out is not drawn; the field still is."
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "Button",
"description": "What the button says."
},
"detail": {
"type": "string",
"maxLength": 48,
"title": "Line under it",
"description": "An address, a handle, an app, a phone number."
}
},
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address, a handle or a phone number."
},
"footnote": {
"type": "string",
"maxLength": 300,
"title": "Footnote",
"description": "Who stands behind the post and how the lead times are counted, such as your legal entity and from which day to which. Shown above your footer line from the first frame to the last; a long one is set smaller, never cut."
},
"look": {
"type": "object",
"properties": {
"theme": {
"type": "string",
"enum": [
"brand",
"light",
"dark",
"bold"
],
"title": "Theme",
"description": "Brand: your brand's own colours and background. Light or dark: a page tinted with your brand colour. Bold: your brand colour as the page.",
"enumNames": [
"Brand colours",
"Light",
"Dark",
"Bold brand colour"
]
},
"pace": {
"type": "string",
"enum": [
"calm",
"standard",
"punchy"
],
"title": "Pace",
"description": "How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.",
"enumNames": [
"Calm",
"Standard",
"Punchy"
]
},
"corners": {
"type": "string",
"enum": [
"square",
"soft",
"round"
],
"title": "Corners",
"description": "The shape of cards, pictures and buttons.",
"enumNames": [
"Square",
"Softly rounded",
"Round"
]
},
"align": {
"type": "string",
"enum": [
"start",
"centre"
],
"title": "Text alignment",
"description": "Where the text lines up.",
"enumNames": [
"At the start of the line",
"Centred"
]
},
"logo": {
"type": "string",
"enum": [
"auto",
"free"
],
"title": "Logo",
"description": "The style's own: the logo on a small plate so it reads on any page. As it is: the logo whole, with no plate, frame or crop, for a logo made to stand on the page, such as one with a transparent background. As it is, make sure your logo reads on the page of the theme you choose.",
"enumNames": [
"The style's own",
"As it is, no plate or crop"
]
},
"logoSize": {
"type": "string",
"enum": [
"auto",
"small",
"large"
],
"title": "Logo size",
"description": "Standard is the style's own size. Small draws the logo a fifth smaller, with its plate. Large draws it a quarter larger wherever the style has room for it, and at the standard size where it has none.",
"enumNames": [
"Standard",
"Small",
"Large"
]
}
},
"additionalProperties": false,
"title": "Look",
"description": "How the clip looks and moves. The same six switches in every format (theme, pace, corners, alignment, logo, logo size). Leave any out for the package's default: the brand's colours, standard pace, square corners, text at the start."
}
},
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the kicker, the headline and the line under it, the date it applies from, the lead time now and before with its change, the product lines, the column captions, the title block, the call to action and the footnote."
},
"metaData": {
"type": "object",
"properties": {
"title": {
"type": "string",
"maxLength": 100,
"title": "Title",
"description": "Used where the platform has a title of its own: Facebook Feed, LinkedIn, Pinterest and YouTube. Up to 100 characters, which every one of them takes."
},
"captionTiny": {
"type": "string",
"maxLength": 200,
"title": "Tiny description (Pinterest, Threads, X)",
"description": "Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionShort": {
"type": "string",
"maxLength": 500,
"title": "Short description (Telegram, Threema, WeChat, WhatsApp)",
"description": "Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionMedium": {
"type": "string",
"maxLength": 1500,
"title": "Medium description (Discord, Facebook Reels, Instagram, LinkedIn, Signal, Slack, TikTok)",
"description": "Up to 1500 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"captionLong": {
"type": "string",
"maxLength": 4000,
"title": "Long description (Facebook Feed, YouTube)",
"description": "Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 60,
"title": "Hashtag"
},
"maxItems": 15,
"title": "Hashtags",
"description": "Written without the #. Up to 15, which every platform takes."
}
},
"additionalProperties": false,
"title": "Meta data",
"description": "Everything about the post that is never drawn in the clip: its title, its description in four lengths, one per kind of platform, and its hashtags. Reelwire adds the brand's description, link and hashtags after it. Left out, the post text is generated from the clip data."
}
},
"additionalProperties": false
},
"propertyNames": {
"enum": [
"aa",
"ab",
"ae",
"af",
"ak",
"am",
"an",
"ar",
"as",
"av",
"ay",
"az",
"ba",
"be",
"bg",
"bi",
"bm",
"bn",
"bo",
"br",
"bs",
"ca",
"ce",
"ch",
"co",
"cr",
"cs",
"cu",
"cv",
"cy",
"da",
"de",
"dv",
"dz",
"ee",
"el",
"en",
"eo",
"es",
"et",
"eu",
"fa",
"ff",
"fi",
"fj",
"fo",
"fr",
"fy",
"ga",
"gd",
"gl",
"gn",
"gu",
"gv",
"ha",
"he",
"hi",
"ho",
"hr",
"ht",
"hu",
"hy",
"hz",
"ia",
"id",
"ie",
"ig",
"ii",
"ik",
"io",
"is",
"it",
"iu",
"ja",
"jv",
"ka",
"kg",
"ki",
"kj",
"kk",
"kl",
"km",
"kn",
"ko",
"kr",
"ks",
"ku",
"kv",
"kw",
"ky",
"la",
"lb",
"lg",
"li",
"ln",
"lo",
"lt",
"lu",
"lv",
"mg",
"mh",
"mi",
"mk",
"ml",
"mn",
"mr",
"ms",
"mt",
"my",
"na",
"nb",
"nd",
"ne",
"ng",
"nl",
"nn",
"no",
"nr",
"nv",
"ny",
"oc",
"oj",
"om",
"or",
"os",
"pa",
"pi",
"pl",
"ps",
"pt",
"qu",
"rm",
"rn",
"ro",
"ru",
"rw",
"sa",
"sc",
"sd",
"se",
"sg",
"si",
"sk",
"sl",
"sm",
"sn",
"so",
"sq",
"sr",
"ss",
"st",
"su",
"sv",
"sw",
"ta",
"te",
"tg",
"th",
"ti",
"tk",
"tl",
"tn",
"to",
"tr",
"ts",
"tt",
"tw",
"ty",
"ug",
"uk",
"ur",
"uz",
"ve",
"vi",
"vo",
"wa",
"wo",
"xh",
"yi",
"yo",
"za",
"zh",
"zu",
"zh-CN",
"zh-TW",
"pt-BR"
]
}
}
},
"required": [
"clipData"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}
Ask Reelwire for the same document yourself, without signing in:
curl "http://localhost:4000/v1/formats/template/tpl_1c972308e957?variant=Lead%20time&version=1.0.0"
Delivery JSON
Your own system sends this to one of your streams, POST /v1/stream, and every channel listening to
that stream draws it with its template. data is the document described above; a stream with an
empty field map passes it to the template unchanged. Try it first on POST /v1/stream/validate,
which answers the same without publishing anything. Streams and feeds
explains the rest, including how to map a document of your own shape instead.
{
"streamId": "st_your_stream_id",
"eventId": "01M2SQMKK3G1NVFXV31DCBVB95",
"occurredAt": "2026-09-23T07:00:00Z",
"locale": "en",
"data": {
"clipData": {
"section": "Lead times",
"kicker": "Delivery update",
"headline": "Shorter lead times on flange couplings",
"subline": "A second five-axis cell in Ulm has taken a week out of our order book.",
"validFrom": "2026-11-02T00:00:00+01:00",
"validFromLabel": "For orders from",
"leadTime": {
"now": 12,
"good": "down",
"unit": "working days",
"before": 19,
"nowLabel": "Now",
"changeText": "",
"beforeLabel": "Before"
},
"lines": [
{
"now": 12,
"name": "Flange couplings",
"before": 19
},
{
"now": 8,
"name": "Shaft collars",
"before": 11
},
{
"now": 15,
"name": "Hydraulic manifolds",
"before": 24
},
{
"now": 18,
"name": "Custom parts to drawing",
"before": 25
}
],
"columns": {
"now": "Now",
"line": "Product line",
"before": "Before",
"change": "Change"
},
"drawing": {
"date": "2026-10-15",
"number": "VB-LT-2026-11",
"revision": "B"
},
"drawingLabels": {
"date": "Date",
"number": "Sheet no.",
"revision": "Rev."
},
"cta": {
"label": "Request a quote",
"detail": "vossberg.example/lead-times"
},
"footnote": "Vossberg Precision GmbH, Ulm. Lead times in working days from order confirmation to dispatch, for standard batch sizes and materials in stock.",
"look": {
"logo": "auto",
"pace": "standard",
"align": "start",
"theme": "brand",
"corners": "square",
"logoSize": "auto"
}
},
"metaData": {
"title": "Shorter lead times on flange couplings from 2 November",
"captionTiny": "Our lead time on flange couplings is down from 19 to 12 working days for orders from 2 November. Ask for a quote.",
"captionShort": "From 2 November our lead time on flange couplings drops from 19 to 12 working days. A second five-axis cell in Ulm has taken a week out of our order book, and shaft collars, hydraulic manifolds and custom parts to drawing are all quicker too. Send us your drawing for a quote.",
"captionMedium": "Shorter lead times from 2 November. Our second five-axis machining cell in Ulm is now running two shifts, and it has taken a week out of our order book: flange couplings ship in 12 working days instead of 19, shaft collars in 8 instead of 11, hydraulic manifolds in 15 instead of 24 and custom parts to drawing in 18 instead of 25. Lead times count from order confirmation to dispatch, for standard batch sizes and materials in stock. Send us your drawing and we will quote within two working days.",
"captionLong": "Shorter lead times from 2 November. Over the summer we installed a second five-axis machining cell at our plant in Ulm, and since September it has been running two shifts. The result is a week out of our order book: flange couplings now ship in 12 working days instead of 19, shaft collars in 8 instead of 11, hydraulic manifolds in 15 instead of 24 and custom parts to drawing in 18 instead of 25. For our customers that means less safety stock, shorter planning horizons and faster answers when a line needs a spare part. Every part is still measured on our coordinate measuring machine and leaves with its inspection report. Lead times count from order confirmation to dispatch, for standard batch sizes and materials in stock; for larger series or special materials we confirm a date with your quote. Send us your drawing and our application engineers will quote within two working days. Vossberg Precision GmbH, Ulm.",
"hashtags": [
"manufacturing",
"leadtime",
"supplychain",
"cncmachining",
"precisionengineering"
]
}
}
}
The delivery names no version: which build draws it is the channel's choice, the newest of its
variant or the one it is pinned to. eventId is a ULID you make once per event: sending the same
one again changes nothing. occurredAt is when the thing happened, not when you sent it. locale
is the language of the text in data, and data.locales carries other languages beside it.