# n8n + Signatoro AI Reply: 8 Mistakes and How to Fix Them

> Fix the n8n Signatoro reply workflow: missing_api_key, a key in the prompt, Simplify left on, an AI that signs, drafts outside the thread and more.

Source: https://learn.ynteractive.com/content/blog/n8n-signatoro-signed-reply-mistakes · Updated 2026-10-20 · Free from Stepthrough (https://learn.ynteractive.com)

Quick answer

The most common mistake in the n8n Signatoro workflow is putting the Signatoro key where people can see it: in the URL, the [prompt](https://learn.ynteractive.com/content/glossary/prompt) or a note. It belongs in a [Bearer Auth](https://learn.ynteractive.com/content/glossary#bearer-token) credential only. Close behind are leaving **Simplify** on in the [Gmail Trigger](https://learn.ynteractive.com/content/glossary/gmail-trigger), so the email's text and thread never reach the next nodes, and letting the AI sign the reply itself. The free [n8n Signatoro signed reply lesson](https://learn.ynteractive.com/modules/n8n-signatoro-signed-reply) shows the right settings on real screens from 20 October 2026.

Last updated October 20, 2026

[Take the free module →](https://learn.ynteractive.com/courses/n8n-jump-start/19)Module 19 of the free [n8n Jump Start](https://learn.ynteractive.com/courses/n8n-jump-start) course, about 10 minutes. No account needed.

By [Robert Breen](https://learn.ynteractive.com/content/about) · Published October 20, 2026 · Updated October 20, 2026 · 4 min read

Signatoro · n8n · Troubleshooting · Gmail

The example is Brookside Dental and its patient coordinator, Dana Whitfield (both made up). In the lesson the trigger ran on a pinned sample email, the OpenAI step ran for real, and the Signatoro call used a placeholder key, so it stopped on **missing_api_key**. No draft was saved.

## What are the most common mistakes?

| # | Mistake | Fix |
| --- | --- | --- |
| 1 | Key in the URL, prompt or a note | Bearer Auth credential, **Bearer Token** |
| 2 | Reading **missing_api_key** as a broken node | Paste the real key and run again |
| 3 | **Simplify** left on in the trigger | Turn **Simplify** off |
| 4 | Asking the AI to sign | End with **Kind regards,** and no name |
| 5 | Signature before the reply, or missing | **Message**: the AI reply, then `{{ $json.html }}` |
| 6 | **Email Type** left as text | Set **Email Type** to **HTML** |
| 7 | Draft lands as a new email | Set **Thread ID** and **To Email** under **Options** |
| 8 | Sending, or publishing before a test | **Resource: Draft**, test, then **Publish** |

## Where should the Signatoro key go?

**1. Key in the URL, prompt or a note.** The lesson's learning card is blunt: anyone who has the key can use it, and pasted into a prompt, a URL or a sticky note, it ends up in exports and screenshots. In **Get signature (Signatoro)**, set **Authentication** to **Generic Credential Type** and **Generic Auth Type** to **Bearer Auth**. Create a credential, name it clearly (the lesson uses **Signatoro - add your key**), paste the key into **Bearer Token** and click **Save**. If a key leaks, make a new one on Signatoro. More in the [API key](https://learn.ynteractive.com/content/glossary#api-key) entry.

**2. Reading missing_api_key as a broken node.** With a placeholder in the credential, Signatoro answered **Authorization failed** with **missing_api_key**. A wrong key gives **invalid_api_key**. Both mean n8n reached Signatoro. Fix the key, not the node.

## Why does the AI reply come out empty or generic?

**3. Simplify left on.** The **Gmail Trigger** (**New patient email**) needs **Simplify** off so the full email reaches the next nodes: **text**, **subject**, **threadId** and the sender's address. The prompt reads the email from `{{ $json.text }}`. While you test, pin a sample email as [pinned data](https://learn.ynteractive.com/content/glossary/pinned-data) so you don't wait for real mail, as the lesson does with Daniel Brooks' made-up email.

**4. Asking the AI to sign.** **Write the reply** asks for a greeting by first name, one or two warm sentences, a promise to call within one business day, no medical advice, prices or promises, and a closing line such as "Kind regards," with no name or signature. A model asked to sign can get the name or phone number wrong, and a hard-coded name goes stale when someone changes role. Signatoro holds the real details.

## Why is the signature missing or in the wrong place?

**5. Signature before the reply, or missing.** In **Save draft reply**, **Message** is the AI's reply followed by `{{ $json.html }}`, the signature Signatoro returns. If the HTTP Request node failed, there is no **html** to add, so check that node first.

**6. Email Type left as text.** The reply is written as simple HTML and the signature comes back as HTML, so **Email Type** must be **HTML**.

## Why does the draft show up as a new email?

**7. No Thread ID.** Under **Options**, **Thread ID** is the trigger's **threadId**, which puts the draft in the patient's own thread. **To Email** is the sender's address from the trigger, and **Subject** is **Re:** plus the email's subject. The [Gmail draft](https://learn.ynteractive.com/content/glossary#gmail-draft) entry has more.

**8. Sending, or publishing before a test.** The last node uses **Resource: Draft** and **Operation: Create**, so a person reads every reply before it goes. Send yourself a practice email, click **Execute**, and read the draft in Gmail. Only then click **Publish**.

## Try it free, step by step

**n8n + Signatoro: AI Drafts Every Reply, Signatoro Signs It**. Stop leaving client emails waiting. A Gmail Trigger starts it, OpenAI writes a personal reply, one HTTP Request node fetches the sender's real signature from Signatoro, and Gmail saves a draft reply… You do every step yourself in a practice copy of n8n, it checks your work as you go, and “Do it for me” finishes any step you get stuck on. Free, and nothing touches your real accounts.

[Start the free lesson](https://learn.ynteractive.com/modules/n8n-signatoro-signed-reply)

[Or read the full step-by-step guide](https://learn.ynteractive.com/content/n8n-signatoro-ai-email-reply-signature)

## Key takeaways

- The Signatoro key lives only in a Bearer Auth credential.
- **missing_api_key** or **invalid_api_key** means the request reached Signatoro.
- Turn **Simplify** off so the reply has the full email and thread.
- The AI writes the closing line. Signatoro signs.
- Draft in the same thread, with **Email Type** **HTML**, and test before **Publish**.

## Frequently asked questions

**Does the HTTP Request node need a body?**

No. It is a **GET** request to `https://signatoro.com/api/v1/signature` with the Bearer Auth credential. Add `?mode=short` to the URL for a shorter signature.

**Will the workflow use up my Signatoro requests?**

Each draft is one API request. Check Signatoro's own docs for its API usage terms before you use it on a busy inbox.

**Is this the same as the Make and Zapier versions?**

Same practice, same prompt rules, different tool. Their errors differ: see [Signatoro in Make](https://learn.ynteractive.com/content/blog/signatoro-make-mistakes) and [Signatoro in Zapier](https://learn.ynteractive.com/content/blog/signatoro-zapier-mistakes).

**Where are more answers?**

The [n8n Signatoro signed reply FAQ](https://learn.ynteractive.com/content/blog/n8n-signatoro-signed-reply-faq) covers each node, and the [cheat sheets](https://learn.ynteractive.com/content/cheat-sheets) page has a one-page version.

## Free lessons in this post

- [n8n + Signatoro: AI Drafts Every Reply, Signatoro Signs It](https://learn.ynteractive.com/content/n8n-signatoro-ai-email-reply-signature): Stop leaving client emails waiting. A Gmail Trigger starts it, OpenAI writes a personal reply, one HTTP Request node fetches the sender's real signature from Signatoro…

## Watch it in a free lesson: Gmail AI Triage: Auto-Label Every Email and Draft Replies

### Gmail AI Triage: Auto-Label Every Email and Draft Replies: video walkthrough

Full walkthrough · 2:31 · with captions

Build an n8n workflow that reads each new email, sorts it as a lead, a client or an invoice with a Text Classifier, adds the matching Gmail label, and drafts a reply to clients for you to check. The whole lesson narrated step by step, recorded in Stepthrough’s simulated practice environment.

[Watch it with chapters and the full transcript](https://learn.ynteractive.com/content/gmail-ai-triage-labels-drafts-n8n#watch)

From the free lesson [Gmail AI Triage: Auto-Label Every Email and Draft Replies](https://learn.ynteractive.com/content/gmail-ai-triage-labels-drafts-n8n)

## Related terms

Plain-English definitions, each with an example from a free lesson.

[Prompt](https://learn.ynteractive.com/content/glossary/prompt) · [Bearer token](https://learn.ynteractive.com/content/glossary#bearer-token) · [Gmail Trigger](https://learn.ynteractive.com/content/glossary/gmail-trigger)

[The full AI glossary](https://learn.ynteractive.com/content/glossary)

## Keep reading

- [n8n + Signatoro FAQ: AI Gmail Drafts With a Real Signature](https://learn.ynteractive.com/content/blog/n8n-signatoro-signed-reply-faq): How the n8n Signatoro workflow works: Gmail Trigger with Simplify off, the OpenAI prompt, the signature HTTP Request, the key error and the draft.
- [What Is Polling? Why n8n's Gmail Trigger Waits a Minute](https://learn.ynteractive.com/content/blog/n8n-gmail-trigger-polling): Polling means n8n checks Gmail on a timer instead of being told about new mail. How the Gmail Trigger polls, why replies aren't instant, how to test.
- [n8n Workflow Not Running Automatically? What to Check](https://learn.ynteractive.com/content/blog/n8n-workflow-not-running): n8n workflow not running automatically? A checklist: Publish, timezone and hour, Test vs Production URL, polling, OpenAI credit, credentials and filters.

[All blog posts](https://learn.ynteractive.com/content/blog) · [All free tutorials](https://learn.ynteractive.com/content)
