Emails your AI agent or automation sends have no signature because Gmail and Outlook add your signature in their compose window, and an agent sends through an API that never opens that window. The API sends exactly the body it is given. The fix is the same in every tool: the workflow has to put the signature into the body itself, ideally fetched fresh on every send so it never goes stale.
People hit this in every tool. On the n8n forum: "I have a signature set on my gmail account, but it is not used when sending emails with the gmail node. Is there anyway to force n8n to send emails with my signature?" On GitHub, about Claude's Gmail connector: "an email sent through this connector arrives unsigned and looks like it came from nobody. That is not a cosmetic difference; it changes whether the recipient acts on the message." And from a developer wiring agents to Gmail: "AI agents sending emails on behalf of users need signature parity with manual emails."
Why the signature goes missing: compose window versus send API
Your Gmail or Outlook signature is a setting of the mail app's compose window: when you click "New message", the app pastes it in, and an agent never clicks "New message".
- Gmail. Google's Gmail API reference describes the signature as "an optional HTML signature that is included in messages composed with this alias in the Gmail web UI." A message sent with the API's
messages.sendis the raw message the sender built, so it carries a signature only if the sender put one in. - Outlook and Microsoft 365. Microsoft Graph's
sendMailsends "the message specified in the request body", and its reference page says nothing about signatures. Outlook adds signatures in its own compose window, so a Graph send arrives without one.
Every tool below sends through one of these two APIs, or over SMTP, which has no idea what a signature is. That is why the same bug shows up in n8n, Zapier, Claude and a homegrown Python script.
Which AI tools add your signature, and which don't
| Tool | Adds your mail app's signature? | Fix |
|---|---|---|
| Gemini in Gmail, Copilot in Outlook | Yes, they write in the compose window | Keep the AI from writing its own sign-off |
| AI browser agents (Comet, Claude in Chrome) | Yes, they click "New message" like you do | Same |
| Zapier Gmail actions | Yes, with "Add signature default" set | Choose the signature in the step |
| n8n, Make, Power Automate, Apps Script | No | Put the signature in the body |
| Gmail API, Microsoft Graph, SMTP | No | Put the signature in the body |
| Claude and ChatGPT Gmail or Outlook connectors | No | Signature in the instructions, or fetched |
| MCP email servers | Usually no | Fetch the signature through a second tool |
How to fix the missing signature in each tool
n8n
The Gmail, Send Email and Microsoft Outlook nodes have no signature option. Add an HTTP Request node that fetches your signature before the send node, set the email type to HTML, and map the signature after the body. Turn off "Append n8n Attribution" if you do not want n8n's line under it. Steps: n8n, Zapier and Make guide.
Zapier
Zapier's Gmail "Send Email", "Reply to Email" and draft actions have an "Add signature default" field that pulls the default signature from Gmail. If your signature is missing from the dropdown, set it as Gmail's default for new emails first. Zapier's Outlook actions have no signature field, so put the HTML in "Body". See the Zapier steps.
Make
Make's Gmail modules have a "Signature content" field that accepts HTML; paste your signature there or map it from an HTTP module. Its Outlook and Email modules need the signature in the body. See the Make steps.
Power Automate
Power Automate's Outlook send actions cannot read a person's Outlook signature. Asked how to add it, a Super User on the Power Platform forum answered: "No, you cannot go and get someones signature." Store the signature somewhere the flow can read it, or fetch it over HTTP, and add it to the body. Steps: Power Automate guide.
Google Apps Script
GmailApp.sendEmail and MailApp send without the user's Gmail signature. Read the signature from the Gmail API's send-as settings, or fetch it from a signature service, and append it to the htmlBody. Steps: Gmail API guide.
Gmail API
Call users.settings.sendAs.get to read the alias's signature, or fetch it from your signature tool, then build the MIME message with the signature after the body and send it with messages.send. Steps: Gmail API guide.
Microsoft Graph
Graph documents no endpoint that returns a user's Outlook signature, so your app has to hold the signature itself or fetch it from a signature tool, then append it to message.body before sendMail. Steps: Microsoft Graph guide.
Claude
Claude's Gmail connector sends, replies and forwards after your approval by default, and the email it builds carries no Gmail signature. Put your signature as text in Claude's instructions, or connect Claude to a signature source over MCP. Claude for Outlook leaves the sign-off to Outlook. Steps: Claude guide.
ChatGPT
ChatGPT's Gmail and Outlook apps send from the chat, outside the compose window. Paste your signature as text into ChatGPT's custom instructions, or finish the email in your mail app. Steps: ChatGPT guide.
MCP servers for Gmail and Outlook
Gmail and Outlook MCP servers generally send through the same APIs, and their issue trackers show it. One popular Workspace server had a bug titled "draft_gmail_message does not include Gmail signature", since fixed, and a later report on the same server reads "signature silently drops". Give the agent a second MCP tool that returns your signature, and tell it to append the result. Steps: Gmail and Outlook MCP guide and connecting Signatoro over MCP.
Why the logo or photo in your signature breaks
Even when the signature arrives, its picture is often missing. Three causes account for most of it:
- The image was never public. A signature image stored inside your mail account, or attached to the original message as an inline part, has no address another tool can load. The signature should point to an image hosted at a public HTTPS address.
- The tool strips images. Signatoro has found that the Gmail tool built into chat assistants drops every image from the HTML it is given, so a signature sent through it arrives without its picture. Use the text version of the signature there.
- The HTML was pasted into a compose window. Gmail and Outlook treat pasted HTML as untrusted: they drop pictures and rewrite links. Install the signature in the mail app's settings instead.
The agent API guide has a table of which sending paths carry the picture.
"[Your Name]" and made-up phone numbers: when the AI writes the signature
When a tool has no real signature, the model writes one, and two things go wrong.
The first is the placeholder. On the Zapier forum, someone sending ChatGPT replies through a Zap reported that "most messages are ending with something like 'Best Regards, [Your Name]'", even after telling the model not to.
The second is invention. In r/claude, a user found a phone number in their signature block they had never seen; it belonged to a competitor. Asked where it came from, the assistant answered: "I made it up. There is no phone number in any of the files".
Both have the same fix: keep the signature out of the model's hands. Tell the model to end the body without a sign-off, and have the workflow append the real signature from a fixed field or a fetch. A model cannot mistype a phone number it never writes.
Fix it once: one signature every tool fetches
Each fix above works on its own and goes stale on its own. A signature pasted into a Zap, an n8n node, a Claude instruction and a Power Automate flow is four copies to update when your title changes. On the Zapier forum, one user found "the zaps are still using a cached version of the signature."
Signatoro keeps one signature per person and per agent, and every tool fetches it at send time:
- Agentic sending. Claude, ChatGPT and other MCP clients connect to Signatoro's MCP server and call
get_signaturebefore they send. - API fetch. n8n, Zapier, Make, Power Automate and your own code call
GET https://signatoro.com/api/v1/signatureand gethtmlfor HTML email andtextfor plain text, with a short version for cold outreach. - Update once. Change your signature in Signatoro and the next email from every tool carries the new version. On a Company plan, the owner sets the logo, layout and footnote once for everyone, agents included.
The Blastra case study shows one company running this across people and AI assistants.
Give every tool the same signature
Make your signature once on Signatoro. Your AI agents, automations and mail apps fetch the current version every time they send.
Frequently asked questions
Why does my AI-drafted email have no signature?
Gmail and Outlook insert your signature in their compose window, and AI agents, connectors and automations send through the Gmail API or Microsoft Graph, which send only the body they are given. Google's Gmail API reference says the signature is included in messages composed in the Gmail web UI. To get a signature on agent-sent email, the agent or workflow has to append it to the body.
Is there any way to force n8n to send emails with my signature?
Yes, by putting the signature into the message yourself. n8n's Gmail node has no signature option, so add an HTTP Request node that fetches your signature, set the Gmail node's email type to HTML, and map the signature after the body. The n8n, Zapier and Make guide has the steps.
Can Claude or ChatGPT use my Gmail signature?
Not automatically. Their Gmail connectors send outside Gmail's compose window, so the signature saved in Gmail is not added. Paste your signature as text into Claude's instructions or ChatGPT's custom instructions, or connect them to a signature source over MCP. The Claude and ChatGPT guides cover each route.
Can I get a user's Outlook signature with Microsoft Graph?
No. Microsoft Graph documents no endpoint that returns a user's Outlook signature, and sendMail sends only the body you pass. Store the signature in your app or a signature service and append it before sending. The Microsoft Graph guide shows how.
Why doesn't my signature image show up in automated emails?
The image is usually stored inside the mail account or attached as an inline part, so the automation has no public address to load it from, or the sending tool strips images. Host the image at a public HTTPS address and send HTML through a path that keeps images, or use a text-only signature.
How do I stop ChatGPT from signing emails "[Your Name]"?
Tell the model to end the email body without a sign-off, and have the workflow append your real signature after the body. In Zapier, a Formatter step can also cut the generated sign-off before the email is sent.
Sources
Checked on 2026-10-07:
- Google: REST Resource: users.settings.sendAs (Gmail API)
- Microsoft: user: sendMail (Microsoft Graph v1.0)
- Anthropic: Use Google Workspace connectors
- n8n Community: Using a gmail signature, November 14, 2025
- GitHub, anthropics/claude-code: Gmail connector: send_message/reply cannot apply the account's Gmail signature, #88544
- GitHub, openclaw/gogcli: gmail send: Add --signature flag to append Gmail signature, #180
- GitHub, taylorwilsdon/google_workspace_mcp: draft_gmail_message does not include Gmail signature, #485, and signature silently drops, #752
- Power Platform Community: Get a Person's Email Tag Line/Signature
- Stack Overflow: MailApp automated emails don't include user's email signature
- Zapier Community: Exclude ChatGPT Sign-off Line, June 6, 2024, and Zapier not using latest Gmail signature
- Reddit r/claude: When drafting an email, Claude inserted my competitor's phone number in my signature block