A signature image goes missing in agent-sent and automated email for one of five reasons: the image has no public address, it was embedded as a base64 data: URI that Gmail will not display, the sending tool strips images, the HTML was pasted into a compose window, or the recipient's mail app is holding remote images. The fix that works on almost every path is the same: point the <img> at an image hosted on a public https:// address, and send the HTML through an API that keeps it untouched.
People describe it in nearly the same words on every platform. On Reddit, an n8n user: "my Gmail email signature, which is an image, isn't showing up in the emails sent via n8n." A Claude Cowork user drafting Gmail replies: "Everything works well except it struggles in insert a logo for my email signature into the email." And on the Power Platform forum, about Power Automate: "Images are not picked up even when mentioned with the full path in src attribute."
If the signature is missing entirely, text and all, start with why AI agent emails have no signature. This page is about the picture.
Hosted, inline or base64: how Gmail and Outlook treat each image
An <img> in a signature gets its picture from one of three places, and mail apps treat each one differently.
| How the image is referenced | What travels in the email | Gmail | Outlook |
|---|---|---|---|
Hosted: src="https://..." | A link; the mail app loads the image when the email is opened | Shows by default | Desktop Outlook blocks automatic picture downloads by default until the reader allows them |
Inline: src="cid:logo" | The image file, as a MIME part with a Content-ID | Shows | Shows |
Base64: src="data:image/png;base64,..." | The image bytes inside the HTML | Not displayed | Not displayed in Outlook for Windows 2007 to 2016; Outlook.com and Outlook for Mac display it |
Google's help says that "by default, when you get an email with an image, you'll see the image automatically", and that Gmail scans images first and asks before showing them when a sender or message looks suspicious. Microsoft says "Microsoft Outlook is configured by default to block automatic picture downloads from the Internet." The base64 row comes from Can I email's client tests, which record no support in Gmail's web, iOS and Android apps, and none in Outlook for Windows up to 2016, with partial support from Outlook 2019.
Hosted is the safest default: the email stays small, every client can load it, and you can replace the image without resending anything. Inline is the right choice when the image must show without a click, provided your sending tool can attach inline parts. Base64 is the one to avoid.
Five reasons the logo is missing
1. The image has no public address
A signature image stored inside your mail account, in a private Google Drive file, behind a login, or on your own disk has no address a recipient's mail app can load. Google's Gmail help says that "to use a Google Drive image in your signature, the image sharing settings must be set to public." A src with a local file path, like the one in the Power Automate thread above, points at your machine and loads for nobody else.
2. The image was converted to base64
When someone asks an AI to turn a signature into something an automation can store, the model often embeds the picture as a base64 data: URI. The HTML looks complete and previews fine in a browser, then Gmail shows nothing where the logo was. The n8n user who asked AI to convert their signature HTML into JSON reported the result: "it's missing the image." Forum answers suggest base64 too: the accepted workaround in the Power Automate thread above converts the image to a data: URI, which works for some Outlook readers and leaves Gmail readers with a blank space.
3. The sending tool strips images
Signatoro has found that the Gmail tool built into chat assistants such as Claude, ChatGPT and Grok drops every image from the HTML body it is given, linked images and inline attachments alike, and keeps the text and styles. An email it sends arrives with the signature minus its picture. No change to the HTML fixes this, since the tool removes the image before the email is built.
4. The HTML was pasted into a compose window
An agent that drives the browser, or a person, who pastes signature HTML into Gmail's or Outlook's message window gets what the composer allows. Signatoro's tests show the composer drops the picture and rewrites the links. Install the signature once in the mail app's settings instead, with the install guides.
5. The recipient blocks remote images
When the email is right and one recipient still sees a blank box, their mail app is holding hosted images until they allow them. That is the reader's setting, and the image shows once they click to display it.
How to fix the image for each sending path
Gmail API
Keep src="https://..." images as they are in the HTML part of the raw MIME message. To embed the image instead, build a multipart/related message (in Python, add_related() on the HTML part) and point the <img> at its cid:. The Gmail API guide has the full send code.
Microsoft Graph
Use a hosted image in message.body, or attach the image as a fileAttachment with isInline set to true and a contentId, and reference it as <img src="cid:...">. The Microsoft Graph guide shows the JSON. For Power Automate, put a hosted URL in the signature HTML; a file path never reaches the recipient. See the Power Automate guide.
n8n, Zapier and Make
Set the send step to HTML ("Email Type" in n8n's Gmail node, "Body Type" or "Body Format" in Zapier) and use a signature whose images are hosted URLs. In Make's Gmail modules, put it in "Signature content", which accepts HTML. Zapier's Gmail signature field pulls the signature saved in Gmail, so its image works only if Gmail's copy points at a public image. Steps for each tool: n8n, Zapier and Make.
Google Apps Script
MailApp.sendEmail and GmailApp.sendEmail take an htmlBody and an inlineImages map from a key to an image blob, referenced in the HTML as cid:key. Hosted images in htmlBody work as they are. See Gmail signature in Apps Script.
Claude, ChatGPT and Grok connectors
Their built-in Gmail tools remove images, so send the text version of the signature through them: name, role and links, which arrive intact. To send with the picture, have your own code send through the Gmail API or Graph. The Claude and ChatGPT guides cover each route.
Copilot, Gemini in Gmail and browser agents
These write in the mail app's compose window, which adds the signature saved in the app's settings, image included. Fix the image there, then check that the AI does not paste a second copy. The AI browser agents guide explains why.
How Signatoro serves signature images
Signatoro gives agents and automations a signature whose pictures already follow the rules above:
- Agentic sending. An AI assistant connected to Signatoro's MCP server calls
get_signatureand gets the signature ashtmlandtextbefore it sends. - API fetch. n8n, Zapier, Make, Apps Script or your own code calls
GET https://signatoro.com/api/v1/signatureon every send. - Hosted images. The photo and logo in
htmlare PNGs on a publichttps://image host, delivered at twice their display size for sharp screens. A logo sits on a white plate, so a dark logo stays visible when Gmail on phones or Outlook darkens the message. - A version for every path.
textis the same signature without the picture, for the tools that strip images.?mode=shortreturns name, role line and one link, with no picture, for cold outreach.
Every reply also carries a usage note telling the agent to send through the mail API and to use text when its only tool strips images. The agent API guide lists which paths carry the picture.
Send a signature whose logo arrives
Make your signature on Signatoro. Agents and automations fetch it with hosted images that load in Gmail and Outlook.
Frequently asked questions
Why doesn't my signature image show up in automated emails?
The image usually has no public address, was embedded as base64, or was removed by the sending tool. Gmail does not display base64 data: images, and a picture stored in your mail account or a private Drive file cannot load for the recipient. Point the <img> at a public https:// URL and send the HTML through the mail API, or embed the image as an inline cid: attachment.
Why is the logo missing when Claude or ChatGPT drafts my email in Gmail?
Signatoro has found that the Gmail tools built into chat assistants remove every image from the HTML body they are given, while keeping the text. The logo is gone before the draft is created. Use the text version of your signature through those tools, or send through your own code and the Gmail API to keep the picture.
Can I use a base64 image in my email signature?
Avoid it. Can I email's tests record that Gmail on the web, iOS and Android does not display base64 data: images, and that Outlook for Windows up to 2016 does not either. Apple Mail, Outlook.com and Outlook for Mac display them. Use a hosted image or an inline cid: attachment instead.
Should signature images be hosted or embedded?
Hosted images keep the email small and can be updated in place, and every major client loads them, although desktop Outlook blocks automatic downloads until the reader allows them. Embedded cid: images show without a click and add their size to every message. For agent and automation sends, hosted is the simpler default.
Why does my signature image show in Gmail but not in Outlook?
Desktop Outlook blocks automatic picture downloads from the internet by default, so a hosted image waits until the reader clicks to download pictures. A base64 image does not display in Outlook for Windows up to 2016. An inline cid: image shows in both.
Sources
Checked on 2026-10-07:
- Google: Turn images on or off in Gmail
- Google: Troubleshoot issues with Gmail signatures
- Microsoft: Block or unblock automatic picture downloads in email messages
- Microsoft: fileAttachment resource type (Microsoft Graph)
- Google: Class MailApp (Apps Script)
- Can I email: Base 64 image format, last tested February 6, 2020, Gmail rechecked May 2024
- Reddit r/n8n: n8n Gmail node not including my email signature image - how do I add it? and r/n8n post on an HTML Gmail signature with a headshot, March 15, 2025
- Reddit r/ClaudeCowork: Automated Email Signature Logos in Gmail, August 1, 2026
- Power Platform Community: How to put signature in action Send email or respond email with Outlook?, September 11, 2021