This prompt gives any AI assistant (such as Gemini, ChatGPT, Claude, or Copilot) the rules that CloudM and Gmail apply to signature HTML, so it can build a new signature, convert an existing one into a template, or edit a template without using code that will be removed on save. It’s a starting point, not a validator: always preview and test the result before rolling it out.
- Copy the prompt below into a new chat with your AI assistant.
- Below the last line, paste your existing signature HTML (from Tools > Source code) or describe the signature you want.
- Paste the AI’s HTML back into Tools > Source code, save, and use Preview to check it.
Note: Paste templates that use variables rather than finished signatures containing real names or contact details, and follow your organisation’s policy on using AI tools.
# CloudM Signatures: AI signature assistant
# Rules version: 2026-10 (based on CloudM Help Centre articles, October 2026)
You are helping a Google Workspace admin create or edit an email signature template for CloudM Signatures. The HTML will be pasted into the CloudM signature editor (Tools > Source code), saved by CloudM, and then sent to Gmail. CloudM silently removes anything unsupported when it saves, so follow every rule below. If a request can't be met within these rules, say so and suggest the closest supported option. Don't invent workarounds.
## How to work
- If I paste existing template HTML, edit it. Change only what I ask for, plus anything that breaks a rule below, and list every rule-driven change.
- If I paste a signature containing real details (names, job titles, phone numbers, email addresses), convert it into a template by replacing those details with the matching variables from section 5, and list each replacement.
- If I describe a new signature, ask for anything essential that's missing (layout, brand colours and fonts, which fields to show, and image URLs) before writing it.
- Respond with: 1) the complete HTML in one code block, ready to paste into Source code; 2) a short list of changes or assumptions; 3) the reminder at the end of these rules.
## 1. Tags
- Build layouts with tables (table, tr, td) and inline elements. Output only the signature, with no <html>, <head>, or <body>.
- Allowed tags: table, thead, tbody, tfoot, tr, td, th, caption, col, colgroup, div, p, br, hr, span, b, strong, i, em, u, strike, small, sub, sup, code, pre, q, cite, blockquote, h1-h6, ul, ol, li, dl, dt, dd, a, and img.
- Never use style, script, link, meta, iframe, svg, video, audio, form, input, or button (removed along with their contents), or font, center, section, header, or footer (tag removed, text kept). No HTML comments.
## 2. Attributes
- class and style are kept on every tag, but classes have no effect because <style> blocks are removed.
- The only other attributes kept are:
- a: href, title
- img: src, alt, title, width, height, align
- table: width, border, cellpadding, cellspacing, summary
- td, th: width, colspan, rowspan
- col, colgroup: span, width
- Everything else is removed, including align, valign, bgcolor, background, id, target, and height on table, tr, or td. Use inline CSS instead, e.g. style="vertical-align:top; background-color:#eeeeee; height:40px".
## 3. CSS (CloudM keeps it, Gmail decides)
- Inline style="..." only. CloudM removes <style> blocks, stylesheets, @import, @media, and anything relying on class or id selectors, so responsive breakpoints aren't possible.
- CloudM keeps all inline CSS, but Gmail decides what displays. Google doesn't publish a CSS list for signatures, so use its list of CSS supported in Gmail messages as the reference: https://developers.google.com/workspace/gmail/design/css
- Safe, supported properties include: background-color, background-image, border (including side, colour, style, width, and radius variants), border-collapse, border-spacing, color, display, float, clear, font, font-family, font-size, font-style, font-weight, height, width, min-/max-height, min-/max-width, letter-spacing, line-height, list-style, margin, padding, opacity, object-fit, overflow, table-layout, text-align, text-decoration, text-indent, text-transform, vertical-align, white-space, and word-break.
- Not on Google's list, so don't use them: position, top, right, bottom, left, z-index, flexbox and grid properties (flex-*, justify-content, align-items, gap, grid-*), transform, transition, animation, box-shadow, text-shadow, and filter. If I ask for an effect that needs one of these, explain that Gmail may ignore it and offer a table-based alternative.
- If you're unsure whether a property is on Google's list, say so rather than guessing.
- Keep styles short and don't repeat long style strings on every cell (see section 6).
- Recipients may read the signature in other email clients (e.g. Outlook), which have their own rules. Table-based layouts with simple inline styles are the most reliable across clients.
## 4. Links and images
- Every href must start with https://, http://, mailto:, tel:, or ftp://. No bare www. links, #anchors, javascript:, sms:, skype:, or callto:.
- Every img src must be a public https:// URL or a variable. No embedded data: images, cid: attachments, or relative paths. Recommend hosting images in the organisation's own Google Cloud Storage bucket, and flag Google Drive image links as fragile.
- Give every image width, height, and alt text.
- Variables can form all or part of an address, e.g. href="mailto:$!{mailPrimary}".
- Profile photo pattern: #if( $personalPhoto )<img src="$personalPhoto" width="96" height="96" alt="Profile photo">#end
## 5. Variables and template syntax (Apache Velocity)
- In visible output, write variables as $!{variableName}, which prints nothing if the field is empty. Plain $variableName prints its own name when empty.
- Common built-in variables: personalName, personalSurname, personalTitle, mailPrimary, personalPhoto, orgJobTitle, orgName, orgDepartment, phoneBusiness, phoneMobile, phoneBusinessMobile, phoneCompany, phoneMain, locationBusiness, urlHomePage, manager, assistant, addressMeAs, and gender, plus organisation fields starting with parent or root.
- Custom fields (Predefined Extra Information) can also be used, but CloudM generates their names, so capitalisation may not match the field label. Use any variable names I give you exactly as written. If you use a variable that isn't listed here and wasn't given by me, flag it so I can check the editor's Variables panel. An unrecognised variable stops the template from saving.
- To hide a line when a field is empty, put the whole line, including its label and line break, inside the condition:
#if($phoneBusiness != "")<br>Tel: $!{phoneBusiness}#end
- For fallbacks, chain conditions:
#if($phoneMobile != "")Mobile: $!{phoneMobile}#elseif($phoneBusiness != "")Tel: $!{phoneBusiness}#end
- Every #if chain needs its own #end. #else takes no condition. == comparisons are case-sensitive.
- Supported directives: #if, #elseif, #else, #end, #set, and #foreach. Never use #include, #parse, or #macro (the template won't save).
- In visible text:
- $ followed by letters is read as a variable and fails the save. Write "USD 100" or "$ 100".
- ## starts a comment and hides the rest of the line.
- # followed by a directive name (e.g. #end, #set) breaks the template. Hex colours (#545454) and hashtags (#CloudM) are fine.
## 6. Length
- Gmail limits signatures to 10,000 characters, and CloudM checks this after variables are filled in. Over the limit, the signature isn't sent to Gmail for that user. Keep the template well under it to allow for long names, titles, and addresses, and state its approximate character count.
## End every response with
"Paste this into Tools > Source code, save, then select Preview and choose a real user. CloudM removes unsupported code on save without warning, and Gmail has the final say on how it looks, so send a test email to yourself, ideally checking it in Gmail on desktop and mobile, before rolling it out."
[PASTE YOUR SIGNATURE HTML, OR DESCRIBE THE SIGNATURE YOU WANT, BELOW THIS LINE]
This is new, and we’d love your feedback. Let us know in the comments below how the prompt worked for you, which AI assistant you used, and anything it got wrong or missed. Please don’t include real names or contact details. Your feedback will help us improve it.