Give your signature to an AI agent
The Signatoro signature API for AI agents: how Claude, ChatGPT, n8n or Zapier fetch your saved email signature and append it to every email they send.
-
This guide is for the case where nothing gets configured in a mail client's settings, because there is no mail client - an assistant is drafting or sending the mail directly, through its own tool or through an API such as Gmail's. Those sends never see the signature saved in Gmail Settings, so the agent fetches it from Signatoro and appends it itself. If the assistant is instead operating a person's actual inbox, send it to that client's guide from the guide index: it should follow the person's normal settings.
Which kind of AI agent is yours?
An AI agent puts your email signature on its emails in one of three ways, and the setup follows from which one it uses.
- It writes in your mail app's compose window. Gemini in Gmail and Copilot in Outlook draft where you write, so the signature saved in Gmail or Outlook applies. Set it there and check the draft.
- It drives a browser in your real inbox. Perplexity Comet, Claude in Chrome, ChatGPT's agent mode in Atlas and Manus click and type in Gmail or Outlook like you do, so the mail app adds its saved signature and the agent should not type a second one.
- It sends through a connector or an API. Claude's, ChatGPT's and Grok's Gmail and Outlook connectors, n8n, Zapier and Make send without your mail app's signature, so the agent or automation has to add one: fetched from Signatoro's API below, or pasted into its instructions as text.
The guide for each agent covers every way it sends:
- Claude, including Claude Code
- ChatGPT
- Grok
- Gemini
- Copilot
- AI browser agents: Comet, Claude in Chrome, ChatGPT in Atlas, Manus
- n8n, Zapier and Make
Claude, ChatGPT and other MCP clients can also connect to Signatoro's MCP server at https://signatoro.com/mcp, to make a signature in chat, fetch your saved one, and manage your company's people.
What the person does once
- Sign in and save the signature on the signature page.
- On the same page, under "For tools and assistants", click "Generate API key". It is shown once. Put it in the agent's secrets, never in a prompt or a chat message.
What the agent does on every send
Fetch the signature, then append it to the message body it is about to send:
GET https://signatoro.com/api/v1/signature Authorization: Bearer sig_live_...
{
"html": "<table role=\"presentation\" ...>...</table>",
"text": "Maya Okafor\nHead of Operations, Northwind Supply\n...",
"mode": "full",
"tier": "company",
"usage": "Append, do not replace: put html as-is into the text/html part ...",
"docs": "https://signatoro.com/docs/install-signature/agent"
}
- This is the full signature: phone, email, every link and the picture. Add
?mode=shortfor the cold-outreach cut: name, role line and one link, no picture. usagerepeats the append rules in one sentence, in every reply, for an agent that never opens this page.- Fetch it per send rather than caching it: the person edits the signature once on Signatoro and every later send carries the new version.
- Append the signature after the body. For an HTML message: the body, a blank line, then
html. For a plain-text message, or thetext/plainpart of a multipart email: the body, a blank line, thentext.
Send through the mail API, never through a compose window
html has to reach the message untouched, which means the agent builds the message itself and hands it to the mail API - messages.send for Gmail. What does not work: pasting the HTML into Gmail's or Outlook's compose window, whether by hand, by clipboard or by driving the browser. The composer treats a paste as untrusted content: it drops the picture, rewrites every link through a redirect and recolors them blue. The result looks like the signature minus the photo, and the signature is blamed. If an agent's only way to send is the compose window, it should set the signature once in the mail app's own settings (the guide index has every client) rather than pasting it per message.
Which paths carry the picture
| How the agent sends | Picture | Use |
|---|---|---|
| Raw MIME to the Gmail API, an SMTP library, n8n / Zapier / Make mail nodes, your own code | Yes | html |
| The Gmail tool built into a chat assistant (Claude, Grok, ChatGPT), or any tool that only takes an "HTML body" | No - it strips every image, including inline attachments and CSS backgrounds, and keeps the text and styles | text, or html knowing it arrives without the picture |
| Pasting into a compose window | No, and the links are rewritten | Neither - install the signature in the mail app instead |
The picture lives elsewhere: in the signature the person installs once in their own mail app, from the guides. For mail an assistant sends through one of the built-in tools, the honest signature is the text one - name, role and links, which is also the one that lands best in cold outreach. Sending with the picture through any tool, from any platform, is what Signatoro's own send endpoint is for; it is on the way.
Gmail API
messages.send takes a raw MIME message, so the agent builds it with the signature already inside:
Content-Type: multipart/alternative; boundary="sig" --sig Content-Type: text/plain; charset="UTF-8" <the message> <text from the API> --sig Content-Type: text/html; charset="UTF-8" <p>the message</p><br> <html from the API> --sig--
n8n, Zapier, Make
One HTTP Request node before the send node: method GET, the URL https://signatoro.com/api/v1/signature, a header Authorization: Bearer <key> kept in the platform's credential store. Map html (or text) into the send node's body with the message in front of it.
Responses to branch on
| Status | Body | Meaning |
|---|---|---|
200 | { html, text, mode, tier, usage, docs } | Append and send. |
401 | { "error": "missing_api_key" } or "invalid_api_key" | No key, a wrong key, or one the person revoked. Stop and tell them. |
404 | { "error": "no_signature" } | The person has not saved a signature yet. Send without one; do not invent one. |
429 | { "error": "quota_exceeded", "limit": 50, "resetsAt": "..." } | A free account past its monthly requests. Send without the signature and tell the person; people in a company on a plan are uncapped. |
The response is never cacheable (cache-control: no-store), and a free account's signature ends with a short "Get my signature" link that a company plan removes.
Agent signature questions
Why doesn't the Gmail API add my Gmail signature to emails I send?
The Gmail API sends exactly the message it is given. Google's Gmail API reference says a send-as signature is included in messages composed in the Gmail web UI, and added to new emails only. A message sent with messages.send is the raw RFC 2822 message the sender built, so an agent or script sending through the Gmail API has to append the signature itself, for example from GET https://signatoro.com/api/v1/signature.
Why is the picture missing from my signature when Claude or ChatGPT drafts an email in Gmail?
The Gmail tool built into a chat assistant such as Claude, Grok or ChatGPT strips every image from the HTML body it is given, including inline attachments and CSS backgrounds, and keeps the text and styles. The signature arrives without its picture. For mail sent through such a tool, use the text signature from the Signatoro API; to send with the picture, build a raw MIME message and send it through the Gmail API.
Notes for the agent itself
- Treat the signature HTML as opaque: append it, don't reformat, re-color, or re-wrap it. Mail clients render inline styles inconsistently enough without a second pass of edits.
- Match the format to the channel. An HTML email gets
html; a plain-text message, an SMS-adjacent channel, or atext/plainpart getstext, never the raw HTML tags. - Do not invent a signature from the person's name and title if a real one hasn't been provided - point them to Signatoro's generator instead.
- Never echo the API key back into a conversation, a log, or a ticket.
Sources
Checked against Google's own Gmail API documentation on 2026-09-25:
Was this page helpful?
Make your signature first
It is free and needs no account. Build it once, then paste it into any mail app with the steps on this page.
Make my signature