Pharmacies (Community pharmacies), Meet your pharmacist 1.0.0
| Template | Pharmacies (Community pharmacies), tpl_79f6dc8bc66f |
|---|---|
| Variant | Meet your pharmacist |
| Version | 1.0.0, the newest: what a channel following this variant draws |
| Shapes | 9x16, 4x5, 1x1, 16x9, 2x3 |
| Length | 10 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 introduces the pharmacist behind the counter: a round portrait (the picture sent, else the brand's presenter badge), the name and role, a few words in their own voice, what they are happy to help with and the languages they speak, all complete on the first frame. The specialisms are lit in turn, then the button. Seven seconds. metaData is never drawn.
| Field | Type | Required | Limit | What it is |
|---|---|---|---|---|
clipData | group | yes | Clip data: Everything drawn in the clip: the section, the portrait, the name and role, the pharmacist's words, the specialisms and the languages with their headings, the call to action, and the mandatory text where the post names a medicine. | |
clipData.section | text | up to 28 characters | Section: What the post is, on a pill in the header, such as Meet your pharmacist. | |
clipData.portrait | image | media:// file from the media library, alt text up to 120 characters | Portrait: The pharmacist's picture, from the media library, shown round. Left out, the clip shows the brand's presenter badge, and a pharmacy cross where there is none. | |
clipData.name | text | yes | up to 48 characters | Name: The pharmacist's name as people know it, shown large with a wavy line under it, such as Anna Weber or Dr. Sam Patel. |
clipData.role | text | up to 60 characters | Role: Under the name, such as Pharmacist and owner or Pharmacist, Brookside branch. | |
clipData.intro | text | up to 200 characters | In their words: A sentence or two in the pharmacist's own voice, on a soft card. Only what the pharmacist is happy to have said in public. | |
clipData.specialismsLabel | text | up to 32 characters | Specialisms heading: The words over the specialisms, such as Happy to help with. | |
clipData.specialisms | list | at least 0, up to 6 | Specialisms: Up to six things the pharmacist is happy to help with, each on a pill filled one after the other. Only what the pharmacist is qualified to do. Each adds under half a second. | |
clipData.specialisms[] | text | up to 40 characters | Specialism | |
clipData.languagesLabel | text | up to 32 characters | Languages heading: The words over the languages, such as Languages I speak. | |
clipData.languages | list | at least 0, up to 8 | Languages: Up to eight languages the pharmacist speaks, as people would say them, on pills filled together. | |
clipData.languages[] | text | up to 24 characters | Language | |
clipData.cta | group | Call 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.label | text | yes | up to 28 characters | Button: What the button says. |
clipData.cta.detail | text | up to 56 characters | Line under it: An address, the opening hours, a phone number, a web address. | |
clipData.mandatory | text | up to 320 characters | Mandatory text: Needed only when the post names a medicine: the words the law asks for, on screen from the first frame to the last on a plain card, set smaller rather than cut. In Germany: Zu Risiken und Nebenwirkungen lesen Sie die Packungsbeilage und fragen Sie Ihre Ärztin, Ihren Arzt oder in Ihrer Apotheke. In the UK: Always read the label. Leave out otherwise. | |
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": 28,
"title": "Section",
"description": "What the post is, on a pill in the header, such as Meet your pharmacist."
},
"portrait": {
"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": "Portrait",
"description": "The pharmacist's picture, from the media library, shown round. Left out, the clip shows the brand's presenter badge, and a pharmacy cross where there is none."
},
"name": {
"type": "string",
"maxLength": 48,
"title": "Name",
"description": "The pharmacist's name as people know it, shown large with a wavy line under it, such as Anna Weber or Dr. Sam Patel."
},
"role": {
"type": "string",
"maxLength": 60,
"title": "Role",
"description": "Under the name, such as Pharmacist and owner or Pharmacist, Brookside branch."
},
"intro": {
"type": "string",
"maxLength": 200,
"title": "In their words",
"description": "A sentence or two in the pharmacist's own voice, on a soft card. Only what the pharmacist is happy to have said in public."
},
"specialismsLabel": {
"type": "string",
"maxLength": 32,
"title": "Specialisms heading",
"description": "The words over the specialisms, such as Happy to help with."
},
"specialisms": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"title": "Specialism"
},
"minItems": 0,
"maxItems": 6,
"title": "Specialisms",
"description": "Up to six things the pharmacist is happy to help with, each on a pill filled one after the other. Only what the pharmacist is qualified to do. Each adds under half a second."
},
"languagesLabel": {
"type": "string",
"maxLength": 32,
"title": "Languages heading",
"description": "The words over the languages, such as Languages I speak."
},
"languages": {
"type": "array",
"items": {
"type": "string",
"maxLength": 24,
"title": "Language"
},
"minItems": 0,
"maxItems": 8,
"title": "Languages",
"description": "Up to eight languages the pharmacist speaks, as people would say them, on pills filled together."
},
"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": "Needed only when the post names a medicine: the words the law asks for, on screen from the first frame to the last on a plain card, set smaller rather than cut. In Germany: Zu Risiken und Nebenwirkungen lesen Sie die Packungsbeilage und fragen Sie Ihre Ärztin, Ihren Arzt oder in Ihrer Apotheke. In the UK: Always read the label. Leave out otherwise."
},
"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": [
"name"
],
"additionalProperties": false,
"title": "Clip data",
"description": "Everything drawn in the clip: the section, the portrait, the name and role, the pharmacist's words, the specialisms and the languages with their headings, the call to action, and the mandatory text where the post names a medicine."
},
"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 Meet your pharmacist."
},
"portrait": {
"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": "Portrait",
"description": "The pharmacist's picture, from the media library, shown round. Left out, the clip shows the brand's presenter badge, and a pharmacy cross where there is none."
},
"name": {
"type": "string",
"maxLength": 48,
"title": "Name",
"description": "The pharmacist's name as people know it, shown large with a wavy line under it, such as Anna Weber or Dr. Sam Patel."
},
"role": {
"type": "string",
"maxLength": 60,
"title": "Role",
"description": "Under the name, such as Pharmacist and owner or Pharmacist, Brookside branch."
},
"intro": {
"type": "string",
"maxLength": 200,
"title": "In their words",
"description": "A sentence or two in the pharmacist's own voice, on a soft card. Only what the pharmacist is happy to have said in public."
},
"specialismsLabel": {
"type": "string",
"maxLength": 32,
"title": "Specialisms heading",
"description": "The words over the specialisms, such as Happy to help with."
},
"specialisms": {
"type": "array",
"items": {
"type": "string",
"maxLength": 40,
"title": "Specialism"
},
"minItems": 0,
"maxItems": 6,
"title": "Specialisms",
"description": "Up to six things the pharmacist is happy to help with, each on a pill filled one after the other. Only what the pharmacist is qualified to do. Each adds under half a second."
},
"languagesLabel": {
"type": "string",
"maxLength": 32,
"title": "Languages heading",
"description": "The words over the languages, such as Languages I speak."
},
"languages": {
"type": "array",
"items": {
"type": "string",
"maxLength": 24,
"title": "Language"
},
"minItems": 0,
"maxItems": 8,
"title": "Languages",
"description": "Up to eight languages the pharmacist speaks, as people would say them, on pills filled together."
},
"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": "Needed only when the post names a medicine: the words the law asks for, on screen from the first frame to the last on a plain card, set smaller rather than cut. In Germany: Zu Risiken und Nebenwirkungen lesen Sie die Packungsbeilage und fragen Sie Ihre Ärztin, Ihren Arzt oder in Ihrer Apotheke. In the UK: Always read the label. Leave out otherwise."
},
"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 portrait, the name and role, the pharmacist's words, the specialisms and the languages with their headings, the call to action, and the mandatory text where the post names a medicine."
},
"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=Meet%20your%20pharmacist&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": "Meet your pharmacist",
"portrait": {
"alt": "Portrait of the pharmacist",
"url": "media://example-badge.png"
},
"name": "Anna Weber",
"role": "Pharmacist and owner",
"intro": "I have been your pharmacist on Linden Road since 2012. Come in, ask, and we will take the time.",
"specialismsLabel": "Happy to help with",
"specialisms": [
"Hay fever and allergies",
"Travel health and vaccinations",
"Medicines for children",
"Skin care",
"Blood pressure checks",
"Repeat prescriptions"
],
"languagesLabel": "Languages I speak",
"languages": [
"English",
"German",
"Polish",
"Urdu"
],
"cta": {
"label": "Come and say hello",
"detail": "12 Linden Road · Open until 7 pm"
},
"mandatory": "",
"look": {
"logo": "auto",
"pace": "standard",
"align": "start",
"theme": "brand",
"corners": "round",
"logoSize": "auto"
}
},
"metaData": {
"title": "Meet your pharmacist: Anna Weber",
"captionTiny": "Meet Anna Weber, pharmacist and owner of Linden Pharmacy. Hay fever, travel health, children's medicines and more. She speaks four languages.",
"captionShort": "Meet Anna Weber, pharmacist and owner at 12 Linden Road. Anna is happy to help with hay fever and allergies, travel health and vaccinations, medicines for children, skin care, blood pressure checks and repeat prescriptions, in English, German, Polish and Urdu. Come in and say hello.",
"captionMedium": "Have you met Anna? Anna Weber has been your pharmacist on Linden Road since 2012. She is happy to help with hay fever and allergies, travel health and vaccinations, medicines for children, skin care, blood pressure checks and repeat prescriptions, and she speaks English, German, Polish and Urdu. Come in, ask, and we will take the time. We are at 12 Linden Road, open until 7 pm.",
"captionLong": "Have you met Anna? Anna Weber is the pharmacist and owner of our pharmacy, and has been your pharmacist on Linden Road since 2012. In her words: come in, ask, and we will take the time. Anna is happy to help with hay fever and allergies, travel health and vaccinations, medicines for children, skin care, blood pressure checks and repeat prescriptions. She speaks English, German, Polish and Urdu, so if it is easier in your own language, just say. You do not need an appointment: you will find us at 12 Linden Road, open until 7 pm on weekdays. Come and say hello.",
"hashtags": [
"meetthepharmacist",
"communitypharmacy",
"pharmacy",
"yourlocalpharmacist",
"pharmacyteam"
]
}
}
}
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.