โ† Back to dashboard

[mcp] no path to author email content: message templates unreachable, and the only writable format is the legacy Content designer

Clio โ€ข Remote/Nationwide
Apply on Company Site โ†—
clio 8.1.0.112 ยท Creatio cloud demo (8.x, .NET Framework host, cliogate NOT installed) ## Summary Task: clone an existing marketing email (`BulkEmail`, authored in the current Beefree-based **Email designer**) into a **Message template** (`EmailTemplate`) on the same environment. clio has no read or write path for email content of any kind: - no tool for `EmailTemplate` (message templates) โ€” `get-page` / `update-page` only cover Freedom UI pages, and message templates are a classic module (`EmailTemplateSectionV2` / `EmailTemplatePageV2`); - no tool for the content itself โ€” neither the legacy Content designer config (`EmailTemplate.TemplateConfig`) nor the current designer storage (`BfEmailTemplate.PageJson` / `PageHtml`); - no guidance article: `get-guidance name=routing` routes pages / entities / data / applications, and `availableGuides` has nothing on email templates, message templates or email content. So the only way to do the task is raw OData writes with a hand-authored `TemplateConfig` JSON โ€” and that JSON is the **legacy** designer's format. Everything clio can produce therefore lands in the old designer; there is no supported way to generate content that opens in the designer the platform actually ships for marketing emails. ## Reproduction 1. `find-entity-schema search-pattern 'EmailTemplate'` โ†’ the entity is discoverable, but no tool operates on its content. 2. `get-tool-contract` (index) โ†’ no `*email*` / `*template*` content tool. 3. `get-guidance name=routing` โ†’ no email/message-template route; an unknown name returns `availableGuides`, which lists none. 4. Everything below had to be reverse-engineered from OOB records via `odata-read`, because nothing documents it: - `EmailTemplate.ConfigType` = 0 (raw HTML body, `IsHtmlBody: true`) vs 1 (designed in Content designer, `IsHtmlBody: false`); - the Content designer vocabulary `sheet > mjblock > section > column > {text | mjimage | mjbutton | mjdivider | spacer | navbar}`, plus `ImageConfig {source, url, imageSrc, name}`; - English content lives on `EmailTemplate`, other languages in `EmailTemplateLang`; - the new designer keeps content in `BfEmailTemplate` keyed by a plain-Guid `EmailId` (`BulkEmail.TemplateBody` / `TemplateConfig` are empty for such emails โ€” a first-time caller reasonably concludes the email has no content). ## Expected Symmetry with the page tooling โ€” something like: - `get-email-template` writing the body/config to files (as `get-page` does), `update-email-template` pushing them back with a checksum guard; - support for the current designer's storage, so generated content opens in that designer rather than the legacy one; - a copy path between hosts (marketing email โ†” message template), which the platform itself has server-side (`BfEmailTemplateExtendedCopyService`, `BFTemplateTransformerService`); - a guidance article covering the above field semantics, so they don't have to be inferred from sample data. ## Observed Task completed only by: `call-service` GET of `BfEmailTemplate` โ†’ local transform โ†’ `call-service` POST of a full `EmailTemplate` with a hand-built legacy `TemplateConfig` (9 `mjblock`s, 24 `text`, 4 `mjimage`, 2 `mjbutton`). ~3 h of schema archaeology for what is conceptually a copy. ## Impact Any demo/delivery task that involves email content (message templates for processes, transactional emails, cloning a marketing email) is outside clio's reach today, and whatever is built through the OData fallback is stuck in the legacy designer's format.

Other Open Roles

Sr. Specialist - Content Design 4D
Genpact โ€ข Unknown
CW Content Designer II
Aditi Tech Consulting Private Limited โ€ข Bengaluru
AI Visual Content Designer
Brilliance.com โ€ข Remote/Nationwide

Change Your Password

Choose a new password (at least 8 characters, with uppercase, lowercase, a number, and a special character).
Note: changing your password will log you out of all active sessions.