Skip to main content

Pharmacies (Community pharmacies), Our services 1.0.0

TemplatePharmacies (Community pharmacies), tpl_79f6dc8bc66f
VariantOur services
Version1.0.0, the newest: what a channel following this variant draws
Shapes9x16, 4x5, 1x1, 16x9, 2x3
Length11 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 neighbourhood pharmacy's services: up to eight, each with a pictogram in a round badge, its name and a line saying what it is, on one soft card that turns pages where the words need the room. The title is on every page. Each service is lit in turn, then the button and your pharmacist. Half a second more per service. metaData is never drawn.

FieldTypeRequiredLimitWhat it is
clipDatagroupyesClip data: Everything drawn in the clip: the section, the title and line under it, each service's name, line and pictogram, the closing line, the call to action and the mandatory text where one is sent.
clipData.sectiontextup to 28 charactersSection: What the post is, on a pill in the header, such as Our services.
clipData.titletextyesup to 56 charactersTitle: The headline, such as What we can do for you.
clipData.sublinetextup to 90 charactersLine under the title: A friendly line under the headline. The clip adds no claim of its own: write only what you may say.
clipData.serviceslistyesat least 1, up to 8Services: Up to eight services, each with a pictogram, its name and a line saying what it is, lit in turn. A long list turns pages rather than shrinking the type. About half a second more per service.
clipData.services[]groupService
clipData.services[].nametextyesup to 28 charactersName: The service, such as Blood pressure check.
clipData.services[].linetextup to 90 charactersLine: What it is, in a sentence. Write only what you may say about the service.
clipData.services[].iconenumcross, capsule, blister, syringe, leaflet, bottle, pollen, plaster, tube, counter, stethoscope, heart-pulse, heart, baby, phone, mail, house, truck, package, shield-check, clipboard-check, list-checks, thermometer, droplets, sun, eye, glasses, users, user, hand-helping, hand-heart, calendar, clock, gift, leaf, flower-2, sprout, smartphone, globe, tag, store, shopping-bag, key-round, qr-code, book-open, accessibility, lightbulb, info, star, badge-check, moon, scale, apple, dumbbellPictogram: The pictogram on the service's round badge. Left out, a rounded cross.
clipData.notetextup to 140 charactersA line to end on: A short sentence of your own under the list, such as Ask any of us which is right for you. The clip adds no claim: write only what you may say.
clipData.ctagroupCall to action: The button at the end and the line under it, such as the pharmacy's address and opening hours or a phone number.
clipData.cta.labeltextyesup to 28 charactersButton: What the button says.
clipData.cta.detailtextup to 56 charactersLine under it: An address, the opening hours, a phone number, a web address.
clipData.mandatorytextup to 320 charactersMandatory text: The words your country's law asks for wherever a medicine is named, such as Always read the label in the UK or the Pflichttext in Germany. Shown whole at the foot of every frame, set smaller and then on more lines, never cut. Leave it out where no medicine is named.
clipData.lookgroupLook: 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.themeenumbrand, light, dark, boldTheme: 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.paceenumcalm, standard, punchyPace: How things arrive: calm fades, a standard rhythm, or punchy slams and hard cuts.
clipData.look.cornersenumsquare, soft, roundCorners: The shape of cards, pictures and buttons.
clipData.look.alignenumstart, centreText alignment: Where the text lines up.
clipData.look.logoenumauto, freeLogo: 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.logoSizeenumauto, small, largeLogo 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.
metaDatagroupMeta 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.titletextup to 100 charactersTitle: 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.captionTinytextup to 200 charactersTiny description (Pinterest, Threads, X): Up to 200 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionShorttextup to 500 charactersShort description (Telegram, Threema, WeChat, WhatsApp): Up to 500 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.captionMediumtextup to 1500 charactersMedium 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.captionLongtextup to 4000 charactersLong description (Facebook Feed, YouTube): Up to 4000 characters. The brand's description, link and hashtags follow it within the platform's limit.
metaData.hashtagslistup to 15Hashtags: Written without the #. Up to 15, which every platform takes.
metaData.hashtags[]textup to 60 charactersHashtag

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": 28,
"title": "Section",
"description": "What the post is, on a pill in the header, such as Our services."
},
"title": {
"type": "string",
"maxLength": 56,
"title": "Title",
"description": "The headline, such as What we can do for you."
},
"subline": {
"type": "string",
"maxLength": 90,
"title": "Line under the title",
"description": "A friendly line under the headline. The clip adds no claim of its own: write only what you may say."
},
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 28,
"title": "Name",
"description": "The service, such as Blood pressure check."
},
"line": {
"type": "string",
"maxLength": 90,
"title": "Line",
"description": "What it is, in a sentence. Write only what you may say about the service."
},
"icon": {
"type": "string",
"enum": [
"cross",
"capsule",
"blister",
"syringe",
"leaflet",
"bottle",
"pollen",
"plaster",
"tube",
"counter",
"stethoscope",
"heart-pulse",
"heart",
"baby",
"phone",
"mail",
"house",
"truck",
"package",
"shield-check",
"clipboard-check",
"list-checks",
"thermometer",
"droplets",
"sun",
"eye",
"glasses",
"users",
"user",
"hand-helping",
"hand-heart",
"calendar",
"clock",
"gift",
"leaf",
"flower-2",
"sprout",
"smartphone",
"globe",
"tag",
"store",
"shopping-bag",
"key-round",
"qr-code",
"book-open",
"accessibility",
"lightbulb",
"info",
"star",
"badge-check",
"moon",
"scale",
"apple",
"dumbbell"
],
"title": "Pictogram",
"description": "The pictogram on the service's round badge. Left out, a rounded cross.",
"enumNames": [
"Cross",
"Capsule",
"Tablets",
"Syringe",
"Leaflet",
"Bottle",
"Pollen",
"Plaster",
"Tube of cream",
"Counter",
"Stethoscope",
"Heart pulse",
"Heart",
"Baby",
"Phone",
"Mail",
"House",
"Truck",
"Package",
"Shield check",
"Clipboard check",
"List checks",
"Thermometer",
"Droplets",
"Sun",
"Eye",
"Glasses",
"Users",
"User",
"Hand helping",
"Hand heart",
"Calendar",
"Clock",
"Gift",
"Leaf",
"Flower 2",
"Sprout",
"Smartphone",
"Globe",
"Tag",
"Store",
"Shopping bag",
"Key round",
"Qr code",
"Book open",
"Accessibility",
"Lightbulb",
"Info",
"Star",
"Badge check",
"Moon",
"Scale",
"Apple",
"Dumbbell"
]
}
},
"required": [
"name"
],
"additionalProperties": false,
"title": "Service"
},
"minItems": 1,
"maxItems": 8,
"title": "Services",
"description": "Up to eight services, each with a pictogram, its name and a line saying what it is, lit in turn. A long list turns pages rather than shrinking the type. About half a second more per service."
},
"note": {
"type": "string",
"maxLength": 140,
"title": "A line to end on",
"description": "A short sentence of your own under the list, such as Ask any of us which is right for you. The clip adds no claim: write only what you may say."
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "Button",
"description": "What the button says."
},
"detail": {
"type": "string",
"maxLength": 56,
"title": "Line under it",
"description": "An address, the opening hours, a phone number, a web address."
}
},
"required": [
"label"
],
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as the pharmacy's address and opening hours or a phone number."
},
"mandatory": {
"type": "string",
"maxLength": 320,
"title": "Mandatory text",
"description": "The words your country's law asks for wherever a medicine is named, such as Always read the label in the UK or the Pflichttext in Germany. Shown whole at the foot of every frame, set smaller and then on more lines, never cut. Leave it out where no medicine is named."
},
"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": [
"title",
"services"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the title and line under it, each service's name, line and pictogram, the closing line, the call to action and the mandatory text where one is sent."
},
"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": 28,
"title": "Section",
"description": "What the post is, on a pill in the header, such as Our services."
},
"title": {
"type": "string",
"maxLength": 56,
"title": "Title",
"description": "The headline, such as What we can do for you."
},
"subline": {
"type": "string",
"maxLength": 90,
"title": "Line under the title",
"description": "A friendly line under the headline. The clip adds no claim of its own: write only what you may say."
},
"services": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"maxLength": 28,
"title": "Name",
"description": "The service, such as Blood pressure check."
},
"line": {
"type": "string",
"maxLength": 90,
"title": "Line",
"description": "What it is, in a sentence. Write only what you may say about the service."
},
"icon": {
"type": "string",
"enum": [
"cross",
"capsule",
"blister",
"syringe",
"leaflet",
"bottle",
"pollen",
"plaster",
"tube",
"counter",
"stethoscope",
"heart-pulse",
"heart",
"baby",
"phone",
"mail",
"house",
"truck",
"package",
"shield-check",
"clipboard-check",
"list-checks",
"thermometer",
"droplets",
"sun",
"eye",
"glasses",
"users",
"user",
"hand-helping",
"hand-heart",
"calendar",
"clock",
"gift",
"leaf",
"flower-2",
"sprout",
"smartphone",
"globe",
"tag",
"store",
"shopping-bag",
"key-round",
"qr-code",
"book-open",
"accessibility",
"lightbulb",
"info",
"star",
"badge-check",
"moon",
"scale",
"apple",
"dumbbell"
],
"title": "Pictogram",
"description": "The pictogram on the service's round badge. Left out, a rounded cross.",
"enumNames": [
"Cross",
"Capsule",
"Tablets",
"Syringe",
"Leaflet",
"Bottle",
"Pollen",
"Plaster",
"Tube of cream",
"Counter",
"Stethoscope",
"Heart pulse",
"Heart",
"Baby",
"Phone",
"Mail",
"House",
"Truck",
"Package",
"Shield check",
"Clipboard check",
"List checks",
"Thermometer",
"Droplets",
"Sun",
"Eye",
"Glasses",
"Users",
"User",
"Hand helping",
"Hand heart",
"Calendar",
"Clock",
"Gift",
"Leaf",
"Flower 2",
"Sprout",
"Smartphone",
"Globe",
"Tag",
"Store",
"Shopping bag",
"Key round",
"Qr code",
"Book open",
"Accessibility",
"Lightbulb",
"Info",
"Star",
"Badge check",
"Moon",
"Scale",
"Apple",
"Dumbbell"
]
}
},
"required": [
"name"
],
"additionalProperties": false,
"title": "Service"
},
"minItems": 1,
"maxItems": 8,
"title": "Services",
"description": "Up to eight services, each with a pictogram, its name and a line saying what it is, lit in turn. A long list turns pages rather than shrinking the type. About half a second more per service."
},
"note": {
"type": "string",
"maxLength": 140,
"title": "A line to end on",
"description": "A short sentence of your own under the list, such as Ask any of us which is right for you. The clip adds no claim: write only what you may say."
},
"cta": {
"type": "object",
"properties": {
"label": {
"type": "string",
"maxLength": 28,
"title": "Button",
"description": "What the button says."
},
"detail": {
"type": "string",
"maxLength": 56,
"title": "Line under it",
"description": "An address, the opening hours, a phone number, a web address."
}
},
"additionalProperties": false,
"title": "Call to action",
"description": "The button at the end and the line under it, such as the pharmacy's address and opening hours or a phone number."
},
"mandatory": {
"type": "string",
"maxLength": 320,
"title": "Mandatory text",
"description": "The words your country's law asks for wherever a medicine is named, such as Always read the label in the UK or the Pflichttext in Germany. Shown whole at the foot of every frame, set smaller and then on more lines, never cut. Leave it out where no medicine is named."
},
"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 title and line under it, each service's name, line and pictogram, the closing line, the call to action and the mandatory text where one is sent."
},
"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_79f6dc8bc66f?variant=Our%20services&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": "Our services",
"title": "What we can do for you",
"subline": "More than medicines, all at your local counter",
"services": [
{
"icon": "heart-pulse",
"line": "A quick, free check while you wait, and a word about what the numbers mean.",
"name": "Blood pressure check"
},
{
"icon": "syringe",
"line": "Your vaccination at the counter, in a private room, from a trained pharmacist.",
"name": "Flu jab"
},
{
"icon": "clipboard-check",
"line": "Sit down with a pharmacist and go through everything you take.",
"name": "Medicine review"
},
{
"icon": "truck",
"line": "Your prescription brought to your door, if getting here is hard.",
"name": "Home delivery"
},
{
"icon": "scale",
"line": "Stockings measured and fitted by somebody who knows how they should feel.",
"name": "Made-to-measure compression"
},
{
"icon": "baby",
"line": "Weighing, feeding questions and the little worries, any time we are open.",
"name": "Baby and child advice"
},
{
"icon": "globe",
"line": "What to pack and what to protect against before you go.",
"name": "Travel health"
},
{
"icon": "calendar",
"line": "Order online or by phone and collect when it suits you.",
"name": "Repeat prescriptions"
}
],
"note": "Not sure which is right for you? Ask any of us at the counter.",
"cta": {
"label": "Ask us at the counter",
"detail": "12 Linden Road ยท Open until 7 pm"
},
"mandatory": "",
"look": {
"logo": "auto",
"pace": "standard",
"align": "start",
"theme": "brand",
"corners": "round",
"logoSize": "auto"
}
},
"metaData": {
"title": "Our services: more than medicines at your local counter",
"captionTiny": "More than medicines: blood pressure checks, flu jabs, home delivery and more at your local pharmacy. Ask us.",
"captionShort": "More than medicines: at our counter you can have your blood pressure checked, book your flu jab, go through your medicines with a pharmacist, have a prescription delivered and more. Ask any of us which service is right for you.",
"captionMedium": "Your local pharmacy does more than hand over medicines. At 12 Linden Road you can have your blood pressure checked while you wait, have your flu jab in a private room, sit down with a pharmacist to go through everything you take, have your prescription delivered to your door, get compression stockings measured and fitted, and ask about travel health or a baby's feeding. Not sure which is right for you? Ask any of us at the counter. We are open until 7 pm.",
"captionLong": "Your local pharmacy does more than hand over medicines. At 12 Linden Road you can have your blood pressure checked while you wait, and we will tell you what the numbers mean. You can have your flu jab in a private room, given by a trained pharmacist. You can sit down with a pharmacist and go through everything you take, so nothing is forgotten or doubled. If getting to us is hard, we deliver your prescription to your door. We measure and fit compression stockings, we are happy to talk about a baby's feeding and the little worries, we can tell you what to pack and protect against before you travel, and you can order your repeat prescriptions online or by phone and collect them when it suits you. Not sure which service is right for you? Ask any of us at the counter. We are open until 7 pm on weekdays.",
"hashtags": [
"pharmacy",
"communitypharmacy",
"yourlocalpharmacy",
"healthcheck",
"fluvaccination"
]
}
}
}

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.