Finance (Insurance), Meet your agent 1.0.0
| Template | Finance (Insurance), tpl_466386ca3ac5 |
|---|---|
| Variant | Meet your agent |
| Version | 1.0.0, the newest: what a channel following this variant draws |
| Shapes | 9x16, 4x5, 1x1, 16x9, 2x3 |
| Length | 14 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 local agent introduced: the headline, a warm card with their portrait, name, role, languages and contact, and their specialities on soft pills, complete on the first frame, each pill lit in turn, then their hours and why they do it in their words, then the button. The disclosure stays on screen throughout. Ten seconds with one speciality, a second more per speciality. metaData is never drawn.
| Field | Type | Required | Limit | What it is |
|---|---|---|---|---|
clipData | group | yes | Clip data: Everything drawn in the clip: the section, the headline, the agent's picture, name and role, the specialities, the opening hours, the languages, the quote, the contact, the call to action and the disclosure. | |
clipData.section | text | up to 24 characters | Section: What the post is about, on a soft label at the end of the header, such as Home insurance or Travel cover. | |
clipData.headline | text | yes | up to 56 characters | Headline: The title of the post. |
clipData.picture | image | media:// file from the media library, alt text up to 120 characters | Picture: A portrait of the agent or adviser from the media library, large and round on the card. Left out, your brand's presenter stands in. | |
clipData.name | text | up to 32 characters | Name: The agent's name, large on the card. Left out, your brand's presenter's name. | |
clipData.role | text | up to 32 characters | Role: What they do, under the name, such as Your local agent. Left out, your brand's presenter's line. | |
clipData.specialities | list | yes | at least 1, up to 5 | Specialities: One to five things the agent knows best, each on a soft pill with its icon. All are there on the first frame, then each is lit in turn. |
clipData.specialities[] | group | Speciality | ||
clipData.specialities[].label | text | yes | up to 32 characters | Label: The speciality in a few words. |
clipData.specialities[].icon | enum | house, building, store, factory, car, bike, truck, bus, plane, globe, heart-pulse, stethoscope, baby, users, user, briefcase, shield-check, piggy-bank, wallet, landmark, key-round, hand-heart, hand-helping, file-text, clipboard-check, scale, calculator, graduation-cap, leaf, trees, droplets, flame, wrench, smartphone, laptop, gem, watch, dumbbell, utensils, shopping-bag, message-circle, info | Icon: A line icon at the start of the pill. Left out, the pill has none. | |
clipData.hours | list | up to 3 | Opening hours: Up to three lines of when the agent can be reached, each on a soft pill with a clock, drawn exactly as written, such as Mon to Fri, 9:00 to 17:30. | |
clipData.hours[] | text | up to 40 characters | Hours | |
clipData.languages | text | up to 48 characters | Languages: The languages the agent speaks, on the card beside a globe, such as English and Spanish. | |
clipData.quote | text | up to 140 characters | Quote: Why the agent does what they do, in their own words, in a warm card after the specialities. | |
clipData.contact | text | up to 48 characters | Contact: How to reach the agent directly, on the card beside a phone, such as a phone number or an email address. | |
clipData.cta | group | Call to action: The button at the end and the line under it, such as a web address 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 phone number, an app, an office. | |
clipData.disclosure | text | up to 300 characters | Disclosure: What must be shown with the post, such as who the insurer or agent is, the licence and where it applies, and that cover is subject to the policy's terms, conditions and exclusions. On screen from the first frame to the last, set smaller rather than 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, round 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 about, on a soft label at the end of the header, such as Home insurance or Travel cover."
},
"headline": {
"type": "string",
"maxLength": 56,
"title": "Headline",
"description": "The title of the post."
},
"picture": {
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"pattern": "^media:\\/\\/[^\\s/\\\\\\u0000-\\u001f][^/\\\\\\u0000-\\u001f]{0,254}$",
"title": "Picture",
"description": "A file from the workspace's media library, written media:// and the file's id or name. A web address is refused."
},
"alt": {
"type": "string",
"maxLength": 120,
"title": "Alt text",
"description": "What the picture shows, for anyone who cannot see it."
}
},
"required": [
"url"
],
"additionalProperties": false,
"title": "Picture",
"description": "A portrait of the agent or adviser from the media library, large and round on the card. Left out, your brand's presenter stands in."
},
"name": {
"type": "string",
"maxLength": 32,
"title": "Name",
"description": "The agent's name, large on the card. Left out, your brand's presenter's name."
},
"role": {
"type": "string",
"maxLength": 32,
"title": "Role",
"description": "What they do, under the name, such as Your local agent. Left out, your brand's presenter's line."
},
"specialities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 32,
"title": "Label",
"description": "The speciality in a few words."
},
"icon": {
"type": "string",
"enum": [
"house",
"building",
"store",
"factory",
"car",
"bike",
"truck",
"bus",
"plane",
"globe",
"heart-pulse",
"stethoscope",
"baby",
"users",
"user",
"briefcase",
"shield-check",
"piggy-bank",
"wallet",
"landmark",
"key-round",
"hand-heart",
"hand-helping",
"file-text",
"clipboard-check",
"scale",
"calculator",
"graduation-cap",
"leaf",
"trees",
"droplets",
"flame",
"wrench",
"smartphone",
"laptop",
"gem",
"watch",
"dumbbell",
"utensils",
"shopping-bag",
"message-circle",
"info"
],
"title": "Icon",
"description": "A line icon at the start of the pill. Left out, the pill has none.",
"enumNames": [
"House",
"Building",
"Store",
"Factory",
"Car",
"Bike",
"Truck",
"Bus",
"Plane",
"Globe",
"Heart pulse",
"Stethoscope",
"Baby",
"Users",
"User",
"Briefcase",
"Shield check",
"Piggy bank",
"Wallet",
"Landmark",
"Key round",
"Hand heart",
"Hand helping",
"File text",
"Clipboard check",
"Scale",
"Calculator",
"Graduation cap",
"Leaf",
"Trees",
"Droplets",
"Flame",
"Wrench",
"Smartphone",
"Laptop",
"Gem",
"Watch",
"Dumbbell",
"Utensils",
"Shopping bag",
"Message circle",
"Info"
]
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Speciality"
},
"minItems": 1,
"maxItems": 5,
"title": "Specialities",
"description": "One to five things the agent knows best, each on a soft pill with its icon. All are there on the first frame, then each is lit in turn."
},
"hours": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"title": "Hours"
},
"maxItems": 3,
"title": "Opening hours",
"description": "Up to three lines of when the agent can be reached, each on a soft pill with a clock, drawn exactly as written, such as Mon to Fri, 9:00 to 17:30."
},
"languages": {
"type": "string",
"maxLength": 48,
"title": "Languages",
"description": "The languages the agent speaks, on the card beside a globe, such as English and Spanish."
},
"quote": {
"type": "string",
"maxLength": 140,
"title": "Quote",
"description": "Why the agent does what they do, in their own words, in a warm card after the specialities."
},
"contact": {
"type": "string",
"maxLength": 48,
"title": "Contact",
"description": "How to reach the agent directly, on the card beside a phone, such as a phone number or an email address."
},
"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 phone number, an app, an office."
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address or a phone number."
},
"disclosure": {
"type": "string",
"maxLength": 300,
"title": "Disclosure",
"description": "What must be shown with the post, such as who the insurer or agent is, the licence and where it applies, and that cover is subject to the policy's terms, conditions and exclusions. On screen from the first frame to the last, set smaller rather than 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, round corners, text at the start."
}
},
"required": [
"headline",
"specialities"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the headline, the agent's picture, name and role, the specialities, the opening hours, the languages, the quote, the contact, the call to action and the disclosure."
},
"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 about, on a soft label at the end of the header, such as Home insurance or Travel cover."
},
"headline": {
"type": "string",
"maxLength": 56,
"title": "Headline",
"description": "The title of the post."
},
"picture": {
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 2048,
"pattern": "^media:\\/\\/[^\\s/\\\\\\u0000-\\u001f][^/\\\\\\u0000-\\u001f]{0,254}$",
"title": "Picture",
"description": "A file from the workspace's media library, written media:// and the file's id or name. A web address is refused."
},
"alt": {
"type": "string",
"maxLength": 120,
"title": "Alt text",
"description": "What the picture shows, for anyone who cannot see it."
}
},
"required": [
"url"
],
"additionalProperties": false,
"title": "Picture",
"description": "A portrait of the agent or adviser from the media library, large and round on the card. Left out, your brand's presenter stands in."
},
"name": {
"type": "string",
"maxLength": 32,
"title": "Name",
"description": "The agent's name, large on the card. Left out, your brand's presenter's name."
},
"role": {
"type": "string",
"maxLength": 32,
"title": "Role",
"description": "What they do, under the name, such as Your local agent. Left out, your brand's presenter's line."
},
"specialities": {
"type": "array",
"items": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 32,
"title": "Label",
"description": "The speciality in a few words."
},
"icon": {
"type": "string",
"enum": [
"house",
"building",
"store",
"factory",
"car",
"bike",
"truck",
"bus",
"plane",
"globe",
"heart-pulse",
"stethoscope",
"baby",
"users",
"user",
"briefcase",
"shield-check",
"piggy-bank",
"wallet",
"landmark",
"key-round",
"hand-heart",
"hand-helping",
"file-text",
"clipboard-check",
"scale",
"calculator",
"graduation-cap",
"leaf",
"trees",
"droplets",
"flame",
"wrench",
"smartphone",
"laptop",
"gem",
"watch",
"dumbbell",
"utensils",
"shopping-bag",
"message-circle",
"info"
],
"title": "Icon",
"description": "A line icon at the start of the pill. Left out, the pill has none.",
"enumNames": [
"House",
"Building",
"Store",
"Factory",
"Car",
"Bike",
"Truck",
"Bus",
"Plane",
"Globe",
"Heart pulse",
"Stethoscope",
"Baby",
"Users",
"User",
"Briefcase",
"Shield check",
"Piggy bank",
"Wallet",
"Landmark",
"Key round",
"Hand heart",
"Hand helping",
"File text",
"Clipboard check",
"Scale",
"Calculator",
"Graduation cap",
"Leaf",
"Trees",
"Droplets",
"Flame",
"Wrench",
"Smartphone",
"Laptop",
"Gem",
"Watch",
"Dumbbell",
"Utensils",
"Shopping bag",
"Message circle",
"Info"
]
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Speciality"
},
"minItems": 1,
"maxItems": 5,
"title": "Specialities",
"description": "One to five things the agent knows best, each on a soft pill with its icon. All are there on the first frame, then each is lit in turn."
},
"hours": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"title": "Hours"
},
"maxItems": 3,
"title": "Opening hours",
"description": "Up to three lines of when the agent can be reached, each on a soft pill with a clock, drawn exactly as written, such as Mon to Fri, 9:00 to 17:30."
},
"languages": {
"type": "string",
"maxLength": 48,
"title": "Languages",
"description": "The languages the agent speaks, on the card beside a globe, such as English and Spanish."
},
"quote": {
"type": "string",
"maxLength": 140,
"title": "Quote",
"description": "Why the agent does what they do, in their own words, in a warm card after the specialities."
},
"contact": {
"type": "string",
"maxLength": 48,
"title": "Contact",
"description": "How to reach the agent directly, on the card beside a phone, such as a phone number or an email address."
},
"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 phone number, an app, an office."
}
},
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as a web address or a phone number."
},
"disclosure": {
"type": "string",
"maxLength": 300,
"title": "Disclosure",
"description": "What must be shown with the post, such as who the insurer or agent is, the licence and where it applies, and that cover is subject to the policy's terms, conditions and exclusions. On screen from the first frame to the last, set smaller rather than 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, round corners, text at the start."
}
},
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the headline, the agent's picture, name and role, the specialities, the opening hours, the languages, the quote, the contact, the call to action and the disclosure."
},
"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_466386ca3ac5?variant=Meet%20your%20agent&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": "Your local agent",
"headline": "Your agent in Harrogate",
"picture": {
"alt": "A person's silhouette on a round green ground",
"url": "media://example-badge.png"
},
"name": "Amira Haddad",
"role": "Your local agent",
"specialities": [
{
"icon": "house",
"label": "Home and contents"
},
{
"icon": "car",
"label": "Car and van"
},
{
"icon": "store",
"label": "Small business"
},
{
"icon": "plane",
"label": "Travel"
}
],
"hours": [
"Mon to Fri, 9:00 to 17:30",
"Saturday, 9:00 to 12:00"
],
"languages": "English, Arabic and French",
"quote": "I grew up here. When something goes wrong, you should be able to call somebody who knows your street.",
"contact": "01423 500 600 or harrogate@harbour.example",
"cta": {
"label": "Book a call",
"detail": "harbourmutual.example/harrogate"
},
"disclosure": "Harbour Mutual Insurance Ltd, licence 4471. Our local agents are appointed representatives of Harbour Mutual. Cover is subject to the terms, conditions and exclusions of your policy.",
"look": {
"logo": "auto",
"pace": "standard",
"align": "start",
"theme": "brand",
"corners": "round",
"logoSize": "auto"
}
},
"metaData": {
"title": "Meet Amira, your local agent in Harrogate",
"captionTiny": "Meet Amira, your local agent in Harrogate: home, car, small business and travel cover, in English, Arabic or French. Book a call.",
"captionShort": "Meet Amira Haddad, your local agent in Harrogate. She looks after home and contents, car and van, small business and travel cover, and speaks English, Arabic and French. \"I grew up here. When something goes wrong, you should be able to call somebody who knows your street.\" Open Monday to Friday, 9:00 to 17:30, and Saturday mornings. Book a call at harbourmutual.example/harrogate. Cover is subject to the terms, conditions and exclusions of your policy.",
"captionMedium": "Meet Amira Haddad, your local Harbour Mutual agent in Harrogate. Amira has helped families and small businesses in the town with their cover for years, and she knows the streets, the river and the weather as well as anybody. She looks after home and contents, car and van, small business and travel insurance, and she is happy to talk it through in English, Arabic or French. In her own words: \"I grew up here. When something goes wrong, you should be able to call somebody who knows your street.\" You can reach Amira Monday to Friday from 9:00 to 17:30 and on Saturday mornings from 9:00 to 12:00, on 01423 500 600 or at harrogate@harbour.example. Whether you are reviewing your cover, starting a business or need help with a claim, book a call at harbourmutual.example/harrogate. Our local agents are appointed representatives of Harbour Mutual Insurance Ltd, licence 4471. Cover is subject to the terms, conditions and exclusions of your policy.",
"captionLong": "Meet Amira Haddad, your local Harbour Mutual agent in Harrogate. Insurance is easier when there is a person behind it, somebody who picks up the phone, knows your town and explains your cover in plain words. That is what Amira does every day. She grew up in Harrogate and has helped families, landlords and small businesses in the town with their cover for years, so she knows the streets, the river and the weather as well as anybody. Her specialities are home and contents, car and van, small business and travel insurance. She can look at your current policies with you, explain what is and is not covered, and help you find cover that fits, whether you are buying your first home, opening a shop or planning a long trip abroad. She is happy to talk it through in English, Arabic or French. In her own words: \"I grew up here. When something goes wrong, you should be able to call somebody who knows your street.\" And when something does go wrong, Amira is the person who helps you start your claim and stays with you until it is settled. You can reach her Monday to Friday from 9:00 to 17:30 and on Saturday mornings from 9:00 to 12:00, on 01423 500 600 or at harrogate@harbour.example, or book a call at a time that suits you at harbourmutual.example/harrogate. Our local agents are appointed representatives of Harbour Mutual Insurance Ltd, licence 4471. Cover is subject to the terms, conditions and exclusions of your policy.",
"hashtags": [
"meettheteam",
"localagent",
"insuranceagent",
"harrogate",
"homeinsurance"
]
}
}
}
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.